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 
    )
)