CryptoSign は Cryptography データタイプに属します。
PKCS#7/CMS または PKCS1 標準に従い、X509 証明書を使用して公開鍵や秘密鍵によるデジタル署名を処理できます。
名前 |
説明 |
Sign(text:String [ ,detached:Boolean ] ):String |
入力したテキストで指定された証明書を使用して、署名アルゴリズムを適用した結果のテキストを返します。detached パラメーターは、署名のみが返されたか、署名がコンテンツと一緒に返されたかを示します。detached パラメーターは、PKCS7 形式が使用されている場合にのみ有効です。 |
Verify(signature:String,text:String [ ,detached:Boolean ] ):Boolean |
指定されたテキストおよび署名に対し、設定された証明書の情報を使用して、その署名がテキストと対応しているかどうかを検証します。detached パラメーターは、PKCS7 形式が使用されている場合にのみ有効です。 |
Certificate:CryptoCertificate |
テキストの署名時に使用される証明書を指定できます。 |
Algorithm:CryptoAlgorithmSign |
署名アルゴリズムを指定できます。既定の署名アルゴリズムは SHA1withRSA です。 |
ValidateCertificate:Boolean |
証明書の有効性が Verify メソッド内で検証される必要があるかどうかを指定します。 |
Standard:{PKCS7,PKCS1} |
使用される標準を指定できます。既定値は PKCS1 です。detached パラメーターは、PKCS7 形式が使用されている場合にのみ有効です。この場合、標準は PKCS7 として指定される必要があります。 |
次の例では、指定された .pfx 形式の証明書によって、テキストが SHA1withRSA ハッシュ署名アルゴリズムを使用して署名されます。
最初に証明書をロードします。ロードが正常に終了したら、テキストに署名するための秘密鍵を要求する必要があります。キーが存在する場合、署名のためのハッシュアルゴリズムが選択され、テキストの署名のための Sign メソッドが使用されます。
&errorCode = &CryptoCert.Load("my_keystore.pfx", &pwd) //&CryptoCert は CryptoCertificate タイプ
if &errorCode = 0
if (&CryptoCert.HasPrivateKey())
&CryptoSign.Algorithm = CryptoSignAlgorithm.SHA1withRSA //&CryptoSign は CryptoSign タイプ
//CryptoSignAlgorithm はサポートされている署名アルゴリズムを含む列挙型ドメイン
&CryptoSign.Certificate = &CryptoCert
&signedText = &CryptoSign.Sign(&textToSign, false)
if &CryptoSign.ErrCode <> 0
//エラー処理
endif
else
//エラー処理
endif
else
//エラー処理
endif
公開鍵を使用する証明書の場合、テキストの署名は次の例に示す方法で検証されます:
&errorCode = &CryptoCert.Load("MyPublicKey.cer")
if &errorCode = 0
&CryptoSign.Certificate = &CryptoCert //&CryptoSign は CryptoSign タイプ
&CryptoSign.ValidateCertificate = True //True は証明書が署名検証プロセスで検証されることを意味する
&CryptoSign.Algorithm = CryptoSignAlgorithm.SHA1withRSA
&isOK = &CryptoSign.Verify(&SignedText,&TextToSign,false)
if not &isOK
//エラー処理
else
//OK
endif
else
//エラー処理
endif
対応しているプラットフォーム: |
Web (.NET、Java) |
GeneXus Evolution v15 U10 以降では、SHA256withRSA が既定で使用されます。それより前のバージョンでは、SHA1withRSA が使用されます。
|