暗号化関数

暗号化機能は、使用法に応じて次のように分類されます。

CryptXML 関数

暗号化 XML 関数は、XML 形式のデータを使用してデジタル署名を作成および表す API を提供します。 XML 形式のシグネチャの詳細については、XML-Signature構文と処理の仕様 https://go.microsoft.com/fwlink/p/?linkid=139649に関するページを参照してください。

機能 説明
A_SHAFinal MD5Update 関数によって入力されたデータの最終的なハッシュを計算します。
A_SHAInit データ ストリームのハッシュを開始します。
A_SHAUpdate 指定したハッシュ オブジェクトにデータを追加します。
CryptXmlCreateReference XML 署名への参照を作成します。
CryptXmlAddObject エンコード用に開かれたドキュメント コンテキストの Signature に Object 要素を追加します。
CryptXmlClose 暗号化 XML オブジェクト ハンドルを閉じます。
CryptXmlDigestReference 解決された参照をダイジェストするためにアプリケーションによって使用されます。 この関数は、ダイジェストを更新する前に変換を適用します。
CryptXmlDllCloseDigest CryptXmlDllCreateDigest 関数によって割り当てられたCRYPT_XML_DIGESTを解放します。
CryptXmlDllCreateDigest 指定したメソッドのダイジェスト オブジェクトを作成します。
CryptXmlDllCreateKey KeyValue 要素を解析し、暗号化 API: 次世代 (CNG) BCrypt キー ハンドルを作成して署名を確認します。
CryptXmlDllDigestData ダイジェストにデータを配置します。
CryptXmlDllEncodeAlgorithm 既定のパラメーターを使用してアジャイル アルゴリズムの SignatureMethod 要素または DigestMethod 要素をエンコードします。
CryptXmlDllEncodeKeyValue KeyValue 要素をエンコードします。
CryptXmlDllFinalizeDigest ダイジェスト値を取得します。
CryptXmlDllGetAlgorithmInfo XML アルゴリズムをデコードし、アルゴリズムに関する情報を返します。
CryptXmlDllGetInterface 指定したアルゴリズムの暗号化拡張機能関数へのポインターを取得します。
CryptXmlDllSignData データに署名します。
CryptXmlDllVerifySignature 署名を検証します。
CryptXmlEncode 指定された XML ライター コールバック関数を使用して署名データをエンコードします。
CryptXmlGetAlgorithmInfo CRYPT_XML_ALGORITHM構造体をデコードし、アルゴリズムに関する情報を返します。
CryptXmlGetDocContext 指定されたハンドルで指定されたドキュメント コンテキストを返します。
CryptXmlGetReference 指定されたハンドルで指定された Reference 要素を返します。
CryptXmlGetSignature XML Signature 要素を返します。
CryptXmlGetStatus 指定したハンドルで指定されたオブジェクトに関する状態情報を含む CRYPT_XML_STATUS 構造体を返します。
CryptXmlGetTransforms 既定の変換チェーン エンジンに関する情報を返します。
CryptXmlImportPublicKey 指定されたハンドルで指定された公開キーをインポートします。
CryptXmlOpenToEncode エンコードする XML デジタル署名を開き、開かれた Signature 要素のハンドルを返します。 ハンドルは、1 つの CRYPT_XML_SIGNATURE 構造体を持つドキュメント コンテキストをカプセル化し、 CryptXmlClose 関数が呼び出されるまで開いたままです。
CryptXmlOpenToDecode デコードする XML デジタル署名を開き、 CRYPT_XML_SIGNATURE 構造体をカプセル化するドキュメント コンテキストのハンドルを返します。 ドキュメント コンテキストには、1 つ以上の Signature 要素を含めることができます。
CryptXmlSetHMACSecret CryptXmlSign または CryptXmlVerify 関数を呼び出す前に、ハンドルに HMAC シークレットを設定します。
CryptXmlSign SignedInfo 要素の暗号化署名を作成します。
CryptXmlVerifySignature SignedInfo 要素の暗号化署名検証を実行します。
PFN_CRYPT_XML_WRITE_CALLBACK 指定したデータ プロバイダーの変換を作成します。
PFN_CRYPT_XML_CREATE_TRANSFORM 暗号化 XML データを書き込みます。
PFN_CRYPT_XML_DATA_PROVIDER_READ 暗号化 XML データを読み取ります。
PFN_CRYPT_XML_DATA_PROVIDER_CLOSE 暗号化 XML データ プロバイダーを解放します。
PFN_CRYPT_XML_ENUM_ALG_INFO 定義済みおよび登録済 みのCRYPT_XML_ALGORITHM_INFO エントリを列挙します。

 

署名者関数

データに署名およびタイム スタンプを行う関数を提供します。

機能 説明
SignerFreeSignerContext SignerSignEx 関数の以前の呼び出しによって割り当てられたSIGNER_CONTEXT構造体を解放します。
SignError GetLastError 関数を呼び出し、戻りコードを HRESULT に変換します。
SignerSign 指定したファイルに署名します。
SignerSignEx 指定したファイルに署名し、署名されたデータへのポインターを返します。
SignerSignEx2 指定したファイルに署名とタイムスタンプを付け、複数の入れ子になった署名を許可します。
SignerTimeStamp 指定した件名にタイム スタンプを設定します。 この機能では、Authenticode のタイム スタンプがサポートされます。 X.509 公開キー 基盤 (RFC 3161) のタイム スタンプを実行するには、 SignerTimeStampEx2 関数を使用します。
SignerTimeStampEx 指定したサブジェクトにタイム スタンプを設定し、必要に応じて BLOB へのポインターを含むSIGNER_CONTEXT構造体へのポインターを返します。 この機能では、Authenticode のタイム スタンプがサポートされます。 X.509 公開キー 基盤 (RFC 3161) のタイム スタンプを実行するには、 SignerTimeStampEx2 関数を使用します。
SignerTimeStampEx2 指定したサブジェクトにタイム スタンプを設定し、必要に応じて BLOB へのポインターを含むSIGNER_CONTEXT構造体へのポインターを返します。 この関数は、X.509 公開キー 基盤、RFC 3161 準拠のタイム スタンプを実行するために使用できます。
SignerTimeStampEx3 指定した件名にタイム スタンプを設定し、複数の署名にタイム スタンプを設定できます。

 

基本暗号化関数

基本暗号化機能は、暗号化アプリケーションを開発するための最も柔軟な手段を提供します。 暗号化サービス プロバイダー (CSP) との通信はすべて、これらの機能を介して行われます。

CSP は、すべての暗号化操作を実行する独立したモジュールです。 暗号化機能を使用するアプリケーションごとに、少なくとも 1 つの CSP が必要です。 1 つのアプリケーションで複数の CSP を使用する場合があります。

複数の CSP を使用する場合は、CryptoAPI 暗号化関数呼び出しで使用する CSP を指定できます。 1 つの CSP である Microsoft Base Cryptographic Provider が CryptoAPI にバンドルされています。 この CSP は、他の CSP が指定されていない場合、CryptoAPI 関数の多くで既定のプロバイダーとして使用されます。

各 CSP は、CryptoAPI に提供される暗号化サポートの異なる実装を提供します。 より強力な暗号アルゴリズムを提供するものもあります。その他には、 スマート カードなどのハードウェア コンポーネントが含まれています。 さらに、一部の CSP は、ユーザーの署名秘密キーを使用してデジタル署名を実行する場合など、ユーザーと直接通信することがあります。

基本暗号化関数は、次の広範なグループに含まれています。

  • サービス プロバイダー関数
  • キー生成関数とExchange関数
  • オブジェクトエンコードおよびデコード関数
  • データ暗号化および暗号化解除関数
  • ハッシュ関数とデジタル署名関数

サービス プロバイダー関数

アプリケーションでは、次のサービス関数を使用して 、暗号化サービス プロバイダー (CSP) に接続および切断します。

機能 説明
CryptAcquireContext
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

特定の CSP 内の現在のユーザーの キー コンテナー へのハンドルを取得します。
CryptContextAddRef
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

HCRYPTPROV ハンドルの参照カウントをインクリメントします。
CryptEnumProviders
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

コンピューター上のプロバイダーを列挙します。
CryptEnumProviderTypes
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

コンピューターでサポートされているプロバイダーの種類を列挙します。
CryptGetDefaultProvider
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

現在のユーザーまたは指定したプロバイダーの種類のコンピューターの既定の CSP を決定します。
CryptGetProvParam
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

CSP の操作を制御するパラメーターを取得します。
CryptInstallDefaultContext
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

以前に取得した HCRYPTPROV コンテキストを既定のコンテキストとして使用するようにインストールします。
CryptReleaseContext
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

CryptAcquireContext 関数によって取得されたハンドルを解放します。
CryptSetProviderCryptSetProviderEx
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

特定の CSP の種類のユーザーの既定の CSP を指定します。
CryptSetProvParam
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

CSP の属性を指定します。
CryptUninstallDefaultContext
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

CryptInstallDefaultContext によって以前にインストールされた既定のコンテキストを削除します。
FreeCryptProvFromCertEx 暗号化サービス プロバイダー (CSP) または Cryptography API: Next Generation (CNG) キーのいずれかにハンドルを解放します。

 

キー生成関数とExchange関数

キー生成および交換関数は、他のユーザーと キーを交換 し、 暗号化キーを作成、構成、破棄します。

機能 説明
CryptDeriveKey
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

パスワードから派生したキーを作成します。
CryptDestroyKey
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

キーを破棄します。
CryptDuplicateKey
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

キーの 状態 を含め、キーの正確なコピーを作成します。
CryptExportKey
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

CSP からアプリケーションのメモリ空間内の キー BLOB にキー を転送します。
CryptGenKey
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

ランダム なキーを作成します。
CryptGenRandom
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

ランダム なデータを生成します。
CryptGetKeyParam
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

キーのパラメーターを取得します。
CryptGetUserKey
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

キー交換キーまたは署名キーへのハンドルを取得します。
CryptImportKey
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

キー BLOB から CSP にキーを転送します。
CryptSetKeyParam
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

キーのパラメーターを指定します。

 

オブジェクトエンコードおよびデコード関数

これらは、一般化されたエンコードおよびデコード関数です。 証明書証明書失効リスト (CRL)、証明書要求、および証明書拡張機能エンコードおよびデコードするために使用されます。

機能 説明
CryptDecodeObject lpszStructType 型の構造体をデコードします。
CryptDecodeObjectEx lpszStructType 型の構造体をデコードします。 CryptDecodeObjectEx では 、ワンパス メモリ割り当てオプションがサポートされています。
CryptEncodeObject lpszStructType 型の構造体をエンコードします。
CryptEncodeObjectEx lpszStructType 型の構造体をエンコードします。 CryptEncodeObjectEx では 、ワンパス メモリ割り当てオプションがサポートされています。

 

データ暗号化および暗号化解除関数

次の関数は、暗号化と暗号化解除の操作をサポートしています。 CryptEncryptCryptDecrypt では、呼び出される前に 暗号化キー が必要です。 これを行うには、 CryptGenKeyCryptDeriveKey、または CryptImportKey 関数を 使用します。 暗号化アルゴリズムは、キーの作成時に指定されます。 CryptSetKeyParam では 、追加の暗号化パラメーターを設定できます。

機能 説明
CryptDecrypt
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

指定した暗号化キーを使用して 、暗号テキスト のセクションを復号化します。
CryptEncrypt
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

指定した暗号化キーを使用して 、プレーンテキスト のセクションを暗号化します。
CryptProtectData DATA_BLOB構造のデータに対して暗号化を実行します。
CryptProtectMemory 機密情報を保護するためにメモリを暗号化します。
CryptUnprotectData DATA_BLOB内のデータの復号化と整合性チェックを実行します。
CryptUnprotectMemory CryptProtectMemory を使用して暗号化されたメモリを復号化します。

 

ハッシュ関数とデジタル署名関数

これらの関数は、データの ハッシュを 計算し、 デジタル署名を作成して検証します。 ハッシュは、メッセージ ダイジェストとも呼ばれます。

機能 説明
CryptCreateHash
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

空のハッシュ オブジェクトを作成します。
CryptDestroyHash
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

ハッシュ オブジェクトを破棄します。
CryptDuplicateHash ハッシュ オブジェクトを複製します。
CryptGetHashParam ハッシュ オブジェクト パラメーターを取得します。
CryptHashData
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

データのブロックをハッシュし、指定したハッシュ オブジェクトに追加します。
CryptHashSessionKey
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

セッション キーをハッシュし、指定したハッシュ オブジェクトに追加します。
CryptSetHashParam
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

ハッシュ オブジェクト パラメーターを設定します。
CryptSignHash
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

指定したハッシュ オブジェクトに署名します。
CryptUIWizDigitalSign ドキュメントまたは BLOB にデジタル署名するウィザードを表示 します
CryptUIWizFreeDigitalSignContext CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT構造体へのポインターを解放します。
CryptVerifySignature
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

ハッシュ オブジェクトへのハンドルを指定して、デジタル署名を検証します。
PFNCFILTERPROC CryptUIWizDigitalSign 関数によって表示されるデジタル署名ウィザードに表示される証明書をフィルター処理します。

 

証明書と証明書のMicrosoft Store関数

証明書ストア関数と証明書ストア関数は、 証明書証明書失効リスト (CRL)、証明書 信頼リスト (CCTL) の使用、ストレージ、および取得を管理します。 これらの関数は、次のグループに分かれています。

  • 証明書Microsoft Store関数
  • 証明書と証明書のMicrosoft Storeメンテナンス機能
  • 証明書関数
  • 証明書失効リスト関数
  • 証明書信頼リスト関数
  • 拡張プロパティ関数
  • MakeCert 関数

証明書Microsoft Store関数

ユーザー サイトでは、時間の経過と伴って多くの証明書を収集できます。 通常、サイトには、サイトのユーザー用の証明書と、ユーザーが通信する個人やエンティティを記述するその他の証明書があります。 エンティティごとに、複数の証明書を使用できます。 個々の証明書ごとに、信頼された ルート証明書への証跡を提供する証明書を検証するチェーンが存在する必要があります。 証明書ストア とその関連関数は、証明書に格納されている情報を格納、取得、列挙、検証、および使用するための機能を提供します。

機能 説明
CertAddStoreToCollection 兄弟証明書ストアをコレクション証明書ストアに追加します。
CertCloseStore 証明書ストア ハンドルを閉じます。
CertControlStore キャッシュされたストアの内容とストレージに永続化されるストアの内容に違いがある場合に、アプリケーションに通知を受け取ることができます。 また、必要に応じてキャッシュされたストアのデランチロン化を提供し、キャッシュされたストアで行われた変更を永続化されたストレージにコミットする手段も提供します。
CertDuplicateStore 参照カウントをインクリメントして、ストア ハンドルを複製します。
CertEnumPhysicalStore 指定したシステム ストアの物理ストアを列挙します。
CertEnumSystemStore 使用可能なすべてのシステム ストアを列挙します。
CertEnumSystemStoreLocation 使用可能なシステム ストアを持つすべての場所を列挙します。
CertGetStoreProperty ストア プロパティを取得します。
CertOpenStore 指定したストア プロバイダーの種類を使用して証明書ストアを開きます。
CertOpenSystemStore サブシステム プロトコルに基づいてシステム証明書ストアを開きます。
CertRegisterPhysicalStore レジストリ システム ストア コレクションに物理ストアを追加します。
CertRegisterSystemStore システム ストアを登録します。
CertRemoveStoreFromCollection コレクション ストアから兄弟証明書ストアを削除します。
CertSaveStore 証明書ストアを保存します。
CertSetStoreProperty ストア プロパティを設定します。
CertUnregisterPhysicalStore 指定したシステム ストア コレクションから物理ストアを削除します。
CertUnregisterSystemStore 指定したシステム ストアの登録を解除します。
CryptUIWizExport 証明書、証明書信頼リスト (CTL)、証明書失効リスト (CRL)、または証明書ストアをエクスポートするウィザードを表示します。
CryptUIWizImport 証明書、証明書信頼リスト (CTL)、証明書失効リスト (CRL)、または証明書ストアをインポートするウィザードを表示します。

 

証明書と証明書のMicrosoft Storeメンテナンス機能

CryptoAPI には、一連の一般的な証明書と証明書ストアのメンテナンス機能が用意されています。

機能 説明
CertAddSerializedElementToStore シリアル化された証明書または CRL 要素をストアに追加します。
CertCreateContext エンコードされたバイトから指定されたコンテキストを作成します。 新しいコンテキストはストアに配置されません。
CertEnumSubjectInSortedCTL 並べ替えられた CTL コンテキストで TrustedSubjects を列挙します。
CertFindSubjectInCTL CTL で指定されたサブジェクトを検索します。
CertFindSubjectInSortedCTL 並べ替えられた CTL で指定された件名を検索します。
OpenPersonalTrustDBDialogOpenPersonalTrustDBDialogEx [ 証明書 ] ダイアログ ボックスを表示します。

 

証明書関数

ほとんどの 証明書 関数には、CRL と CTL 処理するための関連関数 があります。 関連する CRL および CTL 関数の詳細については、「証明書失効リスト関数」および「証明書信頼リスト関数」を参照してください。

機能 説明
CertAddCertificateContextToStore 証明書コンテキストを証明書ストアに追加します。
CertAddCertificateLinkToStore 証明書ストア内のリンクを別のストアの証明書コンテキストに追加します。
CertAddEncodedCertificateToStore エンコードされた証明書を証明書コンテキストに変換し、そのコンテキストを証明書ストアに追加します。
CertAddRefServerOcspResponse HCERT_SERVER_OCSP_RESPONSE ハンドルの参照カウントをインクリメントします。
CertAddRefServerOcspResponseContext CERT_SERVER_OCSP_RESPONSE_CONTEXT構造体の参照カウントをインクリメントします。
CertCloseServerOcspResponse オンライン証明書状態プロトコル (OCSP) サーバー応答ハンドルを閉じます。
CertCreateCertificateContext エンコードされた証明書から証明書コンテキストを作成します。 作成されたコンテキストは証明書ストアに格納されません。
CertCreateSelfSignCertificate 自己署名証明書を作成する。
CertDeleteCertificateFromStore 証明書ストアから証明書を削除します。
CertDuplicateCertificateContext 参照カウントをインクリメントして、証明書コンテキストを複製します。
CertEnumCertificatesInStore 証明書ストア内の証明書コンテキストを列挙します。
CertFindCertificateInStore 検索条件を満たす証明書ストア内の最初の証明書コンテキストまたは次の証明書コンテキストを検索します。
CertFreeCertificateContext 証明書コンテキストを解放します。
CertGetIssuerCertificateFromStore 指定したサブジェクト証明書の最初または次の発行者の証明書ストアから証明書コンテキストを取得します。
CertGetServerOcspResponseContext 指定したハンドルの非ブロッキングで有効な オンライン証明書状態プロトコル (OCSP) 応答コンテキストを取得します。
CertGetSubjectCertificateFromStore 証明書ストアからサブジェクト証明書コンテキストを取得します。このコンテキストは、発行者とシリアル番号によって一意に識別されます。
CertGetValidUsages 証明書の配列内のすべての証明書の有効な使用法の積集合で構成される使用法の配列を返します。
CertOpenServerOcspResponse サーバー証明書チェーンに関連付けられている オンライン証明書状態プロトコル (OCSP) 応答へのハンドルを開きます。
CertRetrieveLogoOrBiometricInfo szOID_LOGOTYPE_EXTまたはszOID_BIOMETRIC_EXT証明書拡張機能で指定されたロゴまたは生体認証情報の URL 取得実行します。
CertSelectCertificate ユーザーが特定の条件に一致する証明書のセットから証明書を選択できるようにするダイアログ ボックスを表示します。
CertSelectCertificateChains 指定した選択条件に基づいて証明書チェーンを取得します。
CertSelectionGetSerializedBlob CERT_SELECTUI_INPUT構造体からシリアル化された証明書 BLOB を取得するために使用されるヘルパー関数。
CertSerializeCertificateStoreElement 証明書コンテキストのエンコードされた証明書とそのプロパティのエンコードされた表現をシリアル化します。
CertVerifySubjectCertificateContext 発行者を使用して、サブジェクト証明書に対して有効な検証チェックを実行します。
CryptUIDlgCertMgr ユーザーが証明書を管理できるようにするダイアログ ボックスを表示します。
CryptUIDlgSelectCertificate ユーザーが証明書を選択できるようにするダイアログ ボックスを表示します。
CryptUIDlgSelectCertificateFromStore 指定したストアから証明書を選択できるダイアログ ボックスを表示します。
CryptUIDlgViewCertificate 指定した証明書を表示するダイアログ ボックスを表示します。
CryptUIDlgViewContext 証明書、CRL、または CTL を表示します。
CryptUIDlgViewSignerInfo 署名済みメッセージの署名者情報を含むダイアログ ボックスを表示します。
GetFriendlyNameOfCert 証明書の表示名を取得します。
RKeyCloseKeyService キー サービス ハンドルを閉じます。
RKeyOpenKeyService リモート コンピューターでキー サービス ハンドルを開きます。
RKeyPFXInstall リモート コンピューターに証明書をインストールします。

 

証明書失効リスト関数

これらの関数は、 証明書失効リスト (CRL) のストレージと取得を管理します。

機能 説明
CertAddCRLContextToStore 証明書ストアに CRL コンテキストを追加します。
CertAddCRLLinkToStore ストア内のリンクを別のストアの CRL コンテキストに追加します。
CertAddEncodedCRLToStore エンコードされた CRL を CRL コンテキストに変換し、そのコンテキストを証明書ストアに追加します。
CertCreateCRLContext エンコードされた CRL から CRL コンテキストを作成します。 作成されたコンテキストは証明書ストアに格納されません。
CertDeleteCRLFromStore 証明書ストアから CRL を削除します。
CertDuplicateCRLContext 参照カウントをインクリメントして CRL コンテキストを複製します。
CertEnumCRLsInStore ストア内の CRL コンテキストを列挙します。
CertFindCertificateInCRL 指定した証明書の証明書失効リスト (CRL) を検索します。
CertFindCRLInStore 特定の条件に一致する証明書ストア内の最初の CRL コンテキストまたは次の CRL コンテキストを検索します。
CertFreeCRLContext CRL コンテキストを解放します。
CertGetCRLFromStore 指定した発行者証明書の証明書ストアから最初または次の CRL コンテキストを取得します。
CertSerializeCRLStoreElement CRL コンテキストのエンコードされた CRL とそのプロパティをシリアル化します。

 

証明書信頼リスト関数

これらの関数は、 証明書信頼リスト (CTL) のストレージと取得を管理します。

機能 説明
CertAddCTLContextToStore 証明書ストアに CTL コンテキストを追加します。
CertAddCTLLinkToStore ストア内のリンクを別のストアの CRL コンテキストに追加します。
CertAddEncodedCTLToStore エンコードされた CTL を CTL コンテキストに変換し、そのコンテキストを証明書ストアに追加します。
CertCreateCTLContext エンコードされた証明書信頼リストから CTL コンテキストを作成します。 作成されたコンテキストは証明書ストアに格納されません。
CertDeleteCTLFromStore 証明書ストアから CTL を削除します。
CertDuplicateCTLContext 参照カウントをインクリメントして CTL コンテキストを複製します。
CertEnumCTLsInStore 証明書ストア内の CTL コンテキストを列挙します。
CertFindCTLInStore 特定の条件に一致する証明書ストア内の最初の CTL コンテキストまたは次の CTL コンテキストを検索します。
CertFreeCTLContext CTL コンテキストを解放します。
CertModifyCertificatesToTrust 特定の目的のために CTL 内の証明書のセットを変更します。
CertSerializeCTLStoreElement CTL コンテキストのエンコードされた CTL とそのプロパティをシリアル化します。

 

拡張プロパティ関数

次の関数は、証明書、CRL、および CCTL の拡張プロパティで動作します。

機能 説明
CertEnumCertificateContextProperties 指定した証明書コンテキストのプロパティを列挙します。
CertEnumCRLContextProperties 指定した CRL コンテキストのプロパティを列挙します。
CertEnumCTLContextProperties 指定した CTL コンテキストのプロパティを列挙します。
CertGetCertificateContextProperty 証明書のプロパティを取得します。
CertGetCRLContextProperty CRL プロパティを取得します。
CertGetCTLContextProperty CTL プロパティを取得します。
CertSetCertificateContextProperty 証明書のプロパティを設定します。
CertSetCRLContextProperty CRL プロパティを設定します。
CertSetCTLContextProperty CTL プロパティを設定します。

 

MakeCert 関数

次の関数は 、MakeCert ツールをサポートしています。

機能 説明
FreeCryptProvFromCert 暗号化サービス プロバイダー (CSP) へのハンドルを解放し、必要に応じて GetCryptProvFromCert 関数によって作成された一時コンテナーを削除します。
GetCryptProvFromCert CSP へのハンドルと証明書コンテキストのキー仕様を取得します。
PvkFreeCryptProv CSP へのハンドルを解放し、必要に応じて PvkGetCryptProv 関数によって作成された一時コンテナーを削除します。
PvkGetCryptProv 秘密キー ファイル名またはキー コンテナー名に基づいて CSP へのハンドルを取得します。
PvkPrivateKeyAcquireContextFromMemory CSP に一時コンテナーを作成し、メモリからコンテナーに秘密キーを読み込みます。
PvkPrivateKeySave 秘密キーとそれに対応する 公開キー を、指定したファイルに保存します。
SignError GetLastError を呼び出し、戻りコードを HRESULT に変換します。

 

証明書検証関数

証明書は、 CCTL または証明書チェーンを使用して検証されます。 関数は、次の両方に対して提供されます。

  • CCTL を使用した検証関数
  • 証明書チェーン検証関数

CCTL を使用した検証関数

これらの関数は、検証プロセスで CCTL を使用します。 CCTL を操作するためのその他の関数については、証明書信頼リスト関数と拡張プロパティ関数を参照してください。

次の関数では、検証に直接 CCTL を使用します。

機能 説明
CertVerifyCTLUsage CTL の使用状況を確認します。
CryptMsgEncodeAndSignCTL CTL をエンコードし、メッセージとして署名します。
CryptMsgGetAndVerifySigner メッセージから CTL を取得して検証します。
CryptMsgSignCTL CTL を含むメッセージに署名します。

 

証明書チェーン検証関数

証明書チェーンは、個々の証明書に関する信頼情報を提供するために構築されています。

関数名 説明
CertCreateCertificateChainEngine アプリケーションの既定以外の新しいチェーン エンジンを作成します。
CertCreateCTLEntryFromCertificateContextProperties 証明書コンテキストのプロパティである属性を持つ CTL エントリを作成します。
CertDuplicateCertificateChain チェーンの 参照カウント をインクリメントし、チェーンへのポインターを返すことで、証明書チェーンを複製します。
CertFindChainInStore ストア内の最初の証明書チェーン コンテキストまたは次の証明書チェーン コンテキストを検索します。
CertFreeCertificateChain 証明書チェーンの参照数を減らすことで、証明書チェーンを解放します。
CertFreeCertificateChainEngine 既定以外の証明書チェーン エンジンを解放します。
CertFreeCertificateChainList チェーン コンテキストへのポインターの配列を解放します。
CertGetCertificateChain 終了証明書から始まり、可能な場合は信頼された ルート証明書に戻るチェーン コンテキストを構築します。
CertIsValidCRLForCertificate CRL をチェックして、その証明書が失効した場合に特定の証明書が含まれるかどうかを判断します。
CertSetCertificateContextPropertiesFromCTLEntry CTL エントリの属性を使用して、証明書コンテキストのプロパティを設定します。
CertVerifyCertificateChainPolicy 証明書チェーンをチェックして、指定された有効性ポリシー条件に準拠するなど、その有効性を確認します。

 

メッセージ関数

CryptoAPI メッセージ関数は、低レベルのメッセージ関数と 簡略化されたメッセージ関数という 2 つの関数のグループで構成されます。

低レベルのメッセージ関数は、PKCS #7 メッセージを直接作成して操作します。 これらの関数は、受信した PKCS #7 データを送信およびデコードするために PKCS #7 データをエンコードします。 また、受信したメッセージの署名を復号化して検証します。 PKCS #7 標準メッセージと低レベルメッセージの概要については、 低レベルメッセージを参照してください。

簡略化されたメッセージ関数は、より高いレベルにあり、いくつかの低レベルのメッセージ関数と証明書関数を、特定の方法で特定のタスクを実行する単一の関数にラップします。 これらの関数により、タスクを実行するために必要な関数呼び出しの数が減り、CryptoAPI の使用が簡略化されます。 簡略化されたメッセージの概要については、「 簡略化されたメッセージ」を参照してください。

  • 低レベルのメッセージ関数
  • 簡略化されたメッセージ関数

低レベルのメッセージ関数

低レベルのメッセージ関数は、送信のためにデータをエンコードし、受信した PKCS #7 メッセージをデコードするために必要な機能を提供します。 また、受信したメッセージの署名を復号化して検証する機能も提供されます。 ほとんどのアプリケーションでこれらの低レベルのメッセージ関数を使用することはお勧めしません。 ほとんどのアプリケーションでは、いくつかの低レベルのメッセージ関数を 1 つの関数呼び出しにラップする簡略化されたメッセージ関数を使用することをお勧めします。

機能 説明
CryptMsgCalculateEncodedLength エンコードされた暗号化メッセージの長さを計算します。
CryptMsgClose 暗号化メッセージのハンドルを閉じます。
CryptMsgControl エンコードまたはデコードされた暗号化メッセージの最終的な CryptMsgUpdate の後に特別な制御関数を実行します。
CryptMsgCountersign メッセージ内の既存の署名に対して署名します。
CryptMsgCountersignEncoded 既に存在する署名 (PKCS #7 で定義されているエンコードされた SignerInfo) に署名します。
CryptMsgDuplicate 参照カウントをインクリメントして、暗号化メッセージ ハンドルを複製します。 参照カウントは、メッセージの有効期間を追跡します。
CryptMsgGetParam 暗号化メッセージのエンコードまたはデコード後にパラメーターを取得します。
CryptMsgOpenToDecode デコード用の暗号化メッセージを開きます。
CryptMsgOpenToEncode エンコード用の暗号化メッセージを開きます。
CryptMsgUpdate 暗号化メッセージの内容を更新します。
CryptMsgVerifyCountersignatureEncoded SignerInfo 構造体 (PKCS #7 で定義) の観点から 、カウンター署名 を検証します。
CryptMsgVerifyCountersignatureEncodedEx pbSignerInfoCounterSignature パラメーターに、pbSignerInfo パラメーター構造の encryptedDigest フィールドの暗号化されたハッシュが含まれていることを確認します。

 

簡略化されたメッセージ関数

簡略化されたメッセージ関数は 、低レベルのメッセージ関数を 1 つの関数にラップして、指定されたタスクを実行します。

機能 説明
CryptDecodeMessage 暗号化メッセージをデコードします。
CryptDecryptAndVerifyMessageSignature 指定したメッセージの暗号化を解除し、署名者を検証します。
CryptDecryptMessage 指定したメッセージの暗号化を解除します。
CryptEncryptMessage 受信者または受信者のメッセージを暗号化します。
CryptGetMessageCertificates メッセージの証明書と CRL を含む証明書 ストア を返 します
CryptGetMessageSignerCount 署名されたメッセージ内の署名者の数を返します。
CryptHashMessage メッセージのハッシュを作成します。
CryptSignAndEncryptMessage メッセージに署名し、受信者または受信者に対して暗号化します。
CryptSignMessageWithKey パラメーターで指定された CSP の秘密キーを使用してメッセージを関数に署名します。
CryptSignMessage メッセージに署名します。
CryptVerifyDetachedMessageHash デタッチされたハッシュを含むハッシュされたメッセージを検証します。
CryptVerifyDetachedMessageSignature デタッチされた署名または署名を含む署名付きメッセージを検証します。
CryptVerifyMessageHash ハッシュされたメッセージを検証します。
CryptVerifyMessageSignature 署名されたメッセージを確認します。
CryptVerifyMessageSignatureWithKey 指定した公開キー情報を使用して、署名されたメッセージの署名を確認します。

 

補助関数

補助関数は次のようにグループ化されます。

  • データ管理関数
  • データ変換関数
  • 拡張キー使用法関数
  • キー識別子関数
  • OID サポート関数
  • リモート オブジェクト取得関数
  • PFX 関数

データ管理関数

次の CryptoAPI 関数は、データと証明書を管理します。

機能 説明
CertCompareCertificate 2 つの証明書を比較して、それらが同一であるかどうかを判断します。
CertCompareCertificateName 2 つの証明書名を比較して、それらが同一であるかどうかを判断します。
CertCompareIntegerBlob 2 つの整数 BLOB を比較します
CertComparePublicKeyInfo 2 つの 公開キー を比較して、それらが同一であるかどうかを判断します。
CertFindAttribute オブジェクト識別子 (OID) で識別される最初の属性を検索します。
CertFindExtension OID で識別される最初の拡張機能を検索します。
CertFindRDNAttr OID によって識別される最初の RDN 属性を 、相対識別名の名前リストで検索します。
CertGetIntendedKeyUsage 証明書から目的のキー使用量バイトを取得します。
CertGetPublicKeyLength 公開キー BLOB から公開/秘密キーのビット長を取得します。
CertIsRDNAttrsInCertificateName 証明書名の属性と指定したCERT_RDNを比較して、すべての属性がそこに含まれているかどうかを判断します。
CertIsStrongHashToSign 指定したハッシュ アルゴリズムと署名証明書の公開キーを使用して強力な署名を実行できるかどうかを判断します。
CertVerifyCRLRevocation サブジェクト証明書が証明書 失効リスト (CRL) に含まれていないことを確認します。
CertVerifyCRLTimeValidity CRL の時間の有効性を確認します。
CertVerifyRevocation サブジェクト証明書が CRL にないことを確認します。
CertVerifyTimeValidity 証明書の時間の有効性を確認します。
CertVerifyValidityNesting サブジェクトの時刻の有効性が発行者の時間の有効性内に入れ子であることを確認します。
CryptExportPKCS8 この関数は CryptExportPKCS8Ex 関数に置き換えられます。
CryptExportPKCS8Ex 秘密キーを PKCS #8 形式でエクスポートします。
CryptExportPublicKeyInfo プロバイダーの対応する秘密キーに関連付けられている公開キー情報をエクスポートします。
CryptExportPublicKeyInfoEx プロバイダーの対応する秘密キーに関連付けられている公開キー情報をエクスポートします。 この関数は、ユーザーが公開キー アルゴリズムを指定できるため、CSP によって提供される既定値をオーバーライドするという点で、 CryptExportPublicKeyInfo とは異なります。
CryptExportPublicKeyInfoFromBCryptKeyHandle プロバイダーの対応する秘密キーに関連付けられている公開キー情報をエクスポートします。
CryptFindCertificateKeyProvInfo 暗号化プロバイダーとその キー コンテナー を列挙して、証明書の公開キーに対応する秘密キーを検索します。
CryptFindLocalizedName たとえば、指定した名前のローカライズされた名前を検索し、ルート システムのストア名のローカライズされた名前を検索します。
CryptHashCertificate
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

エンコードされたコンテンツをハッシュします。
CryptHashCertificate2 Cryptography API: Next Generation (CNG) ハッシュ プロバイダーを使用して、データのブロックをハッシュします。
CryptHashPublicKeyInfo
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

エンコードされた公開キー情報のハッシュを計算します。
CryptHashToBeSigned
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

エンコードされた署名済みコンテンツ (CERT_SIGNED_CONTENT_INFO) 内の "署名対象" 情報のハッシュを計算します。
CryptImportPKCS8
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

PKCS #8 形式の 秘密キー暗号化サービス プロバイダー (CSP) にインポートします。
CryptImportPublicKeyInfo
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

公開キー情報をプロバイダーに変換してインポートし、公開キーのハンドルを返します。
CryptImportPublicKeyInfoEx
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

公開キー情報をプロバイダーに変換してインポートし、公開キーのハンドルを返します。 既定値をオーバーライドするために使用できる追加のパラメーター ( CryptImportPublicKeyInfo で指定されているものに対して) は、CERT_PUBLIC_KEY_INFOを補完するために提供されます。
CryptImportPublicKeyInfoEx2 公開キーを CNG 非対称プロバイダーにインポートします。
CryptMemAlloc バッファーのメモリを割り当てます。 このメモリは、割り当てられたバッファーを返すすべての Crypt32.lib 関数で使用されます。
CryptMemFree CryptMemAlloc または CryptMemRealloc によって割り当てられたメモリ解放します。
CryptMemRealloc バッファーに現在割り当てられているメモリを解放し、新しいバッファーにメモリを割り当てます。
CryptQueryObject
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

BLOB またはファイルの内容に関する情報を取得します。
CryptSignAndEncodeCertificate "署名する" 情報をエンコードし、このエンコードされた情報に署名し、結果として生成される署名済みのエンコードされた情報をエンコードします。
CryptSignCertificate エンコードされた署名済みコンテンツ内の "署名する" 情報に署名します。
CryptSIPAddProvider サブジェクト インターフェイス パッケージ (SIP) を追加します。
CryptSIPCreateIndirectData 指定された SIP_SUBJECTINFO 構造体、ダイジェスト アルゴリズム、およびエンコード属性の ハッシュ を含む SIP_INDIRECT_DATA 構造体を返します。 ハッシュは、データへの間接的な参照として使用できます。
CryptSIPGetCaps SIP の機能を取得します。
CryptSIPGetSignedDataMsg ファイルから Authenticode 署名を取得します。
CryptSIPLoad サブジェクト インターフェイス パッケージを実装し、適切なライブラリ エクスポート関数を SIP_DISPATCH_INFO 構造体に割り当てるダイナミック リンク ライブラリを読み込みます。
CryptSIPPutSignedDataMsg Authenticode Signature をターゲット ファイルに格納します。
CryptSIPRemoveProvider CryptSIPAddProvider 関数の前回の呼び出しによって追加された SIP を削除します。
CryptSIPRemoveSignedDataMsg 指定した Authenticode 署名を削除します。
CryptSIPRetrieveSubjectGuid 指定したファイル内のヘッダー情報に基づいて GUID を取得します。
CryptSIPRetrieveSubjectGuidForCatalogFile 指定したファイルに関連付けられているサブジェクト GUID を取得します。
CryptSIPVerifyIndirectData 指定されたサブジェクトに対して間接ハッシュデータを検証します。
CryptUpdateProtectedState ユーザーの セキュリティ識別子 (SID) が変更された後、現在のユーザーのマスター キーを移行します。
CryptVerifyCertificateSignature 公開キー情報を使用して、サブジェクト証明書または CRL の署名を確認します。
CryptVerifyCertificateSignatureEx CryptVerifyCertificateSignature の拡張バージョン。
GetEncSChannel 暗号化された Schannel DLL の内容をメモリに格納します。
pCryptSIPGetCaps 機能を報告するために SIP によって実装されます。

 

データ変換関数

次の CryptoAPI 関数は、証明書構造のメンバーを異なる形式に変換します。

機能 説明
CertAlgIdToOID CryptoAPI アルゴリズム識別子 (ALG_ID) を 抽象構文表記 1 (ASN.1) オブジェクト識別子 (OID) 文字列に変換します。
CertGetNameString 証明書からサブジェクト名または発行者名を取得し、null で終わる文字列に変換します。
CertNameToStr 証明書名 BLOB を 0 で終わる文字列に変換します。
CertOIDToAlgId ASN.1 オブジェクト識別子文字列を CSP アルゴリズム識別子に変換します。
CertRDNValueToStr Name Value を null で終わる文字列に変換します。
CertStrToName null で終わる X.500 文字列をエンコードされた証明書名に変換します。
CryptBinaryToString バイナリ シーケンスを書式設定された文字列に変換します。
CryptFormatObject エンコードされたデータを書式設定し、Unicode 文字列を返します。
CryptStringToBinary 書式設定された文字列をバイナリ シーケンスに変換します。

 

拡張キー使用法関数

次の関数は、 拡張キー使用法 (EKU) 拡張機能と証明書の EKU 拡張プロパティを扱います。 EKU 拡張プロパティと拡張プロパティは、証明書の有効な使用を指定および制限します。 拡張機能は、証明書自体の一部です。 これらは証明書の発行者によって設定され、読み取り専用です。 証明書拡張プロパティは、アプリケーションで設定できる証明書に関連付けられている値です。

機能 説明
CertAddEnhancedKeyUsageIdentifier 証明書の EKU プロパティに使用状況識別子を追加します。
CertGetEnhancedKeyUsage 証明書から、EKU 拡張機能またはプロパティに関する情報を取得します。
CertRemoveEnhancedKeyUsageIdentifier 証明書の EKU 拡張プロパティから使用状況識別子を削除します。
CertSetEnhancedKeyUsage 証明書の EKU プロパティを設定します。

 

キー識別子関数

キー識別子関数を使用すると、ユーザーはキー識別子またはそのプロパティを作成、設定、取得、または検索できます。

キー識別子は、 公開キーと秘密キーのペアの一意識別子です。 任意の一意識別子を指定できますが、通常はエンコードされた CERT_PUBLIC_KEY_INFO 構造体の 20 バイト SHA1 ハッシュです。 キー識別子は、証明書のCERT_KEY_IDENTIFIER_PROP_IDを使用して取得できます。 キー識別子を使用すると、その キー ペア を使用して、証明書を使用せずにメッセージを暗号化または復号化できます。

キー識別子は CRL または CTL関連付けられません。

キー識別子は、証明書コンテキストと同じプロパティを持つことができます。 詳細については、「 CertCreateContext」を参照してください。

機能 説明
CryptCreateKeyIdentifierFromCSP
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

CSP の 公開キー BLOB からキー識別子を作成します。
CryptEnumKeyIdentifierProperties キー識別子とそのプロパティを列挙します。
CryptGetKeyIdentifierProperty
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

指定したキー識別子から特定のプロパティを取得します。
CryptSetKeyIdentifierProperty
[!重要]
この API は非推奨です。 新規および既存のソフトウェアでは、 Cryptography Next Generation API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。

指定したキー識別子のプロパティを設定します。

 

OID サポート関数

これらの関数は 、オブジェクト識別子 (OID) のサポートを提供します。 これらの関数は、OID およびエンコード型固有の関数をインストール、登録、およびディスパッチします。

次の CryptoAPI 関数は、これらの OID サポート関数を使用します。

このプロセスの概要については、「 CryptoAPI 機能の拡張」を参照してください。

次の関数は OID で動作します。

機能 説明
CryptEnumOIDFunction エンコードの種類、関数名、および OID で識別される登録済みの OID 関数を列挙します。
CryptEnumOIDInfo グループによって識別された登録済みの OID 情報を列挙し、一致する pfnEnumOIDInfo を 呼び出します。
CryptFindOIDInfo 指定したキーとグループを使用して OID 情報を検索します。
CryptFreeOIDFunctionAddress CryptGetOIDFunctionAddress または CryptGetDefaultOIDFunctionAddress によってインクリメントされて返されたハンドル数を解放します
CryptGetDefaultOIDDllList 指定した関数セットとエンコード型の登録済みの既定の DLL エントリの一覧を取得します。
CryptGetDefaultOIDFunctionAddress 最初または次にインストールされた既定の関数を取得するか、既定の関数を含む DLL を読み込みます。
CryptGetOIDFunctionAddress インストールされている関数の一覧で、エンコードの種類と OID の一致を検索します。 一致するものが見つからない場合、レジストリは一致を検索します。
CryptGetOIDFunctionValue 指定したエンコードの種類、関数名、OID、および値の名前の値を取得します。
CryptInitOIDFunctionSet 指定された関数名で識別される OID 関数セットのハンドルを初期化して返します。
CryptInstallOIDFunctionAddress 呼び出し可能な OID 関数アドレスのセットをインストールします。
CryptRegisterDefaultOIDFunction 指定したエンコードの種類と関数名に対して呼び出される既定の関数を含む DLL を登録します。
CryptRegisterOIDFunction 指定したエンコードの種類、関数名、および OID に対して呼び出される関数を含む DLL を登録します。
CryptRegisterOIDInfo CRYPT_OID_INFO構造体で指定された OID 情報を登録し、レジストリに保持します。
CryptSetOIDFunctionValue 指定したエンコードの種類、関数名、OID、および値の名前の値を設定します。
CryptUnregisterDefaultOIDFunction 指定したエンコード型と関数名に対して呼び出される既定の関数を含む DLL の登録を削除します。
CryptUnregisterOIDFunction 指定したエンコードの種類、関数名、および OID に対して呼び出される関数を含む DLL の登録を削除します。
CryptUnregisterOIDInfo 指定した OID 情報の登録を削除します。

 

リモート オブジェクト取得関数

次の関数を使用すると、ユーザーは公開キー基盤 (PKI) オブジェクトを取得したり、証明書、CTL、または CRL の URL を取得したり、オブジェクトから URL を抽出したりすることができます。

機能 説明
CryptGetObjectUrl 証明書、CTL、または CRL からリモート オブジェクトの URL を取得します。
CryptRetrieveObjectByUrl URL で指定された場所から PKI オブジェクトを取得します。

 

PFX 関数

以下の機能は、個人情報Exchange (PFX) 形式の BLOB をサポートします

機能 説明
PFXExportCertStore 参照先の証明書からエクスポートすると、証明書と、その証明書に関連付けられている秘密キー保存されます (使用可能な場合)。
PFXExportCertStoreEx 参照先の証明書からエクスポートすると、証明書と、その証明書に関連付けられている秘密キーが保存されます (使用可能な場合)。
PFXImportCertStore PFX BLOB をインポートし、証明書と関連付けられている秘密キーを含むストアのハンドルを返します。
PFXIsPFXBlob BLOB の外部レイヤーを PFX パケットとしてデコードしようとします。
PFXVerifyPassword BLOB の外部レイヤーを PFX パケットとしてデコードし、指定されたパスワードで復号化しようとします。

 

証明書サービスのBackupと復元の機能

証明書サービスには、Certificate Services データベースをバックアップおよび復元するための機能が含まれています。 これらの証明書サービスのバックアップと復元の機能は、Certadm.dllに含まれています。 Certificate Services に関連付けられている他の API 要素とは異なり、これらの関数は、クラス メソッドの呼び出しに使用できるオブジェクトにカプセル化されません。 代わりに、バックアップ API と復元 API は、最初に LoadLibrary を呼び出して Certadm.dll ライブラリをメモリに読み込み、 GetProcAddress を呼び出して関数のアドレスを決定することによって呼び出されます。 証明書サービスのバックアップと復元の関数の呼び出しが完了したら、 FreeLibrary を呼び出して、Certadm.dllリソースをメモリから解放します。

Note

Certadm.dllによって提供されるBackupおよび復元機能は、証明書サービスの秘密キーをバックアップまたは復元しません。 Certificate Services 秘密キーのバックアップについては、「証明書サービスの秘密キー のバックアップと復元」を参照してください。

バックアップと復元の機能を呼び出すには、バックアップと復元 の権限が必要です。 詳細については、「Backupと復元権限の設定」を参照してください。

 

Note

CoInitializeEx が証明書サービスのバックアップと復元 API の呼び出しに使用されたのと同じスレッドで以前に呼び出された場合、COINIT_APARTMENTTHREADED フラグは CoInitializeEx に渡されている必要があります。 つまり、同じスレッドを使用している場合、 スレッドが CoInitializeEx の呼び出しで COINIT_MULTITHREADED フラグで渡された場合、証明書サービスのバックアップと復元 API を呼び出すことはできません。

 

証明書サービス Backup API は Certbcli.h で定義されています。 ただし、プログラムを作成するときは、インクルード ファイルとして Certsrv.h を使用します。

次の API は、Certadm.dllによってエクスポートされます。

機能 説明
CertSrvBackupClose 開いているファイルを閉じます。
CertSrvBackupEnd バックアップ セッションを終了します。
CertSrvBackupFree バックアップ API と復元 API によって割り当てられたバッファーを解放します。
CertSrvBackupGetBackupLogs バックアップする必要があるログ ファイルの一覧を返します。
CertSrvBackupGetDatabaseNames バックアップする必要があるデータベース ファイルの一覧を返します。
CertSrvBackupGetDynamicFileList 特定のバックアップ コンテキストに対してバックアップする必要がある証明書サービスの動的ファイル名の一覧を取得します。
CertSrvBackupOpenFile バックアップの準備としてファイルを開きます。
CertSrvBackupPrepare オンライン バックアップ用にデータベースを準備します。
CertSrvBackupRead 開いているファイルの内容を読み取ります。
CertSrvBackupTruncateLogs ログ ファイルを切り捨てます。
CertSrvIsServerOnline 証明書サービス サーバーがオンライン (アクティブに実行) されているかどうかを判断します。
CertSrvRestoreEnd 復元セッションを終了します。
CertSrvRestoreGetDatabaseLocations データベースの場所を取得します (バックアップと復元の両方のシナリオで使用されます)。
CertSrvRestorePrepare 復元セッションを開始します。
CertSrvRestoreRegister 復元操作を登録します。
CertSrvRestoreRegisterComplete 以前に登録した復元操作を完了します。
CertSrvRestoreRegisterThroughFile 復元操作を登録します。
CertSrvServerControl Certificate Services インスタンスに制御コマンドを送信します。

 

コールバック関数

このセクションのコールバック関数は、アプリケーション定義 の証明書ストア プロバイダーを登録またはインストールし、コールバック関数を介して関連する機能を提供するために使用されます。 コールバック関数はアプリケーションによって実装され、 CryptoAPI 関数によって呼び出されます。 コールバック関数を使用すると、CryptoAPI 関数がデータを操作する方法を制御できます。

コールバック関数 vmmblue_2
CertChainFindByIssuerCallback 証明書チェーンに追加される可能性のある証明書をアプリケーションがフィルター処理できるようにするアプリケーション定義のコールバック関数。
CertDllOpenStoreProv ストア プロバイダーのオープン関数を定義します。
CertEnumPhysicalStoreCallback CertEnumPhysicalStore 関数によって、検出された各物理ストアに関する情報を書式設定および提示するために使用されるコールバック関数。
CertEnumSystemStoreCallback CertEnumSystemStore 関数によって、検出された各物理ストアに関する情報を書式設定および表示するために使用されるコールバック関数。
CertEnumSystemStoreLocationCallback CertEnumSystemStoreLocation 関数によって、検出された各物理ストアに関する情報を書式設定および表示するために使用されるコールバック関数。
CertStoreProvCloseCallback オープン ストアの 参照カウント が 0 になったときの動作を決定します。
CertStoreProvControl 使用中のキャッシュされたストアの内容と、ストレージに永続化されるそのストアの内容の間に違いがある場合に、アプリケーションに通知を受け取ることができます。
CertStoreProvDeleteCertCallback 証明書ストアから証明書を削除する前に実行するアクションを決定します。
CertStoreProvDeleteCRLCallback 証明書失効リスト (CRL) が証明書ストアから削除される前に実行するアクションを決定します。
CertStoreProvDeleteCTL CTL を削除できるかどうかを判断します。
CertStoreProvFindCert 指定した条件に一致するストア内の最初の証明書または次の証明書を検索します。
CertStoreProvFindCRL 指定した条件に一致するストア内の最初の CRL または次の CRL を検索します。
CertStoreProvFindCTL 指定した条件に一致するストア内の最初の CTL または次の CTL を検索します。
CertStoreProvFreeFindCert 以前に見つかった証明書コンテキストを解放します。
CertStoreProvFreeFindCRL 以前に見つかった CRL コンテキストを解放します。
CertStoreProvFreeFindCTL 以前に見つかった CTL コンテキストを解放します。
CertStoreProvGetCertProperty 証明書の指定したプロパティを取得します。
CertStoreProvGetCRLProperty CRL の指定したプロパティを取得します。
CertStoreProvGetCTLProperty CTL の指定したプロパティを取得します。
CertStoreProvReadCertCallback 現在は使用されていませんが、将来の CSP にエクスポートされる可能性があります。
CertStoreProvReadCRLCallback 現在は使用されていませんが、将来の CSP にエクスポートされる可能性があります。
CertStoreProvReadCTL プロバイダーの CTL コンテキストのコピーを読み取り、存在する場合は新しい CTL コンテキストを作成します。
CertStoreProvSetCertPropertyCallback CertSetCertificateContextProperty または CertGetCertificateContextProperty呼び出す前に実行するアクションを決定します。
CertStoreProvSetCRLPropertyCallback CertSetCRLContextProperty または CertGetCRLContextProperty を呼び出す前に実行するアクション決定します。
CertStoreProvSetCTLProperty プロパティを CTL に設定できるかどうかを決定します。
CertStoreProvWriteCertCallback ストアに証明書を追加する前に実行するアクションを決定します。
CertStoreProvWriteCRLCallback CRL をストアに追加する前に実行するアクションを決定します。
CertStoreProvWriteCTL CTL をストアに追加できるかどうかを決定します。
CRYPT_ENUM_KEYID_PROP CryptEnumKeyIdentifierProperties 関数によって使用されるコールバック関数。
CRYPT_ENUM_OID_FUNCTION CryptEnumOIDFunction 関数によって使用されるコールバック関数。
CRYPT_ENUM_OID_INFO CryptEnumOIDInfo 関数によって使用されるコールバック関数。
CryptGetSignerCertificateCallback メッセージ署名者の証明書を取得して検証するために 、CRYPT_VERIFY_MESSAGE_PARA 構造体と共に使用されるコールバック関数。
PCRYPT_DECRYPT_PRIVATE_KEY_FUNC CryptImportPKCS8 関数によって使用されるコールバック関数。
PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC CRYPT_ENCRYPTED_PRIVATE_KEY_INFO構造体の作成時に使用されるコールバック関数。
PCRYPT_RESOLVE_HCRYPTPROV_FUNC CryptImportPKCS8 関数によって使用されるコールバック関数。
PFN_CDF_PARSE_ERROR_CALLBACK カタログ定義ファイル (CDF) の解析中にカタログ定義関数エラーに対して呼び出されたユーザー定義関数。
PFN_CERT_CREATE_CONTEXT_SORT_FUNC コンテキストが作成されるときに、並べ替えられた各コンテキスト エントリに対して呼び出されます。
PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY 既に復号化されたコンテンツ暗号化キー (CEK) をインポートするための CNG オブジェクト識別子 (OID) インストール可能な関数。
PFN_CMSG_CNG_IMPORT_KEY_AGREE エンベロープされたメッセージのキー トランスポート受信者のコンテンツ暗号化キーをインポートします。
PFN_CMSG_CNG_IMPORT_KEY_TRANS キートランスポート受信者、暗号化されたコンテンツ暗号化キー (CEK) のインポートと復号化のための CNG OID インストール可能な関数。
PFN_CMSG_EXPORT_KEY_AGREE エンベロープ されたメッセージのキー アグリーメント受信者のコンテンツ暗号化キーを暗号化してエクスポートします。
PFN_CMSG_EXPORT_KEY_TRANS エンベロープされたメッセージのキー トランスポート受信者のコンテンツ暗号化キーを暗号化およびエクスポートします。
PFN_CMSG_EXPORT_MAIL_LIST エンベロープメッセージのメーリング リスト受信者のコンテンツ暗号化キーを暗号化およびエクスポートします。
PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY エンベロープされたメッセージのコンテンツを暗号化するために使用される 対称キー を生成します。
PFN_CMSG_IMPORT_KEY_AGREE エンベロープされたメッセージのキー トランスポート受信者のコンテンツ暗号化キーをインポートします。
PFN_CMSG_IMPORT_KEY_TRANS エンベロープされたメッセージのキー トランスポート受信者のコンテンツ暗号化キーをインポートします。
PFN_CMSG_IMPORT_MAIL_LIST エンベロープされたメッセージのキー トランスポート受信者のコンテンツ暗号化キーをインポートします。
PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC 公開キー BLOB をエクスポートしてエンコードするために CryptExportPublicKeyInfoEx によって呼び出されます。
PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC ハッシュ アルゴリズム識別子と必要に応じてシグネチャ パラメーターをデコードして返すために呼び出されます。
PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC 計算されたハッシュに署名してエンコードするために呼び出されます。
PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC エンコードされた署名を復号化し、計算されたハッシュと比較するために呼び出されます。
PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC 公開キー アルゴリズム識別子のデコード、アルゴリズム プロバイダーの読み込み、キー ペアのインポートを行うために、CryptImportPublicKeyInfoEx2 によって呼び出されます。
PFNCCERTDISPLAYPROC CryptUIDlgSelectCertificate 関数の呼び出し元が、ユーザーが表示を選択した証明書の表示を処理できるようにするユーザー定義コールバック関数。
PFNCMFILTERPROC 各証明書をフィルター処理して、 CertSelectCertificate 関数によって表示される証明書の選択ダイアログ ボックスに表示されるかどうかを決定します。
PFNCMHOOKPROC CertSelectCertificate 関数によって生成された証明書選択ダイアログ ボックスによってメッセージが処理される前に呼び出されます。

 

カタログ定義関数

これらの関数は、カタログの作成に使用されます。 これらの関数はすべて MakeCat によって呼び出されます。

機能 説明
CryptCATCDFClose カタログ定義ファイルを閉じ、対応する CRYPTCATCDF 構造体のメモリを解放します。
CryptCATCDFEnumAttributesWithCDFTag CDF の CatalogFiles セクションにあるメンバー ファイルの属性を列挙します。
CryptCATCDFEnumCatAttributes CDF の CatalogHeader セクション内のカタログ レベルの属性を列挙します。
CryptCATCDFEnumMembersByCDFTagEx CDF の CatalogFiles セクション内の個々のファイル メンバーを列挙します。
CryptCATCDFOpen 読み取り用の既存の CDF を開き、 CRYPTCATCDF 構造体を初期化します。

 

カタログ関数

これらの関数は、カタログの管理に使用されます。

機能 説明
CryptCATAdminAcquireContext カタログ管理者コンテキストへのハンドルを取得します。 このハンドルは、 CryptCATAdminAddCatalogCryptCATAdminEnumCatalogFromHash、および CryptCATAdminRemoveCatalog 関数への後続の呼び出しで使用できます。
CryptCATAdminAcquireContext2 特定のハッシュ アルゴリズムとハッシュ ポリシーのカタログ管理者コンテキストへのハンドルを取得します。
CryptCATAdminAddCatalog カタログ をカタログ データベースに追加します。
CryptCATAdminCalcHashFromFileHandle ファイルのハッシュを計算します。
CryptCATAdminCalcHashFromFileHandle2 指定したアルゴリズムを使用して、ファイルのハッシュを計算します。
CryptCATAdminEnumCatalogFromHash 指定したハッシュを含むカタログを列挙します。
CryptCATAdminReleaseCatalogContext CryptCATAdminAddCatalog 関数によって以前に返されたカタログ コンテキストへのハンドルを解放します。
CryptCATAdminReleaseContext CryptCATAdminAcquireContext 関数によって以前に割り当てられたハンドルを解放します。
CryptCATAdminRemoveCatalog カタログ ファイルを削除し、そのカタログのエントリをWindowsカタログ データベースから削除します。
CryptCATAdminResolveCatalogPath 指定したカタログの完全修飾パスを取得します。
CryptCATCatalogInfoFromContext 指定したカタログ コンテキストからカタログ情報を取得します。
CryptCATClose CryptCATOpen 関数によって以前に開かれたカタログ ハンドルを閉じます。
CryptCATEnumerateAttr カタログのメンバーに関連付けられている属性を列挙します。
CryptCATEnumerateCatAttr カタログに関連付けられている属性を列挙します。
CryptCATEnumerateMember カタログのメンバーを列挙します。
CryptCATGetAttrInfo カタログのメンバーの属性に関する情報を取得します。
CryptCATGetMemberInfo カタログの PKCS #7 からメンバー情報を取得します。 指定した参照タグのメンバー情報を取得するだけでなく、この関数はメンバー コンテキストを開きます。
CryptCATOpen カタログを開き、開いているカタログにコンテキスト ハンドルを返します。
IsCatalogFile 指定したファイルがカタログ ファイルであるかどうかを示すブール値を取得します。

 

WinTrust Functions

次の関数は、さまざまな信頼操作を実行するために使用されます。

機能 説明
WintrustAddActionID 信頼プロバイダー アクションをユーザーのシステムに追加します。
WintrustGetRegPolicyFlags ポリシー プロバイダーのポリシー フラグを取得します。
WintrustAddDefaultForUsage プロバイダーの既定の使用状況識別子とコールバック情報を指定します
WintrustGetDefaultForUsage 既定の使用状況識別子とコールバック情報を取得します。
WintrustLoadFunctionPointers 指定したアクション GUID の関数エントリ ポイントを読み込みます。
WintrustRemoveActionID WintrustAddActionID 関数によって追加されたアクションを削除します。
WintrustSetDefaultIncludePEPageHashes ポータブル実行可能ファイルのサブジェクト インターフェイス パッケージ (SIP) 間接データを作成するときにページ ハッシュを含めるかどうかを決定する既定の設定を設定します。
WintrustSetRegPolicyFlags ポリシー プロバイダーのポリシー フラグを設定します。
WinVerifyTrust 指定したオブジェクトに対して信頼確認アクションを実行します。
WinVerifyTrustEx 指定したオブジェクトに対して信頼検証アクションを実行し、WINTRUST_DATA構造体へのポインターを受け取ります。
WTHelperCertCheckValidSignature 署名が有効かどうかを確認します。
WTHelperCertFindIssuerCertificate 指定したサブジェクト証明書と一致する指定した証明書ストアから発行者証明書を検索します。
WTHelperCertIsSelfSigned 証明書が自己署名されているかどうかを確認します。
WTHelperGetFileHash 署名されたファイルの署名を検証し、ファイルのハッシュ値とアルゴリズム識別子を取得します。
WTHelperGetProvCertFromChain 証明書チェーンから信頼プロバイダー証明書を取得します。
WTHelperGetProvPrivateDataFromChain プロバイダー ID を使用して、チェーンから CRYPT_PROVIDER_PRIVDATA 構造体を受け取ります。
WTHelperGetProvSignerFromChain チェーンからインデックス別に署名者またはカウンター署名者を取得します。
WTHelperProvDataFromStateData 指定したハンドルから信頼プロバイダー情報を取得します。

 

オブジェクト ロケーター関数

次のコールバック関数は、証明書を取得するために Secure Channel (Schannel) セキュリティ パッケージによって呼び出されることを意図したカスタム プロバイダーによって実装できます。

機能 説明
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH オブジェクトが変更されたことを指定します。
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET オブジェクトを取得します。
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE プロバイダーを解放します。
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD PFX バイト配列の暗号化に使用されるパスワードを解放します。
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE プロバイダーから返されるオブジェクトを解放します。
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER オブジェクト識別子のメモリを解放します。
PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE プロバイダーを初期化します。