Lua
Lua
Duplicate Java Verify RSA Signature
See more RSA Examples
Demonstrates how to duplicate a snippet of Java code that verifies an RSA signature.Chilkat Lua Downloads
local chilkat = require("chilkat")
-- 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);
-- }
-- }
local base64DataToBeSigned = "Hlp...LE4="
local base64Certificate = "MII...TlQ=="
local base64Signature = "I00...pZA=="
local cert = chilkat.Cert.new()
local success = cert:load_from_base64(base64Certificate)
if not success then
print(cert.last_error_text)
return
end
local rsa = chilkat.Rsa.new()
success = rsa:set_x509_cert(cert, false)
if not success then
print(rsa.last_error_text)
return
end
rsa.encoding_mode = "base64"
success = rsa:verify_string_enc(base64DataToBeSigned, "sha256", base64Signature)
if not success then
print(rsa.last_error_text)
return
end
print("Signature verified.")