Description
Verifies the signature of the data with asymmetric algorithm.
Applies to
CrypterObject objects
Syntax
crypter.AsymmetricVerifySign ( algorithm, variable, pubKey, sign)
|
Argument |
Description |
|---|---|
|
crypter |
The name of the CrypterObject object |
|
algorithm |
A value of the AsymmetricAlgorithm enumerated type that specifies the type of asymmetric algorithm. Values are:
|
|
variable |
A blob whose value is the data you want to verify with Public-Key cipher. When using the system blob function to convert a string to a blob, it is recommended to specify its encoding argument to be EncodingANSI! (for English characters only) or EncodingUTF8!, otherwise, the default EncodingUTF16LE! will be used. |
|
pubKey |
A blob specifying the public key. |
|
sign |
A blob specifying the signature. |
Return value
Integer. Returns 1 if it succeeds and -1 if it failed. If any argument's value is null, the method returns null. If an error occurs, throw the exception.
Usage
The asymmetric encryption and signature verification functions in
the CrypterObject are based on Crypto++, and their key format differs from
common standards (e.g., OpenSSL, .NET). As a result, functions such as
AsymmetricVerifySign cannot be used for validating tokens or
digital signatures generated outside PowerBuilder.
If you require token validation or cross-platform interoperability, we recommend either:
-
Performing the validation on the authorization server, or
-
Using PowerBuilder's Call .NET Assembly feature to execute .NET cryptographic code
Examples
This statement signs the data with RAS and validates the signature.
Blob lblb_data
Blob lblb_privKey
Blob lblb_pubKey
Blob lblb_signature
Integer li_isPass
lblb_data = Blob("Test Rsa", EncodingANSI!)
CrypterObject lnv_CrypterObject
lnv_CrypterObject = Create CrypterObject
// Generate the private key
lnv_CrypterObject.AsymmetricGenerateKey(RSA!, 1024, lblb_privKey, lblb_pubKey)
// Sign data with RSA
lblb_signature = lnv_CrypterObject.AsymmetricSign(RSA!, lblb_data, lblb_privKey)
// Validate the RSA signature
li_isPass = lnv_CrypterObject.AsymmetricVerifySign(RSA!, lblb_data, lblb_pubKey, lblb_signature)
if li_isPass = 1 then
messagebox("Success", "Verification succeeded!")
else
messagebox("Error", "Verification failed!")
end if
See also


