Visual FoxPro
Visual FoxPro
Duplicate Java Verify RSA Signature
See more RSA Examples
Demonstrates how to duplicate a snippet of Java code that verifies an RSA signature.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL lcBase64DataToBeSigned
LOCAL lcBase64Certificate
LOCAL lcBase64Signature
LOCAL loCert
LOCAL loRsa
lnSuccess = 0
* 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);
* }
* }
lcBase64DataToBeSigned = "Hlp...LE4="
lcBase64Certificate = "MII...TlQ=="
lcBase64Signature = "I00...pZA=="
loCert = CreateObject('Chilkat.Cert')
lnSuccess = loCert.LoadFromBase64(lcBase64Certificate)
IF (lnSuccess = 0) THEN
? loCert.LastErrorText
RELEASE loCert
CANCEL
ENDIF
loRsa = CreateObject('Chilkat.Rsa')
lnSuccess = loRsa.SetX509Cert(loCert,0)
IF (lnSuccess = 0) THEN
? loRsa.LastErrorText
RELEASE loCert
RELEASE loRsa
CANCEL
ENDIF
loRsa.EncodingMode = "base64"
lnSuccess = loRsa.VerifyStringENC(lcBase64DataToBeSigned,"sha256",lcBase64Signature)
IF (lnSuccess = 0) THEN
? loRsa.LastErrorText
RELEASE loCert
RELEASE loRsa
CANCEL
ENDIF
? "Signature verified."
RELEASE loCert
RELEASE loRsa