次の方法で共有


IX509PublicKey::get_EncodedParameters メソッド (certenroll.h)

EncodedParameters プロパティは、公開キー アルゴリズムに関連付けられているパラメーターを含むバイト配列を取得します。 バイト配列は、Unicode でエンコードされた文字列で表されます。

このプロパティは読み取り専用です。

構文

HRESULT get_EncodedParameters(
  EncodingType Encoding,
  BSTR         *pValue
);

パラメーター

Encoding

pValue

戻り値

なし

解説

InitializeFromEncodedPublicKeyInfo メソッドまたは Initialize メソッドを呼び出して、このプロパティを呼び出す前に公開キー オブジェクトを初期化します。

X.509 バージョン 3 証明書の SubjectPublicKeyInfo オブジェクトによって参照される AlgorithmIdentifier Abstract Syntax Notation One (ASN.1) オブジェクトには、アルゴリズム オブジェクト識別子 (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 値は 2 バイトで表されます。 タグ番号が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) もキー トランスポートでサポートされています。 parameters フィールドには、次の構文があります。

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) がサポートされています。 キー アグリーメントでは、次の 2 つのレベルの暗号化が使用されます。
  • メッセージは、コンテンツ暗号化キー (CEK) と 対称暗号化 アルゴリズムを使用して暗号化されます。
  • CEK は、 対称キー 暗号化キー (KEK) を使用して暗号化 (ラップ) されます。
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 を使用したコンテンツ暗号化

Advanced Encryption Standard (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