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
Decrypt P7M using PFX to get MIMEDemonstrates how to decrypt a .p7m (PKCS7) binary file using a certificate and private key from a PFX file. The result of the decryption (in this case) is MIME text that may be loaded into a Chilkat MIME object. Note: Any type of file or data may be encrypted to produce a .p7m (PKCS7) encrypted file. This example was prompted by a customer needing to decrypt a MIME message. The final step of loading the decrypted text into a MIME object would be skipped if decrypting something other than MIME..
use chilkat(); $crypt = new chilkat::CkCrypt2(); # Any string argument automatically begins the 30-day trial. $success = $crypt->UnlockComponent("30-day trial"); if ($success != 1) { print $crypt->lastErrorText() . "\n"; exit; } # Read the P7M file into memory. $p7mData = new chilkat::CkByteData(); $success = $crypt->ReadFile("encrypted.p7m",$p7mData); if ($success != 1) { print $crypt->lastErrorText() . "\n"; exit; } # Setup the crypt object: # Indicate that public-key decryption is to be used. $crypt->put_CryptAlgorithm("pki"); # Add a PFX file to allow the crypt object to find # the certificate and private key needed for decryption $pfxFilePath = "myPfx.pfx"; $pfxPassword = "secret"; $success = $crypt->AddPfxSourceFile($pfxFilePath,$pfxPassword); if ($success != 1) { print $crypt->lastErrorText() . "\n"; exit; } # Assuming the decrypted data will be text, decrypt to # a string. $mimeText = $crypt->decryptString($p7mData); if ($mimeText eq null ) { print $crypt->lastErrorText() . "\n"; exit; } # Note: Chilkat Crypt and Chilkat MIME are separate products. # To use both objects, one would license the "Chilkat Bundle", # which provides licenses to all existing Chilkat products. # This is less expensive than licensing each of the two products separately. $mime = new chilkat::CkMime(); $success = $mime->UnlockComponent("Anyting for 30-day trial"); if ($success != 1) { print $mime->lastErrorText() . "\n"; exit; } # Load the MIME text into the MIME object. $success = $mime->LoadMime($mimeText); if ($success != 1) { print $mime->lastErrorText() . "\n"; exit; } # Save the MIME to a file: $success = $mime->SaveMime("outMime.txt"); if ($success != 1) { print $mime->lastErrorText() . "\n"; exit; } # Success! Output the MIME text: print $mime->getMime() . "\r\n"; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.