NCryptEncryptFn
コールバックシグネチャ
HRESULT NCryptEncryptFn(
NCRYPT_PROV_HANDLE hProvider,
NCRYPT_KEY_HANDLE hKey,
BYTE* pbInput,
DWORD cbInput,
void* pPaddingInfo,
BYTE* pbOutput,
DWORD cbOutput,
DWORD* pcbResult,
DWORD dwFlags
);パラメーター
| フィールド | 型 | 説明 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hProvider | NCRYPT_PROV_HANDLE | |||||||||||
| hKey | NCRYPT_KEY_HANDLE | データの暗号化に使用するキーのハンドルです。 | ||||||||||
| pbInput | BYTE* | 暗号化するデータが格納されているバッファーのアドレスです。cbInput パラメーターには、暗号化するデータのサイズを指定します。詳細については、「解説」を参照してください。 | ||||||||||
| cbInput | DWORD | pbInput バッファー内で暗号化するデータのバイト数です。 | ||||||||||
| pPaddingInfo | void* | パディング情報を格納した構造体へのポインターです。このパラメーターが指す構造体の実際の型は、dwFlags パラメーターの値によって異なります。このパラメーターは非対称キーの場合にのみ使用され、それ以外の場合は NULL を指定する必要があります。 | ||||||||||
| pbOutput | BYTE* | この関数が生成した暗号化済みデータを受け取るバッファーのアドレスです。cbOutput パラメーターには、このバッファーのサイズを指定します。詳細については、「解説」を参照してください。 このパラメーターが NULL の場合、この関数は暗号化済みデータに必要なサイズを計算し、そのサイズを pcbResult パラメーターが指す場所に返します。 | ||||||||||
| cbOutput | DWORD | pbOutput バッファーのサイズ (バイト単位) です。pbOutput パラメーターが NULL の場合、このパラメーターは無視されます。 | ||||||||||
| pcbResult | DWORD* | pbOutput バッファーにコピーされたバイト数を受け取る DWORD 変数へのポインターです。pbOutput が NULL の場合は、暗号文に必要なサイズ (バイト単位) を受け取ります。 | ||||||||||
| dwFlags | DWORD | 関数の動作を変更するフラグです。指定できるフラグの組み合わせは、hKey パラメーターで指定したキーの種類によって異なります。 キーが非対称キーの場合は、次の値のいずれかを指定できます。
|
公式ドキュメント
NCryptEncrypt 関数は、データのブロックを暗号化します。
戻り値
関数の成功または失敗を示すステータスコードを返します。
返される可能性のあるコードには、次のものが含まれます (これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| 関数は成功しました。 | |
| dwFlags パラメーターに無効な値が含まれています。 | |
| hKey パラメーターで指定されたキーが完成していないか、不完全です。 | |
| cbOutput パラメーターで指定されたサイズでは、暗号化済みデータを格納するのに十分ではありません。 | |
| hKey パラメーターが無効です。 | |
| 1 つ以上のパラメーターが無効です。 |
解説(Remarks)
pbInput パラメーターと pbOutput パラメーターは、同じバッファーを指すことができます。この場合、この関数は暗号化をその場で (in place) 実行します。暗号化済みデータのサイズが暗号化前のデータのサイズより大きくなる可能性があるため、バッファーは暗号化済みデータを格納できる十分な大きさが必要です。
サービスは、StartService 関数からこの関数を呼び出してはなりません。サービスが StartService 関数からこの関数を呼び出すと、デッドロックが発生し、サービスが応答しなくなる可能性があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)