![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Decrypt PKCS7 (CMS) EnvelopedDataThis example receives a PKCS7 (CMS) EnvelopedData message that was encrypted to me. To decrypt it:
Summary:
Only the intended recipient, who possesses the correct private key, can successfully decrypt the EnvelopedData. Note: This example requires Chilkat v11.0.0 or greater.
Use ChilkatAx-win32.pkg Procedure Test Handle hoSb Boolean iBCrlf Boolean iSuccess Handle hoCrypt String sDecryptedText Variant vCert Handle hoCert Boolean iSuccess String sTemp1 Boolean bTemp1 // Here's the PKCS7 (CMS) EnvelopedData we received. // It was created using this example: Create PKCS7 CMS EnvelopedData // MIICSgYJKoZIhvcNAQcDoIICOzCCAjcCAQAxggHiMIIB3gIBADCBljCBgTELMAkGA1UEBhMCSVQx // EDAOBgNVBAgMB0JlcmdhbW8xGTAXBgNVBAcMEFBvbnRlIFNhbiBQaWV0cm8xFzAVBgNVBAoMDkFj // dGFsaXMgUy5wLkEuMSwwKgYDVQQDDCNBY3RhbGlzIENsaWVudCBBdXRoZW50aWNhdGlvbiBDQSBH // MwIQPCWvkSv8oQ7xRmEHJ6TzEDA8BgkqhkiG9w0BAQcwL6APMA0GCWCGSAFlAwQCAQUAoRwwGgYJ // KoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUABIIBAKqHAPQNSsQoX7B2NH7QyEOWQRsSVs8oCHXmy8f4 // MVZD2er3bvYUCIomxpwbLEAl14qjUIMynahooYGgqip7+4FqL301G+BVjZVfEhHWj+VI1dAWnWuL // VHlvc/pbQNBWqV8rKVJsNIsuAZkdj4WSwLVKxYkYX43B8fh/g71XN2DTJu7Z/824v48KBmgpQBOT // 2q7IcDGxNPAFN2p6eavIVGn2LvhEbf/Fszyj+GR5tMcnQP1BOLJ3s3JzUBbvj8hcZrF1Vhl9HnTU // YQx8G/KdW1mR+Wlhl3BWoK0LYKRTbnTx2BXOs0CY1SXOAdhKr01ZYjA+xW4nGzY0lfXS9QZjh9gw // TAYJKoZIhvcNAQcBMB0GCWCGSAFlAwQBKgQQw0xTbfmnt0zjWHo5SaQIp4AgxTVY9E/Ncqy6t+RM // 8y4c3Av62/wB8IpPUEmtM2OeuZo= Get Create (RefClass(cComChilkatStringBuilder)) To hoSb If (Not(IsComObjectCreated(hoSb))) Begin Send CreateComObject of hoSb End Move True To iBCrlf Get ComAppendLine Of hoSb "MIICSgYJKoZIhvcNAQcDoIICOzCCAjcCAQAxggHiMIIB3gIBADCBljCBgTELMAkGA1UEBhMCSVQx" iBCrlf To iSuccess Get ComAppendLine Of hoSb "EDAOBgNVBAgMB0JlcmdhbW8xGTAXBgNVBAcMEFBvbnRlIFNhbiBQaWV0cm8xFzAVBgNVBAoMDkFj" iBCrlf To iSuccess Get ComAppendLine Of hoSb "dGFsaXMgUy5wLkEuMSwwKgYDVQQDDCNBY3RhbGlzIENsaWVudCBBdXRoZW50aWNhdGlvbiBDQSBH" iBCrlf To iSuccess Get ComAppendLine Of hoSb "MwIQPCWvkSv8oQ7xRmEHJ6TzEDA8BgkqhkiG9w0BAQcwL6APMA0GCWCGSAFlAwQCAQUAoRwwGgYJ" iBCrlf To iSuccess Get ComAppendLine Of hoSb "KoZIhvcNAQEIMA0GCWCGSAFlAwQCAQUABIIBAKqHAPQNSsQoX7B2NH7QyEOWQRsSVs8oCHXmy8f4" iBCrlf To iSuccess Get ComAppendLine Of hoSb "MVZD2er3bvYUCIomxpwbLEAl14qjUIMynahooYGgqip7+4FqL301G+BVjZVfEhHWj+VI1dAWnWuL" iBCrlf To iSuccess Get ComAppendLine Of hoSb "VHlvc/pbQNBWqV8rKVJsNIsuAZkdj4WSwLVKxYkYX43B8fh/g71XN2DTJu7Z/824v48KBmgpQBOT" iBCrlf To iSuccess Get ComAppendLine Of hoSb "2q7IcDGxNPAFN2p6eavIVGn2LvhEbf/Fszyj+GR5tMcnQP1BOLJ3s3JzUBbvj8hcZrF1Vhl9HnTU" iBCrlf To iSuccess Get ComAppendLine Of hoSb "YQx8G/KdW1mR+Wlhl3BWoK0LYKRTbnTx2BXOs0CY1SXOAdhKr01ZYjA+xW4nGzY0lfXS9QZjh9gw" iBCrlf To iSuccess Get ComAppendLine Of hoSb "TAYJKoZIhvcNAQcBMB0GCWCGSAFlAwQBKgQQw0xTbfmnt0zjWHo5SaQIp4AgxTVY9E/Ncqy6t+RM" iBCrlf To iSuccess Get ComAppendLine Of hoSb "8y4c3Av62/wB8IpPUEmtM2OeuZo=" iBCrlf To iSuccess Get Create (RefClass(cComChilkatCrypt2)) To hoCrypt If (Not(IsComObjectCreated(hoCrypt))) Begin Send CreateComObject of hoCrypt End Set ComCryptAlgorithm Of hoCrypt To "pki" // The CMS message contains information about the digital certificate that was used to encrypt. // Assuming the certificate is installed in a Windows certificate store, or macOS keychain, // Chilkat will automatically locate and use the certificate + private key for decryption. Set ComEncodingMode Of hoCrypt To "base64" Set ComCharset Of hoCrypt To "utf-8" Get ComGetAsString Of hoSb To sTemp1 Get ComDecryptStringENC Of hoCrypt sTemp1 To sDecryptedText Get ComLastMethodSuccess Of hoCrypt To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoCrypt To sTemp1 Showln sTemp1 Procedure_Return End Showln sDecryptedText // We can get the digital certificate used for decryption by calling LastDecryptCert Get Create (RefClass(cComChilkatCert)) To hoCert If (Not(IsComObjectCreated(hoCert))) Begin Send CreateComObject of hoCert End Get pvComObject of hoCert to vCert Get ComLastDecryptCert Of hoCrypt vCert To iSuccess Get ComLastMethodSuccess Of hoCrypt To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoCrypt To sTemp1 Showln sTemp1 Procedure_Return End Get ComSubjectCN Of hoCert To sTemp1 Showln "Cert used to decrypt: " sTemp1 End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.