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
|
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 lnSuccess LOCAL loEncryptCert LOCAL lcInFile LOCAL lcOutFile LOCAL loDecrypt LOCAL lcPfxFilename LOCAL lcPfxPassword loCrypt = CreateObject('Chilkat.Crypt2') * Any string argument automatically begins the 30-day trial. lnSuccess = loCrypt.UnlockComponent("30-day trial") IF (lnSuccess <> 1) THEN ? loCrypt.LastErrorText QUIT ENDIF * 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 loEncryptCert = CreateObject('Chilkat.Cert') lnSuccess = loEncryptCert.LoadFromFile("/Users/chilkat/testData/cer/acme.cer") IF (lnSuccess <> 1) THEN ? loEncryptCert.LastErrorText QUIT 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 QUIT ENDIF * For demonstration purposes, a different instance of the object will be used * for decryption. 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 QUIT 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 QUIT ENDIF =MESSAGEBOX("Success!") |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.
Mail Component · .NET Email Component · ASP Mail Component · XML Parser