DataFlex
DataFlex
Send aes-gcm authEnvelopedData Encrypted Email
See more SMTP Examples
Note: This example requires Chilkat v10.0.0 or laterDemonstrates how to send encrypted email using 128-bit AES in GCM mode.
"AES-GCM" (Advanced Encryption Standard - Galois/Counter Mode) is a cryptographic algorithm that provides both encryption and integrity protection (authentication). When used in the context of email security with "authEnvelopedData", it often refers to a method of securely sending encrypted and authenticated email content.
Here’s a brief breakdown:
- AES-GCM: Combines symmetric encryption (AES) with authentication, ensuring both the confidentiality and integrity of the message. It generates an authentication tag to detect any unauthorized changes.
- authEnvelopedData: Refers to a type of structure used in secure email protocols (like S/MIME) to package encrypted content. It contains the encrypted data and associated encrypted session keys.
- Email Security: When applied to emails, AES-GCM ensures the email content is encrypted (confidential) and also tamper-resistant (authenticated), with the encryption keys typically shared securely using asymmetric encryption (e.g., public key infrastructure, or PKI).
In short, AES-GCM with "authEnvelopedData" provides a way to encrypt and authenticate emails, making them confidential and resistant to tampering.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoMailman
Variant vCert
Handle hoCert
Variant vEmail
Handle hoEmail
String sTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// The mailman object is used for sending and receiving email.
Get Create (RefClass(cComChilkatMailMan)) To hoMailman
If (Not(IsComObjectCreated(hoMailman))) Begin
Send CreateComObject of hoMailman
End
Set ComSmtpHost Of hoMailman To "smtp.example.com"
Set ComSmtpUsername Of hoMailman To "my_smtp_login"
Set ComSmtpPassword Of hoMailman To "my_smtp_password"
// The typical SMTP ports are 465 for implicit SSL/TLS or 587 for explicit SSL/TLS
Set ComSmtpPort Of hoMailman To 465
Set ComSmtpSsl Of hoMailman To True
// Use the recipient's certificate for encryption.
Get Create (RefClass(cComChilkatCert)) To hoCert
If (Not(IsComObjectCreated(hoCert))) Begin
Send CreateComObject of hoCert
End
Get ComLoadFromFile Of hoCert "c:/someDir/recipient_cert.cer" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoCert To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatEmail)) To hoEmail
If (Not(IsComObjectCreated(hoEmail))) Begin
Send CreateComObject of hoEmail
End
Set ComSubject Of hoEmail To "This email is encrypted"
Set ComBody Of hoEmail To "This is AES-GCM encrypted mail"
Set ComFrom Of hoEmail To "Mary <mary@example1.com>"
Get ComAddTo Of hoEmail "Joe" "joe@example.com" To iSuccess
// Specify that AES-GCM w/ authEnvelopedData is to be used.
// Also specify other params..
Set ComPkcs7CryptAlg Of hoEmail To "aes-gcm"
Set ComPkcs7KeyLength Of hoEmail To 128
Set ComOaepPadding Of hoEmail To True
Set ComOaepHash Of hoEmail To "sha256"
Set ComOaepMgfHash Of hoEmail To "sha256"
// Indicate the email is to be sent encrypted.
Set ComSendEncrypted Of hoEmail To True
// Specify the certificate to be used for encryption.
Get pvComObject of hoCert to vCert
Get ComSetEncryptCert Of hoEmail vCert To iSuccess
Get pvComObject of hoEmail to vEmail
Get ComSendEmail Of hoMailman vEmail To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoMailman To sTemp1
Showln sTemp1
End
Else Begin
Showln "Mail Sent!"
End
End_Procedure