リファレンス > 関数リファレンス > オブジェクト関数 > CryptVerifySignature
 

CryptVerifySignature

デジタル署名がこのデータに対して有効かどうかを検証します。

構文 

CryptVerifySignature (データ ; アルゴリズム ; パブリック RSA キー ; 署名)

引数 

データ - 署名に対して検証するデータを表すテキスト式

アルゴリズム - 使用する暗号化アルゴリズムの名前 (CryptAuthCode 関数を参照)

パブリック RSA キー - 署名の生成に使用されたプライベートキーに対応する PEM 形式の PKCS #1 RSA パブリックキーを表すテキスト

署名 - CryptGenerateSignature 関数によって返される値などのデータに対して検証するバイナリ RSA 署名

戻り値のデータタイプ 

数字

起点 

FileMaker Pro 18.0 Advanced

説明 

この関数では、署名を検証するため、データのメッセージダイジェストと、パブリック RSA キーを使用して署名を復号することで取得したダイジェストを (指定されたアルゴリズムを使用して) 比較します。

RSA パブリックキーは次の形式にする必要があります:

-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqqDiwrPQwVaJzOzfFVBd
...
egkXva5cYBb8PNifmlPXVb8CAwEAAQ==
-----END PUBLIC KEY-----

署名がデータに対して有効な場合、この関数は「1」(真) を返します。署名が無効な場合は、「0」(偽) を返します。引数のいずれかが無効な場合は、「?」を返します。

メモ 

この関数は Runtime ソリューションではサポートされず「?」を返します。

例 1 

SHA-512 アルゴリズムを使用して「Table::SignedText」のダイジェストを生成します。「Table::Signature」テキストフィールドに保存された署名を Base64 でデコードし、それをオブジェクトデータとして返します。「Table::PublicRSAKey」フィールド内の値を使用して署名を復号し、その署名ダイジェストと「Table::SignedText」フィールドに基づくダイジェストを比較します。署名が有効な場合は、「1」を返します。

CryptVerifySignature (
Table::SignedText ; "SHA512" ; Table::PublicRSAKey ;
Base64Decode (
Table::Signature ; "sig.data"
)
)

関連項目 

関数リファレンス (種類順)

関数リファレンス (名前順)

計算式について

関数について

計算フィールドの定義

計算式での演算子の使い方