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。

AES-IV ::= OCTET STRING (SIZE(16))

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 certenroll.h
DLL CertEnroll.dll

另请参阅

IX509PublicKey