DataFlex
DataFlex
Duplicate Java Verify RSA Signature
See more RSA Examples
Demonstrates how to duplicate a snippet of Java code that verifies an RSA signature.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
String sBase64DataToBeSigned
String sBase64Certificate
String sBase64Signature
Variant vCert
Handle hoCert
Handle hoRsa
String sTemp1
Move False To iSuccess
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// This example duplicates the following Java code:
// import com.sun.org.apache.xml.internal.security.utils.Base64;
// import java.io.ByteArrayInputStream;
// import java.security.PublicKey;
// import java.security.Signature;
// import java.security.cert.CertificateFactory;
// import java.security.cert.X509Certificate;
// public class validateSazetak {
// public static void main(String[] args) {
// String signatureAlgorithm = "SHA256withRSA";
// String base64DataToBeSigned = "Hlp...LE4=";
// String base64Certificate = "MII...TlQ==";
// String base64Signature = "I00...pZA==";
// try {
// CertificateFactory cf;
// X509Certificate certificate = null;
// cf = CertificateFactory.getInstance("X.509");
// certificate = (X509Certificate) cf.generateCertificate(new
// ByteArrayInputStream(Base64.decode(base64Certificate)));
//
// Signature signature = Signature.getInstance(signatureAlgorithm, "SunRsaSign");
// PublicKey pk = (PublicKey) certificate.getPublicKey();
// signature.initVerify(pk);
//
// byte[] hashBytes = Base64.decode(base64DataToBeSigned);
// signature.update(hashBytes);
//
// byte[] sigBytes = Base64.decode(base64Signature);
// boolean validity = signature.verify(sigBytes);
// System.out.println("Is valid signature:" + validity);
// } catch (Exception e) {
// System.out.println(e);
// }
// }
Move "Hlp...LE4=" To sBase64DataToBeSigned
Move "MII...TlQ==" To sBase64Certificate
Move "I00...pZA==" To sBase64Signature
Get Create (RefClass(cComChilkatCert)) To hoCert
If (Not(IsComObjectCreated(hoCert))) Begin
Send CreateComObject of hoCert
End
Get ComLoadFromBase64 Of hoCert sBase64Certificate To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCert To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatRsa)) To hoRsa
If (Not(IsComObjectCreated(hoRsa))) Begin
Send CreateComObject of hoRsa
End
Get pvComObject of hoCert to vCert
Get ComSetX509Cert Of hoRsa vCert False To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoRsa To sTemp1
Showln sTemp1
Procedure_Return
End
Set ComEncodingMode Of hoRsa To "base64"
Get ComVerifyStringENC Of hoRsa sBase64DataToBeSigned "sha256" sBase64Signature To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoRsa To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "Signature verified."
End_Procedure