未加密的私钥以 PKCS#8 格式文本存储, 将包含以下头部和尾部标签:

-----BEGIN PRIVATE KEY-----
BASE64 ENCODED DATA
-----END PRIVATE KEY-----

里面的 BASE64 的编码的 DER 信息包含以下信息结构:

PrivateKeyInfo ::= SEQUENCE {
  version         Version,
  algorithm       AlgorithmIdentifier,
  PrivateKey      BIT STRING
}

AlgorithmIdentifier ::= SEQUENCE {
  algorithm       OBJECT IDENTIFIER,
  parameters      ANY DEFINED BY algorithm OPTIONAL
}


在上述结构的 PrivateKeyInfo 中, 将由 PrivateKey = BIT STRING 标识私钥的类型。

对于以 BEGIN RSA PRIVATE KEY 开头的私钥格式,仅始终代表 RSA 类型的私钥,表示私钥是以 PKCS#1格式文本存储的。
开头和结尾包含:

-----BEGIN RSA PRIVATE KEY-----
BASE64 ENCODED DATA
-----END RSA PRIVATE KEY-----

这当中的的 BASE64 编码的 DER 信息包含以下信息结构:

RSAPrivateKey ::= SEQUENCE {
  version           Version,
  modulus           INTEGER,  -- n
  publicExponent    INTEGER,  -- e
  privateExponent   INTEGER,  -- d
  prime1            INTEGER,  -- p
  prime2            INTEGER,  -- q
  exponent1         INTEGER,  -- d mod (p1)
  exponent2         INTEGER,  -- d mod (q-1)
  coefficient       INTEGER,  -- (inverse of q) mod p
  otherPrimeInfos   OtherPrimeInfos OPTIONAL
}

标签: 私钥

添加新评论