CryptVerifySignature
デジタル署名がこのデータに対して有効かどうかを検証します。
構文
CryptVerifySignature (データ ; アルゴリズム ; パブリック RSA キー ; 署名)
引数
データ
- 署名
に対して検証するデータを表すテキスト式
アルゴリズム
- 使用する暗号化アルゴリズムの名前 (CryptAuthCode 関数を参照)
パブリック RSA キー
- 署名
の生成に使用されたプライベートキーに対応する PEM 形式の PKCS #1 RSA パブリックキーを表すテキスト
署名
- CryptGenerateSignature 関数 によって返される値などのデータ
に対して検証するバイナリ RSA 署名
戻り値のデータタイプ
数字
起点バージョン
18.0
説明
この関数では、署名を検証するため、データ
のメッセージダイジェストと、パブリック RSA キー
を使用して署名
を復号することで取得したダイジェストを (指定されたアルゴリズムを使用して) 比較します。
RSA パブリックキーは次の形式にする必要があります:
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqqDiwrPQwVaJzOzfFVBd
...
egkXva5cYBb8PNifmlPXVb8CAwEAAQ==
-----END PUBLIC KEY-----
署名がデータに対して有効な場合、この関数は「1」(真) を返します。署名が無効な場合は、「0」(偽) を返します。引数のいずれかが無効な場合は、「?」を返します。
例 1
SHA-512 アルゴリズムを使用して「Table::SignedText」のダイジェストを生成します。「Table::Signature」テキストフィールドに保存された署名を Base64 でデコードし、それをオブジェクトデータとして返します。「Table::PublicRSAKey」フィールド内の値を使用して署名を復号し、その署名ダイジェストと「Table::SignedText」フィールドに基づくダイジェストを比較します。署名が有効な場合は、「1」を返します。
CryptVerifySignature (
Table::SignedText ; "SHA512" ; Table::PublicRSAKey ;
Base64Decode (
Table::Signature ; "sig.data"
)
)