Sample code for 30+ languages & platforms
DataFlex

Set the S/MIME Encryption Key Length

See more Email Object Examples

Demonstrates the Chilkat Email.Pkcs7KeyLength property, which sets the key length of the symmetric algorithm used for PKCS#7 (S/MIME) encryption. The allowed values depend on Pkcs7CryptAlg: for aes use 128, 192, or 256; for 3des use 192; for des use 40; for rc2 use 40, 56, 64, or 128. The default is 128, and an unsupported algorithm/key-length combination causes encryption to fail. This example pairs AES with a 192-bit key.

Background: Key length is the size, in bits, of the secret key a symmetric cipher uses — a longer key means exponentially more possible keys and thus more resistance to brute-force attack. But length is only meaningful within a given algorithm: AES-128 is already very strong, and a key size must be one the chosen cipher actually supports, which is why Pkcs7KeyLength and Pkcs7CryptAlg have to agree.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoEmail
    String sTemp1
    Integer iTemp1

    //  Demonstrates the Email.Pkcs7KeyLength property, which sets the key length (in bits)
    //  of the symmetric algorithm used for PKCS#7 (S/MIME) encryption.  The allowed values
    //  depend on Pkcs7CryptAlg; for aes they are 128, 192, or 256.  The default is 128.

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End

    Set ComPkcs7CryptAlg Of hoEmail To "aes"
    Set ComPkcs7KeyLength Of hoEmail To 192

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


End_Procedure