CryptDecodeMessage

暗号メッセージを復号・復号化・検証する。

CryptDecodeMessage dwMsgTypeFlags, pDecryptPara, pVerifyPara, dwSignerIndex, pbEncodedBlob, cbEncodedBlob, dwPrevInnerContentType, pdwMsgType, pdwInnerContentType, pbDecoded, pcbDecoded, ppXchgCert, ppSignerCert

dwMsgTypeFlags : [int] メッセージ種別を示す。メッセージ種別はビット単位 OR 演算子で組み合わせることができる。このパラメーターには次のメッセージ種別のいずれかを指定できる。
pDecryptPara : [var] 復号パラメーターを含む CRYPT_DECRYPT_MESSAGE_PARA 構造体へのポインター。
pVerifyPara : [var] 検証パラメーターを含む CRYPT_VERIFY_MESSAGE_PARA 構造体へのポインター。
dwSignerIndex : [int] メッセージに複数の署名者が存在する場合に、どの署名者を検証するかを示す。このインデックスを変えて関数を複数回呼び出すと、追加の署名者を検証できる。
pbEncodedBlob : [var] デコード対象のエンコード済み BLOB へのポインター。
cbEncodedBlob : [int] エンコードされた BLOB のサイズ (バイト単位)。
dwPrevInnerContentType : [int] 入れ子になった暗号化メッセージを処理する場合にのみ適用される。外側の暗号化メッセージを処理する際は 0 に設定する必要がある。入れ子となった暗号化メッセージをデコードする場合、外側メッセージに対する前回の CryptDecodeMessage 呼び出しで pdwInnerContentType に返された値を設定する。pdwMsgType に列挙された CMSG 型のいずれでもよい。後方互換性のため、dwPrevInnerContentType は 0 に設定する。
pdwMsgType : [var] 返されるメッセージ型を指定する DWORD へのポインタ。このパラメータには次のメッセージ型のいずれかを指定できる。
pdwInnerContentType : [var] 内側メッセージの型を指定する DWORD へのポインタ。pdwMsgType に使用されるメッセージ型コードがここでも使用される。
pbDecoded : [var] デコード済みメッセージを受け取るバッファーへのポインター。
pcbDecoded : [var] pbDecoded パラメーターが指すバッファーのサイズをバイト単位で指定する変数へのポインター。関数から戻ると、この変数にはデコード済みメッセージのサイズが格納される。
ppXchgCert : [var] メッセージを復号するために必要な秘密鍵交換鍵に対応する証明書を含む CERT_CONTEXT 構造体へのポインタのポインタ。このパラメータは、メッセージ型が CMSG_ENVELOPED および CMSG_SIGNED_AND_ENVELOPED の場合にのみ設定される。
ppSignerCert : [var] 署名者の証明書コンテキストを表す CERT_CONTEXT 構造体へのポインタのポインタ。このパラメータは、メッセージ型が CMSG_SIGNED および CMSG_SIGNED_AND_ENVELOPED の場合にのみ設定される。

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

解説

暗号メッセージを復号・復号化・検証する。

[戻り値]
関数が成功した場合、戻り値は 0 以外 (TRUE)。関数が失敗した場合は 0 (FALSE) を返す。拡張エラー情報を取得するには
GetLastError
を呼び出す。CryptDecryptMessageCryptVerifyMessageSignatureCryptVerifyMessageHash
の各関数のエラーがこの関数に伝播することがある。次のエラーコードが GetLastError 関数によって最も一般的に返される。
(以下省略)

[備考]
dwMsgTypeFlags パラメータは、許容されるメッセージの集合を指定する。たとえば SIGNED または ENVELOPED
メッセージのいずれかを復号する場合、dwMsgTypeFlags に CMSG_SIGNED_FLAG |
CMSG_ENVELOPED_FLAG を設定する。pDecryptPara または pVerifyPara
のいずれか、または両方を指定する必要がある。メッセージの復号または検証に成功すると、ppXchgCert および ppSignerCert
が指す証明書コンテキストポインタが更新される。これらは CertFreeCertificateContext
を呼び出して解放しなければならない。関数が失敗した場合、これらは NULL に設定される。ppXchgCert または
ppSignerCert の各パラメータは、関数呼び出し前に NULL
に設定することができ、これは呼び出し元が交換証明書や署名者証明書コンテキストの取得に関心がないことを示す。

情報

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