Lianja
Lianja
RSA Signature/Verify with .key and .cer
See more RSA Examples
Demonstrates how to use a .key file (private key) and digital certificate (.cer, public key) to create and verify an RSA signature.Chilkat Lianja Downloads
llSuccess = .F.
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loPrivKey = createobject("CkPrivateKey")
// Load the private key from an RSA .key file:
llSuccess = loPrivKey.LoadPemFile("privateKey.key")
if (llSuccess = .F.) then
? loPrivKey.LastErrorText
release loPrivKey
return
endif
loRsa = createobject("CkRsa")
// Import the private key into the RSA component:
llSuccess = loRsa.UsePrivateKey(loPrivKey)
if (llSuccess = .F.) then
? loRsa.LastErrorText
release loPrivKey
release loRsa
return
endif
// Create the signature as a hex string:
loRsa.EncodingMode = "hex"
lcStrData = "This is the string to be signed."
// Sign the string using the sha256 hash algorithm.
// Other valid choices are "md2", "sha1", "sha384",
// "sha512", and "md5".
lcHexSig = loRsa.SignStringENC(lcStrData,"sha256")
? lcHexSig
// Load a digital certificate from a .cer file:
loCert = createobject("CkCert")
llSuccess = loCert.LoadFromFile("myCert.cer")
if (llSuccess = .F.) then
? loCert.LastErrorText
release loPrivKey
release loRsa
release loCert
return
endif
loPubKey = createobject("CkPublicKey")
loCert.GetPublicKey(loPubKey)
// Now verify using a new instance of the RSA object:
loRsa2 = createobject("CkRsa")
// Import the public key into the RSA object:
llSuccess = loRsa2.UsePublicKey(loPubKey)
if (llSuccess = .F.) then
? loRsa2.LastErrorText
release loPrivKey
release loRsa
release loCert
release loPubKey
release loRsa2
return
endif
// The signature is a hex string, so make sure the EncodingMode is correct:
loRsa2.EncodingMode = "hex"
// Verify the signature:
llSuccess = loRsa2.VerifyStringENC(lcStrData,"sha256",lcHexSig)
if (llSuccess = .F.) then
? loRsa2.LastErrorText
release loPrivKey
release loRsa
release loCert
release loPubKey
release loRsa2
return
endif
? "Success."
release loPrivKey
release loRsa
release loCert
release loPubKey
release loRsa2