IX509PublicKey::get_EncodedParameters 方法 (certenroll.h)
EncodedParameters 属性检索包含与公钥算法关联的参数的字节数组。 字节数组由 Unicode 编码的字符串表示。
此属性为只读。
语法
HRESULT get_EncodedParameters(
EncodingType Encoding,
BSTR *pValue
);
参数
Encoding
pValue
返回值
无
备注
调用 InitializeFromEncodedPublicKeyInfo 方法或 Initialize 方法以在调用此属性之前初始化公钥对象。
AlgorithmIdentifier 抽象语法表示法 One (ASN.1) X.509 版本 3 证书中 SubjectPublicKeyInfo 对象引用的对象包含算法 对象标识符 (OID) 和可选参数。
SubjectPublicKeyInfo ::= SEQUENCE
{
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING
}
AlgorithmIdentifier ::= SEQUENCE
{
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL
}
参数的格式和内容因算法而异。 证书注册控件根据需要为各种算法生成参数值。 有关详细信息,请参阅以下各节:
- RSA 公钥算法
- 使用 RSA-OAEP 进行密钥传输
- 使用 ECDH 的关键协议
- 使用 AES 进行内容加密
RSA 公钥算法
RSA 通常用于加密 私钥 ,并将其发送到 证书颁发机构 (CA) 进行存档。 XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) 算法 OID 必须具有 NULL 参数值。 ASN.1 NULL 值由两个字节表示。 标记编号0x05且与标记关联的值0x00。 以下证书示例演示了这一点。
...
Public Key Algorithm:
Algorithm ObjectId: 1.2.840.113549.1.1.1 RSA (RSA_KEYX)
Algorithm Parameters:
05 00
...
使用 RSA-OAEP 进行密钥传输
密钥传输还支持 RSA-OAEP 算法,XCN_OID_RSAES_OAEP (1.2.840.113549.1.1.7) 。 参数字段具有以下语法。
RSAES-OAEP-params ::= SEQUENCE
{
hashFunc [0] AlgorithmIdentifier DEFAULT sha1OID,
maskGenFunc [1] AlgorithmIdentifier DEFAULT mgf1SHA1OID,
pSourceFunc [2] AlgorithmIdentifier DEFAULT pSpecifiedEmptyOID
}
使用 ECDH 的关键协议
密钥协议支持单传递椭圆曲线 Diffie-Hellman 算法XCN_OID_DH_SINGLE_PASS_STDDH_SHA1_KDF (1.3.133.16.840.63.0.2) 。 密钥协议使用两种加密级别:KEK 是从共享机密编号计算而来的,该号码是从一方的私钥和另一方的公钥中计算的。 参数字段包含用于包装或加密 CEK 的 KEK 算法的 OID。 支持以下包装算法:- XCN_OID_RSA_SMIMEalgCMS3DESwrap (1.2.840.113549.1.9.16.3.)
- XCN_OID_RSA_SMIMEalgCMSRC2wrap (1.2.840.113549.1.9.16.3.7)
- XCN_OID_NIST_AES128_WRAP (2.16.840.1.101.3.4.1.5)
- XCN_OID_NIST_AES192_WRAP (2.16.840.1.101.3.4.1.25)
- XCN_OID_NIST_AES256_WRAP (2.16.840.1.101.3.4.1.45)
使用 AES 进行内容加密
高级加密标准 (AES) 用于加密内容。 支持以下算法:- XCN_OID_NIST_AES128_CBC (2.16.840.1.101.3.4.1.2)
- XCN_OID_NIST_AES192_CBC (2.16.840.1.101.3.4.1.22)
- XCN_OID_NIST_AES256_CBC (2.16.840.1.101.3.4.1.42)
AES-IV ::= OCTET STRING (SIZE(16))
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | certenroll.h |
DLL | CertEnroll.dll |