CertSaveStore 関数 (wincrypt.h)

CertSaveStore 関数は、証明書ストアをファイルまたはメモリ BLOB に保存します。

構文

BOOL CertSaveStore(
  [in]      HCERTSTORE hCertStore,
  [in]      DWORD      dwEncodingType,
  [in]      DWORD      dwSaveAs,
  [in]      DWORD      dwSaveTo,
  [in, out] void       *pvSaveToPara,
  [in]      DWORD      dwFlags
);

パラメーター

[in] hCertStore

保存する証明書ストアのハンドル。

[in] dwEncodingType

証明書エンコードの 種類メッセージ エンコードの種類を指定します。 エンコードは、 dwSaveAsCERT_STORE_SAVE_AS_PKCS7が含まれている場合にのみ使用されます。 それ以外の場合、 dwMsgAndCertEncodingType パラメーターは使用されません。

このパラメーターには、次の値の 1 つ以上の組み合わせを指定できます。

説明
PKCS_7_ASN_ENCODING
65536 (0x10000)
PKCS 7 メッセージ エンコーディングを指定します。
X509_ASN_ENCODING
1 (0x1)
X.509 証明書のエンコードを指定します。

[in] dwSaveAs

証明書ストアを保存する方法を指定します。

このパラメーターには、次の値のいずれかを指定できます。

説明
CERT_STORE_SAVE_AS_PKCS7
2
証明書ストアは、追加のプロパティを含まない PKCS #7 署名付きメッセージとして保存できます。 dwEncodingType パラメーターは、メッセージ エンコードの種類を指定します。
CERT_STORE_SAVE_AS_STORE
1
証明書ストアは、エンコードされた証明書、 証明書失効リスト (CRL)、証明書 信頼 リスト (CCTL) に加えて、プロパティを含むシリアル化されたストアとして保存できます。 dwEncodingType パラメーターは無視されます。
メモCERT_KEY_CONTEXT_PROP_ID プロパティと、関連するCERT_KEY_PROV_HANDLE_PROP_IDCERT_KEY_SPEC_PROP_IDの値は、シリアル化されたストアに保存されません。
 

[in] dwSaveTo

証明書ストアを保存する場所と方法を指定します。 このパラメーターの内容によって、 pvSaveToPara パラメーターの形式が決まります。

このパラメーターには、次の値のいずれかを指定できます。

説明
CERT_STORE_SAVE_TO_FILE
1
関数は、証明書ストアをファイルに保存します。 pvSaveToPara パラメーターには、CreateFile 関数を使用して以前に取得したファイルへのハンドルが含まれています。 ファイルは書き込みアクセス許可で開く必要があります。 保存操作が成功すると、ファイル ポインターは最後の書き込み操作の後に配置されます。
CERT_STORE_SAVE_TO_FILENAME
4
関数は、証明書ストアをファイルに保存します。 pvSaveToPara パラメーターには、保存するファイルのパスとファイル名を含む null で終わる Unicode 文字列へのポインターが含まれています。 関数はファイルを開き、ファイルに保存して閉じます。
CERT_STORE_SAVE_TO_FILENAME_A
3
関数は、証明書ストアをファイルに保存します。 pvSaveToPara パラメーターには、保存するファイルのパスとファイル名を含む null で終わる ANSI 文字列へのポインターが含まれています。 関数はファイルを開き、ファイルに保存して閉じます。
CERT_STORE_SAVE_TO_FILENAME_W
4
関数は、証明書ストアをファイルに保存します。 pvSaveToPara パラメーターには、保存するファイルのパスとファイル名を含む null で終わる Unicode 文字列へのポインターが含まれています。 関数はファイルを開き、ファイルに保存して閉じます。
CERT_STORE_SAVE_TO_MEMORY
2
関数は、証明書ストアをメモリ BLOB に保存します。 pvSaveToPara パラメーターには、CERT_BLOB構造体へのポインターが含まれています。 使用する前に、 CERT_BLOBpbData メンバーと cbData メンバーを初期化する必要があります。 返されると、 cbData は実際の長さで更新されます。 長さ専用の計算では、 pbDataNULL に設定する必要があります。 pbDataNULL 以外で、cbData が十分な大きさでない場合、関数は 0 を返し、最後のエラー コードは ERROR_MORE_DATA

[in, out] pvSaveToPara

ストアの保存先を表すポインター。 このパラメーターの内容は、 dwSaveTo パラメーターの値によって異なります。

[in] dwFlags

このパラメーターは将来使用するために予約されており、0 に設定する必要があります。

戻り値

関数が成功した場合、関数は 0 以外の値を返します。

関数が失敗すると、0 が返されます。 拡張エラー情報については、 GetLastError を呼び出します。

CreateFile エラーまたは WriteFile エラーは、この関数に反映される可能性があることに注意してください。 考えられるエラー コードの 1 つは ファイルへの書き込み中にエラーが発生したことを示すCRYPT_E_FILE_ERRORです。

要件

   
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Crypt32.lib
[DLL] Crypt32.dll

関連項目

CertCloseStore

CertOpenStore

証明書ストア関数

CreateFile

WriteFile