次の方法で共有


ISignerCertificate インターフェイス (certenroll.h)

ISignerCertificate インターフェイスは、証明書要求に署名できる署名証明書を表します。 インターフェイスを初期化すると、証明書登録コントロールは個人ストアから署名証明書を取得し、それを使用して関連付けられている 秘密キーを検索します。 秘密キーを使用して PKCS #7 または CMC 要求に署名できますが、PKCS #10 要求には署名できません。 PKCS #10 要求は、要求に含まれる公開キーに関連付けられている秘密 キー を使用して署名する必要があります。 自己署名証明書は、要求に関連付けられている秘密キーまたは署名証明書に関連付けられている秘密キーを使用して署名できます。 これは、次の表にまとめられています。

要求の種類 (インターフェイス) 署名証明書
PKCS #7(IX509CertificateRequestPkcs7) 1
PKCS #10(IX509CertificateRequestPkcs10) 0
CMC(IX509CertificateRequestCmc) 0 以上
自己署名(IX509CertificateRequestCertificate) 0 または 1
 

CMC 要求に署名する場合、署名されるデータは、CMSSignedData オブジェクトにラップされたDistinguished Encoding Rules (DER) でエンコードされた CmcData オブジェクトで構成されます。 SignerInfo オブジェクトの encryptedDigest フィールドには署名が含まれており、複数の SignerInfo オブジェクトを要求に関連付けることができます。


---------------------------------------------------------------------
-- CMC request data
---------------------------------------------------------------------

CmcData ::= SEQUENCE 
{
controlSequence     SEQUENCE OF TaggedAttribute,
reqSequence         SEQUENCE OF TaggedRequest,
cmsSequence         SEQUENCE OF TaggedContentInfo,
otherMsgSequence    SEQUENCE OF TaggedOtherMs
}

---------------------------------------------------------------------
-- SignedData object that wraps the CMC request
---------------------------------------------------------------------

SignedData ::= SEQUENCE 
{
   version             INTEGER,
   digestAlgorithms    DigestAlgorithmIdentifiers,
   contentInfo         ContentInfo,
   certificates        [0] IMPLICIT Certificates OPTIONAL,
   crls                [1] IMPLICIT CertificateRevocationLists OPTIONAL,
   signerInfos         SignerInfos
}

DigestAlgorithmIdentifiers ::=  SET OF DigestAlgorithmIdentifier 
DigestAlgorithmIdentifiersNC ::= SET OF DigestAlgorithmIdentifierNC

SignerInfos ::= SET OF SignerInfo

SignerInfo ::= SEQUENCE 
{
    version                     INTEGER,
    sid                         CertIdentifier,
    digestAlgorithm             DigestAlgorithmIdentifier,
    authenticatedAttributes     [0] IMPLICIT Attributes OPTIONAL,
    digestEncryptionAlgorithm   DigestEncryptionAlgId,
    encryptedDigest             EncryptedDigest,
    unauthenticatedAttributes   [1] IMPLICIT Attributes OPTIONAL
}

ISignerCertificate オブジェクトは、使用されるハッシュアルゴリズムと公開キー アルゴリズムを識別する 1 つの IX509SignatureInformation オブジェクトに関連付けられます。 このオブジェクトは、 ISignerCertificate オブジェクトが初期化されるときに作成および初期化されます。

継承

ISignerCertificate インターフェイスは、IDispatch インターフェイスから継承されます。 ISignerCertificate には、次の種類のメンバーもあります。

メソッド

ISignerCertificate インターフェイスには、これらのメソッドがあります。

 
ISignerCertificate::get_Certificate

証明書を含むDistinguished Encoding Rules (DER) でエンコードされたバイト配列を取得します。
ISignerCertificate::get_ParentWindow

署名証明書情報の表示に使用するウィンドウの ID を指定または取得します。 (Get)
ISignerCertificate::get_PrivateKey

ISignerCertificate オブジェクトに関連付けられている秘密キーを取得します。
ISignerCertificate::get_SignatureInformation

証明書署名に関する情報を含む IX509SignatureInformation オブジェクトを取得します。
ISignerCertificate::get_Silent

秘密キーを使用して証明書要求に署名したときにユーザーに通知を受け取るかどうかを示すブール値を指定または取得します。 (Get)
ISignerCertificate::get_UIContextMessage

署名証明書に関連付けられているユーザー インターフェイス テキストを含む文字列を指定または取得します。 (Get)
ISignerCertificate::Initialize

署名証明書から オブジェクトを初期化します。
ISignerCertificate::p ut_ParentWindow

署名証明書情報の表示に使用するウィンドウの ID を指定または取得します。 (Put)
ISignerCertificate::p ut_Pin

スマート カード ユーザーの認証に使用される個人識別番号 (PIN) を指定します。
ISignerCertificate::p ut_Silent

秘密キーを使用して証明書要求に署名したときにユーザーに通知を受け取るかどうかを示すブール値を指定または取得します。 (Put)
ISignerCertificate::p ut_UIContextMessage

署名証明書に関連付けられているユーザー インターフェイス テキストを含む文字列を指定または取得します。 (Put)

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー certenroll.h

こちらもご覧ください

CertEnroll インターフェイス

IDispatch

ISignerCertificates