CertGetIssuerCertificateFromStore

指定したサブジェクト証明書の最初または次の発行者について、証明書ストアから証明書コンテキストを取得する。本関数よりも新しい「証明書チェーン検証関数」の使用を推奨する。

CertGetIssuerCertificateFromStore hCertStore, pSubjectContext, pPrevIssuerContext, pdwFlags

hCertStore : [int] 証明書ストアのハンドル。
pSubjectContext : [var] サブジェクト情報を含む CERT_CONTEXT 構造体へのポインター。このパラメーターは任意の証明書ストアから取得することも、呼び出し側アプリケーションが CertCreateCertificateContext 関数で作成することもできる。
pPrevIssuerContext : [var] 発行者情報を含む CERT_CONTEXT 構造体へのポインター。特に有効期間が切り替わる時期には、発行者が複数の証明書を持つことがある。最初の発行者証明書を取得する呼び出しではこのパラメーターは NULL でなければならない。同じ発行者の次の証明書を取得するには、pPrevIssuerContext に前回の呼び出しで返された CERT_CONTEXT 構造体を設定する。このパラメーターが NULL でない値の CERT_CONTEXT は、本関数によって解放される。
pdwFlags : [var] 以下のフラグにより、返される証明書に対する検証チェックを有効化できる。ビット単位 OR で組み合わせて複数の検証を有効化できる。

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

解説

指定したサブジェクト証明書の最初または次の発行者について、証明書ストアから証明書コンテキストを取得する。本関数よりも新しい「証明書チェーン検証関数」の使用を推奨する。

[戻り値]
関数が成功した場合、戻り値は読み取り専用の発行者 CERT_CONTEXT
へのポインターとなる。関数が失敗し、最初または次の発行者証明書が見つからない場合は、戻り値は NULL
となる。CertFreeCertificateContext を呼び出して解放する必要があるのは最後に返された CERT_CONTEXT
構造体のみである。ある呼び出しで返された CERT_CONTEXT を後続呼び出しで pPrevIssuerContext
として渡した場合、そのコンテキストは関数の動作の一部として解放される。拡張エラー情報を取得するには GetLastError
を呼び出す。考えられるエラーコードを以下に示す。
(以下省略)

[備考]
返されるポインターは、後続呼び出しで pPrevIssuerContext
として渡された時点で解放される。それ以外の場合、CertFreeCertificateContext
を呼び出して明示的に解放しなければならない。関数内でエラーが発生した場合であっても、NULL 以外の pPrevIssuerContext
は常に CertGetIssuerCertificateFromStoreCertFreeCertificateContext
を呼び出して解放する。
CertDuplicateCertificateContext を呼び出すと発行者証明書の複製を作成できる。dwFlags の 16
進値はビット単位 OR で組み合わせて複数の検証を有効化できる。例えば署名と時刻有効性の両方を有効にするには、入力時に dwFlags に
0x00000003 を渡す。この場合、CERT_STORE_SIGNATURE_FLAG 検証が成功し
CERT_STORE_TIME_VALIDITY_FLAG 検証が失敗すると、出力時の dwFlags は 0x00000002 となる。

情報

プラグイン / モジュール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