CryptGenerateSignature
データのデジタル署名を生成します。
構文
CryptGenerateSignature (データ ; アルゴリズム ; プライベート RSA キー ; キーパスワード)
引数
データ
- 署名を生成する任意のテキスト式
アルゴリズム
- 使用する暗号化アルゴリズムの名前 (CryptAuthCode 関数を参照)
プライベート RSA キー
- RSA プライベートキーを表すテキスト。オプションでキーを暗号化できる場合があります。
キーパスワード
- プライベート RSA キー
を復号するためのパスワード。プライベート RSA キー
が暗号化されていない場合、この引数は無視されます。
戻り値のデータタイプ
オブジェクト
起点バージョン
18.0
説明
この関数では、署名を生成するため、最初に指定されたアルゴリズムを使用してデータ
引数のメッセージダイジェストを計算します。その後でプライベート RSA キー
引数を使用してダイジェストを暗号化します。プライベートキー自体が暗号化されている場合は、最後の引数キーパスワード
としてパスワードを指定する必要があります。
暗号化されていない RSA プライベートキーは次の形式にする必要があります:
-----BEGIN RSA PRIVATE KEY-----
MIIJKQIBAAKCAgEAqqDiwrPQwVaJzOzfFVBdhNjRNRxghZVQ9a3S88so8piw0uRt
...
A4jh5ffbGA6rlv1kEt1Inq2XDnKASjnWQGltDWWTJFs/XBcfoFXHpYiVINmp
-----END RSA PRIVATE KEY-----
暗号化された RSA プライベートキーは次の形式にする必要があります:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,B2EFE673714F681D
gMvo1cn1+Sjch4cPXT/Mty0pILnsbM5SsBPadRJJQtrGrM8LkkrRNdxYRBeIGUMj
...
lHGJJBHogUW4Ig3/kd4ROVHusRYLtyyfz13A96tIl6Y7lu2L7alNWQ==
-----END RSA PRIVATE KEY-----
RSA キーペアを生成するには、OpenSSL ツールキットを使用できます。www.openssl.org を参照してください。
この関数はデータ
のバイナリ署名をオブジェクトデータとして返し、引数のいずれかが無効の場合は「?」を返します。オブジェクトデータは、Base64EncodeRFC 関数または HexEncode 関数を使用してテキストに変換できます。
例 1
暗号化されたプライベートキーとともに SHA-512 アルゴリズムを使用して「Table::TextToSign」テキストフィールド内のデータに署名します。署名は Base64 エンコードテキストとして返されます。
Base64EncodeRFC (4648 ;
CryptGenerateSignature (
Table::TextToSign ; "SHA512" ; Table::PrivateRSAKey ; $Password
)
)