Sample code for 30+ languages & platforms
DataFlex

Select the S/MIME Encryption Algorithm

See more Email Object Examples

Demonstrates the Chilkat Email.Pkcs7CryptAlg property, which selects the underlying symmetric encryption algorithm used when an email is sent encrypted with PKCS#7 public-key (S/MIME) encryption. Possible values are aes, aes-gcm, des, 3des, and rc2; the default is aes. This example selects AES and pairs it with a 256-bit key length.

Background: S/MIME encryption is hybrid. The message body is encrypted with a fast symmetric algorithm (the one this property chooses, such as AES) using a randomly generated one-time key; then that one-time key is itself encrypted with each recipient's public key. This gives the speed of symmetric encryption with the key-distribution convenience of public-key cryptography. Modern choices like aes are strongly preferred — older options such as des and rc2 are considered weak.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoEmail
    String sTemp1
    Integer iTemp1

    //  Demonstrates the Email.Pkcs7CryptAlg property, which selects the symmetric encryption
    //  algorithm used when an email is sent encrypted with PKCS#7 (S/MIME) public-key
    //  encryption.  Possible values: aes, aes-gcm, des, 3des, rc2.  The default is aes.

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End
    Set ComSubject Of hoEmail To "Encrypted email"
    Set ComBody Of hoEmail To "This message will be S/MIME encrypted when sent."

    //  Select AES with a 256-bit key for the symmetric encryption.
    Set ComPkcs7CryptAlg Of hoEmail To "aes"
    Set ComPkcs7KeyLength Of hoEmail To 256

    Get ComPkcs7CryptAlg Of hoEmail To sTemp1
    Showln "Pkcs7CryptAlg = " sTemp1
    Get ComPkcs7KeyLength Of hoEmail To iTemp1
    Showln "Pkcs7KeyLength = " iTemp1


End_Procedure