Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
|
RSA Signature/Verify with .key and .cerDemonstrates how to use a .key file (private key) and digital certificate (.cer, public key) to create and verify an RSA signature.
LOCAL loPrivKey LOCAL lnSuccess LOCAL lcPrivKeyXml LOCAL loRsa LOCAL lcStrData LOCAL lcHexSig LOCAL loCert LOCAL loPubKey LOCAL loRsa2 loPrivKey = CreateObject('Chilkat.PrivateKey') * Load the private key from an RSA .key file: lnSuccess = loPrivKey.LoadPemFile("privateKey.key") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loPrivKey.LastErrorText) QUIT ENDIF * Get the private key in XML format: lcPrivKeyXml = loPrivKey.GetXml() loRsa = CreateObject('Chilkat.Rsa') * Any string argument automatically begins the 30-day trial. lnSuccess = loRsa.UnlockComponent("30-day trial") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loRsa.LastErrorText) QUIT ENDIF * Import the private key into the RSA component: lnSuccess = loRsa.ImportPrivateKey(lcPrivKeyXml) IF (lnSuccess <> 1) THEN =MESSAGEBOX(loRsa.LastErrorText) QUIT ENDIF * Create the signature as a hex string: loRsa.EncodingMode = "hex" * If some other non-Chilkat application or web service is going to be verifying * the signature, it is important to match the byte-ordering. * The LittleEndian property may be set to 1 * for little-endian byte ordering, * or 0 for big-endian byte ordering. * Microsoft apps typically use little-endian, while * OpenSSL and other services (such as Amazon CloudFront) * use big-endian. loRsa.LittleEndian = 0 lcStrData = "This is the string to be signed." * Sign the string using the sha-1 hash algorithm. * Other valid choices are "md2", "sha256", "sha384", * "sha512", and "md5". lcHexSig = loRsa.SignStringENC(lcStrData,"sha-1") ? lcHexSig * Load a digital certificate from a .cer file: loCert = CreateObject('Chilkat.Cert') lnSuccess = loCert.LoadFromFile("myCert.cer") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loCert.LastErrorText) QUIT ENDIF loPubKey = loCert.ExportPublicKey() * Now verify using a separate instance of the RSA object: loRsa2 = CreateObject('Chilkat.Rsa') * Import the public key into the RSA object: lnSuccess = loRsa2.ImportPublicKey(loPubKey.GetXml()) IF (lnSuccess <> 1) THEN =MESSAGEBOX(loRsa2.LastErrorText) QUIT ENDIF RELEASE loPubKey * The signature is a hex string, so make sure the EncodingMode is correct: loRsa2.EncodingMode = "hex" * Verify the signature: lnSuccess = loRsa2.VerifyStringENC(lcStrData,"sha-1",lcHexSig) IF (lnSuccess <> 1) THEN =MESSAGEBOX(loRsa2.LastErrorText) QUIT ENDIF =MESSAGEBOX("Success.") |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.
Mail Component · .NET Email Component · ASP Mail Component · XML Parser