C/C++ を使用してプログラムで Windows に新しい証明書ストアを作成しようとしています。
この関数 - から始めて、CryptAcquireContext
次のコードを書きました。
#include<windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
HCRYPTPROV hCryptProvider;
PCWSTR DefaultContainerName = L"MyStoreName";
PCWSTR DefaultProviderName = MS_STRONG_PROV;
DWORD DefaultProviderType = PROV_RSA_FULL;
DWORD DefaultProviderFlags = CRYPT_MACHINE_KEYSET | CRYPT_SILENT | CRYPT_NEWKEYSET;
printf("%d\n", CryptAcquireContext(&hCryptProvider, DefaultContainerName, DefaultProviderName, DefaultProviderType, DefaultProviderFlags));
return 0;
}
コンテナー名とプロバイダー名の値は、私が従うことになっている設計ドキュメントから取得されました。
これを実行して MMC の証明書スナップインを開いた後、指定された名前のストアが表示されないため、これがストアを作成する正しい方法であるかどうかわかりません。このプログラムは、最初の実行時に 1 を出力し、2 回目以降は 0 を出力します。
これは正しい方法ですか?はいの場合、MMC にストアが表示されないのはなぜですか? いいえの場合、C/C++ を使用して新しい証明書ストアを作成する正しい方法は何ですか?
コードに間違いがあれば遠慮なく指摘してください。