Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Use Certificate and Private Key PEM Files to Create a Digital SignatureDemonstrates how to load a digital certificate from a PEM file, load it's corresponding private key from a PEM file, save the private key to a key container (if necessary), link the certificate to the key container, and use it to create a digital signature.
LOCAL loCert LOCAL loPkey LOCAL lnSuccess LOCAL loContainer LOCAL lnNeedPrivateKeyAccess LOCAL lnMachineKeyset LOCAL lnIsKeyExchangePair LOCAL lnBForSigning LOCAL loCrypt loCert = CreateObject('Chilkat.Cert') * Load the cert from a PEM file; loCert.LoadFromFile("cert.pem") loPkey = CreateObject('Chilkat.PrivateKey') * Load the private key from an RSA PEM file: loPkey.LoadPemFile("pkey_rsa.pem") * If the "chilkat" key container does not already exist, * we'll create it and import the private key: loContainer = CreateObject('Chilkat.KeyContainer') lnNeedPrivateKeyAccess = 1 lnMachineKeyset = 0 IF (loContainer.OpenContainer("chilkat",lnNeedPrivateKeyAccess,lnMachineKeyset) = 0) THEN * We need to create the key container and import * the private key: lnSuccess = loContainer.CreateContainer("chilkat",lnMachineKeyset) IF (lnSuccess = 1) THEN lnIsKeyExchangePair = 0 lnSuccess = loContainer.ImportPrivateKey(loPkey,lnIsKeyExchangePair) IF (lnSuccess = 0) THEN ? "Failed to import private key into key container" QUIT ENDIF ELSE ? "Failed to create key container" QUIT ENDIF ENDIF * At this point, the key container contains the private key. * Link the certificate with the key container: lnBForSigning = 1 lnSuccess = loCert.LinkPrivateKey("chilkat",lnMachineKeyset,lnBForSigning) IF (lnSuccess = 0) THEN ? "Failed to link certificate with key container" QUIT ENDIF * Use Chilkat Crypt (a non-freeware component) to create * a digital signature using the certificate w/ private key: loCrypt = CreateObject('Chilkat.Crypt2') * Any string argument automatically begins the 30-day trial. lnSuccess = loCrypt.UnlockComponent("30-day trial") IF (lnSuccess <> 1) THEN =MESSAGEBOX("Crypt component unlock failed") QUIT ENDIF * Tell the crypt component to use this cert. loCrypt.SetSigningCert(loCert) * We can sign any type of file, creating a .p7s as output: lnSuccess = loCrypt.CreateP7S("license.rtf","license.p7s") IF (lnSuccess = 0) THEN =MESSAGEBOX(loCrypt.LastErrorText) RELEASE loCert QUIT ENDIF ? loCrypt.LastErrorText * Verify and restore the original file: loCrypt.SetVerifyCert(loCert) lnSuccess = loCrypt.VerifyP7S("license.rtf","license.p7s") IF (lnSuccess = 0) THEN =MESSAGEBOX(loCrypt.LastErrorText) RELEASE loCert QUIT ENDIF =MESSAGEBOX("Success!") * The Chilkat Certificate, Certificate Store, Private Key, * Public Key, and Key Container classes / objects are freeware. * They are used by and included with the Chilkat Email, * Crypt, S/MIME, and other commercial Chilkat components. |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2007 Chilkat Software, Inc. All Rights Reserved.
Mail Component · .NET Email Component · ASP Mail Component · XML Parser