PKCS8私钥结构

PrivateKeyInfo ::= SEQUENCE {
                        version Version,
                        privateKeyAlgorithm AlgorithmIdentifier {{PrivateKeyAlgorithms}},
                        privateKey PrivateKey,
                        attributes [0] IMPLICIT Attributes OPTIONAL 
                    }
					
Version ::= INTEGER {v1(0)} (v1,...)

PrivateKey ::= OCTET STRING

Attributes ::= SET OF Attribute

由上可知,PKCS8私钥结构包含了四个部分:版本号、算法标识、私钥数据、其他属性数据。
版本号version,当前还都是0(也就是v1版本);
算法标识privateKeyAlgorithm,又包括算法ID和私钥参数两部分,不同的算法私钥参数的结构也不同;
私钥数据privateKey,不同的算法私钥数据又有自己不同的结构;
其他属性数据attributes,这是可选项,可以没有。

RSA私钥数据结构

这一部分其实也就是PKCS1标准的私钥结构(PKCS1是专属于RSA的标准)

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

Version ::= INTEGER { two-prime(0), multi(1) }
  (CONSTRAINED BY {-- version must be multi if otherPrimeInfos present --})

ECC私钥数据结构

这一部分其实也就是SEC1标准的私钥结构(SEC1是专属于ECC的标准)

ECPrivateKey ::= SEQUENCE {
    version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
    privateKey OCTET STRING,
    parameters [0] Parameters OPTIONAL,
    publicKey [1] BIT STRING OPTIONAL }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值