Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) Encrypt File to PKCS7 .p7mVisual FoxPro example to public-key encrypt a file creating a PKCS#7 .p7m file as output. Also demonstrates how to decrypt the .p7m to recover the original file.
LOCAL loCrypt LOCAL loEncryptCert LOCAL lnSuccess LOCAL lcInFile LOCAL lcOutFile LOCAL loDecrypt LOCAL lcPfxFilename LOCAL lcPfxPassword * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Crypt2') loCrypt = CreateObject('Chilkat.Crypt2') * Indicate the public-key encryption is to be used. * Do this by setting the encryption algorithm equal * to "PKI" (an acroynm for public-key infrastructure). loCrypt.CryptAlgorithm = "PKI" * Indicate the inner symmetric encryption algorithm to be used. * possible values are "aes", "des", "3des", and "rc2". * For this example, we'll use 256-bit AES encryption. loCrypt.Pkcs7CryptAlg = "aes" loCrypt.KeyLength = 256 * To encrypt, only a certificate w/ public key is needed. * (The certificate w/ private key is required for decryption.) * The LoadFromFile method can load virtually any certificate format: * 1. DER encoded binary X.509 (.CER) * 2. Base-64 encoded X.509 (.CER) * 3. Cryptographic Message Syntax Standard - PKCS #7 Certificates (.P7B) * 4. PEM format * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Cert') loEncryptCert = CreateObject('Chilkat.Cert') lnSuccess = loEncryptCert.LoadFromFile("/Users/chilkat/testData/cer/acme.cer") IF (lnSuccess <> 1) THEN ? loEncryptCert.LastErrorText RELEASE loCrypt RELEASE loEncryptCert CANCEL ENDIF * Tell the crypt object to use the certificate for encrypting: loCrypt.AddEncryptCert(loEncryptCert) * Encrypt a file, producing a .p7m as output. * The input file is unchanged, the output .p7m contains the encrypted * contents of the input file. lcInFile = "/Users/chilkat/testData/pdf/sample.pdf" lcOutFile = "/Users/chilkat/testData/p7m/sample.pdf.p7m" lnSuccess = loCrypt.CkEncryptFile(lcInFile,lcOutFile) IF (lnSuccess <> 1) THEN ? loCrypt.LastErrorText RELEASE loCrypt RELEASE loEncryptCert CANCEL ENDIF * For demonstration purposes, a different instance of the object will be used * for decryption. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Crypt2') loDecrypt = CreateObject('Chilkat.Crypt2') * To decrypt, the certificate w/ private key is required. A PFX (also known * as PKCS#12) is a common secure container for certs and private keys. lcPfxFilename = "/Users/chilkat/testData/pfx/acme.pfx" lcPfxPassword = "secret" * Tell the component to look in the PFX file for certs and private keys. lnSuccess = loDecrypt.AddPfxSourceFile(lcPfxFilename,lcPfxPassword) IF (lnSuccess <> 1) THEN ? loDecrypt.LastErrorText RELEASE loCrypt RELEASE loEncryptCert RELEASE loDecrypt CANCEL ENDIF * Tell the decrypt object that PKI (public key encryption) is to be used * for decryptiong. loDecrypt.CryptAlgorithm = "PKI" * There is no need to set the Pkcs7Alg or KeyLength because this information * is contained within the .p7m * Decrypt the .p7m lcInFile = "/Users/chilkat/testData/p7m/sample.pdf.p7m" lcOutFile = "/Users/chilkat/testData/pdf/recovered.pdf" lnSuccess = loDecrypt.CkDecryptFile(lcInFile,lcOutFile) IF (lnSuccess = 0) THEN ? loDecrypt.LastErrorText RELEASE loCrypt RELEASE loEncryptCert RELEASE loDecrypt CANCEL ENDIF ? "Success!" RELEASE loCrypt RELEASE loEncryptCert RELEASE loDecrypt |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.