PKCS8私钥结构
PKCS8私鑰結(jié)構(gòu)
- RSA私鑰數(shù)據(jù)結(jié)構(gòu)
- ECC私鑰數(shù)據(jù)結(jié)構(gòu)
由上可知,PKCS8私鑰結(jié)構(gòu)包含了四個部分:版本號、算法標(biāo)識、私鑰數(shù)據(jù)、其他屬性數(shù)據(jù)。
版本號version,當(dāng)前還都是0(也就是v1版本);
算法標(biāo)識privateKeyAlgorithm,又包括算法ID和私鑰參數(shù)兩部分,不同的算法私鑰參數(shù)的結(jié)構(gòu)也不同;
私鑰數(shù)據(jù)privateKey,不同的算法私鑰數(shù)據(jù)又有自己不同的結(jié)構(gòu);
其他屬性數(shù)據(jù)attributes,這是可選項,可以沒有。
RSA私鑰數(shù)據(jù)結(jié)構(gòu)
這一部分其實也就是PKCS1標(biāo)準的私鑰結(jié)構(gòu)(PKCS1是專屬于RSA的標(biāo)準)
RSAPrivateKey ::= SEQUENCE {version Version,modulus INTEGER, -- npublicExponent INTEGER, -- eprivateExponent INTEGER, -- dprime1 INTEGER, -- pprime2 INTEGER, -- qexponent1 INTEGER, -- d mod (p-1)exponent2 INTEGER, -- d mod (q-1)coefficient INTEGER, -- (inverse of q) mod potherPrimeInfos OtherPrimeInfos OPTIONAL}Version ::= INTEGER { two-prime(0), multi(1) }(CONSTRAINED BY {-- version must be multi if otherPrimeInfos present --})ECC私鑰數(shù)據(jù)結(jié)構(gòu)
這一部分其實也就是SEC1標(biāo)準的私鑰結(jié)構(gòu)(SEC1是專屬于ECC的標(biāo)準)
ECPrivateKey ::= SEQUENCE {version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),privateKey OCTET STRING,parameters [0] Parameters OPTIONAL,publicKey [1] BIT STRING OPTIONAL }總結(jié)
- 上一篇: java pkcs8_java中公钥,私
- 下一篇: 《架构探险——从零开始写javaweb框