CertCreateSelfSignCertificate

自己署名証明書を構築し、その証明書を表す CERT_CONTEXT 構造体へのポインターを返す。

CertCreateSelfSignCertificate hCryptProvOrNCryptKey, pSubjectIssuerBlob, dwFlags, pKeyProvInfo, pSignatureAlgorithm, pStartTime, pEndTime, pExtensions

hCryptProvOrNCryptKey : [int] 作成する証明書の署名に使用する暗号化プロバイダーのハンドル。NULL の場合、必要なハンドルを取得するために pKeyProvInfo パラメーターの情報が使用される。pKeyProvInfo も NULL の場合、既定のプロバイダー種別である PROV_RSA_FULL、既定のキー仕様である AT_SIGNATURE、および一意なコンテナー名で新しく作成したキーコンテナーが使用される。このハンドルは、CryptAcquireContext 関数で作成された HCRYPTPROV ハンドル、または NCryptOpenKey 関数で作成された NCRYPT_KEY_HANDLE ハンドルでなければならない。新しいアプリケーションでは、必ず CNG CSP の NCRYPT_KEY_HANDLE ハンドルを渡すべきである。
pSubjectIssuerBlob : [var] 証明書サブジェクトの識別名 (DN) を含む BLOB へのポインター。このパラメーターは NULL にできない。最低限でも、空の DN へのポインターを指定する必要がある。この BLOB は通常 CertStrToName 関数を使用して作成する。CryptEncodeObject 関数を使用し、StructType として X509_NAME または X509_UNICODE_NAME を指定して作成することもできる。
dwFlags : [int] 
pKeyProvInfo : [var] CRYPT_KEY_PROV_INFO 構造体へのポインター。証明書を作成する前に、CSP に対してキープロバイダー、キープロバイダー種別、およびキーコンテナー名が問い合わされる。問い合わせた CSP がこれらの問い合わせをサポートしていない場合、本関数は失敗する。既定のプロバイダーがこれらの問い合わせをサポートしていない場合は、pKeyProvInfo 値を指定する必要がある。RSA BASE はこれらの問い合わせをサポートする。pKeyProvInfo パラメーターが NULL でない場合、対応する値が、生成された証明書の CERT_KEY_PROV_INFO_PROP_ID 値に設定される。指定する構造体のすべてのパラメーターが正しく設定されていることを確認しなければならない。
pSignatureAlgorithm : [var] CRYPT_ALGORITHM_IDENTIFIER 構造体へのポインター。NULL の場合、既定のアルゴリズムである SHA1RSA が使用される。
pStartTime : [var] SYSTEMTIME 構造体へのポインター。NULL の場合、既定ではシステムの現在時刻が使用される。
pEndTime : [var] SYSTEMTIME 構造体へのポインター。NULL の場合、既定では pStartTime 値に 1 年を加えた値が使用される。
pExtensions : [var] CERT_EXTENSION 構造体の CERT_EXTENSIONS 配列へのポインター。既定では配列は空。別名のサブジェクト名が必要であれば、これらの拡張の 1 つとして指定できる。

(プラグイン / モジュール : crypt32.dll)

解説

自己署名証明書を構築し、その証明書を表す CERT_CONTEXT 構造体へのポインターを返す。

[戻り値]
関数が成功した場合、作成された証明書を指す PCCERT_CONTEXT 変数が返される。関数が失敗した場合は NULL
を返す。拡張エラー情報は GetLastError を呼び出して取得する。

[備考]
pEndTime は有効な日付でなければならず、ユーザーが指定しない場合は自動生成されるため、この API
をうるう日に呼び出すと、補正するアプリケーションロジックが伴わないと予期しない失敗を簡単に引き起こす可能性がある。詳しくは leap
year readiness
(https://techcommunity.microsoft.com/t5/azure-developer-community-blog/it-s-2020-is-your-code-ready-for-leap-day/ba-p/1157279)
を参照。

情報

プラグイン / モジュールcrypt32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の crypt32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_crypt32_gen2.hs