Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Duplicate Java Verify RSA SignatureDemonstrates how to duplicate a snippet of Java code that verifies an RSA signature.
IncludeFile "CkRsa.pb" IncludeFile "CkCert.pb" Procedure ChilkatExample() ; 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); ; } ; } base64DataToBeSigned.s = "Hlp...LE4=" base64Certificate.s = "MII...TlQ==" base64Signature.s = "I00...pZA==" cert.i = CkCert::ckCreate() If cert.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkCert::ckLoadFromBase64(cert,base64Certificate) If success = 0 Debug CkCert::ckLastErrorText(cert) CkCert::ckDispose(cert) ProcedureReturn EndIf rsa.i = CkRsa::ckCreate() If rsa.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkRsa::ckSetX509Cert(rsa,cert,0) If success = 0 Debug CkRsa::ckLastErrorText(rsa) CkCert::ckDispose(cert) CkRsa::ckDispose(rsa) ProcedureReturn EndIf CkRsa::setCkEncodingMode(rsa, "base64") success = CkRsa::ckVerifyStringENC(rsa,base64DataToBeSigned,"sha256",base64Signature) If success = 0 Debug CkRsa::ckLastErrorText(rsa) CkCert::ckDispose(cert) CkRsa::ckDispose(rsa) ProcedureReturn EndIf Debug "Signature verified." CkCert::ckDispose(cert) CkRsa::ckDispose(rsa) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.