CryptEncryptMessage 関数 (wincrypt.h)

CryptEncryptMessage 関数は、メッセージを暗号化およびエンコードします

構文

BOOL CryptEncryptMessage(
  [in]      PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara,
  [in]      DWORD                       cRecipientCert,
  [in]      PCCERT_CONTEXT []           rgpRecipientCert,
  [in]      const BYTE                  *pbToBeEncrypted,
  [in]      DWORD                       cbToBeEncrypted,
  [out]     BYTE                        *pbEncryptedBlob,
  [in, out] DWORD                       *pcbEncryptedBlob
);

パラメーター

[in] pEncryptPara

暗号化パラメーターを含む CRYPT_ENCRYPT_MESSAGE_PARA 構造体へのポインター。

CryptEncryptMessage 関数は、SHA2 OID、szOID_DH_SINGLE_PASS_STDDH_SHA256_KDFszOID_DH_SINGLE_PASS_STDDH_SHA384_KDFをサポートしていません。

[in] cRecipientCert

rgpRecipientCert 配列内の要素の数。

[in] rgpRecipientCert

メッセージの目的の受信者の証明書を含む CERT_CONTEXT 構造体へのポインターの配列。

[in] pbToBeEncrypted

暗号化されるメッセージを含むバッファーへのポインター。

[in] cbToBeEncrypted

暗号化されるメッセージのサイズ (バイト単位)。

[out] pbEncryptedBlob

暗号化およびエンコードされたメッセージを受信するバッファーを含む BLOB へのポインター。

メモリ割り当てのためにこの情報のサイズを設定するには、このパラメーターを NULL にすることができます。 詳細については、「 不明な長さのデータの取得」を参照してください。

[in, out] pcbEncryptedBlob

pbEncryptedBlob パラメーターによって指されるバッファーのサイズをバイト単位で指定する DWORD へのポインター。 関数が戻るときに、この変数には 、pbEncryptedBlob にコピーされた暗号化およびエンコードされたメッセージのサイズ (バイト単位) が含まれます。

メモpbEncryptedBlob のバッファーで返されるデータを処理する場合、アプリケーションは返されるデータの実際のサイズを使用する必要があります。 実際のサイズは、入力時に指定されたバッファーのサイズより少し小さくすることができます。 (入力では、バッファー サイズは通常、バッファーに収まる最大の出力データを確保するのに十分な大きさで指定されます)。出力時に、このパラメーターが指す変数は、バッファーにコピーされたデータの実際のサイズを反映するように更新されます。
 

戻り値

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

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

メモCryptGenKeyCryptEncryptCryptImportKey、および CryptExportKey の呼び出しからのエラーは、この関数に反映できます。
 
GetLastError 関数は、最も頻繁に次のエラー コードを返します。
リターン コード 説明
ERROR_MORE_DATA
pbEncryptedBlob パラメーターで指定されたバッファーが、返されたデータを保持するのに十分な大きさでない場合、関数はERROR_MORE_DATA コードを設定し、必要なバッファー サイズをバイト単位で pcbEncryptedBlob が指す変数に格納します。
E_INVALIDARG
メッセージ エンコードの種類が無効です。 現在、PKCS_7_ASN_ENCODINGのみがサポートされています。 *pEncryptParacbSize が無効です。
 

関数が失敗した場合、GetLastError は抽象構文表記 1 (ASN.1) エンコード/デコード エラーを返す可能性があります。 これらのエラーの詳細については、「 ASN.1 の戻り値のエンコード/デコード」を参照してください

要件

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

こちらもご覧ください

簡略化されたメッセージ関数