Sample code for 30+ languages & platforms
Lianja

IMAP Login Secure

Demonstrates how to use the LoginSecure method introduced in Chilkat v9.5.0.71.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

loImap = createobject("CkImap")

// Connect to an IMAP server..
loImap.Ssl = .T.
loImap.Port = 993
llSuccess = loImap.Connect("imap.mail.me.com")
if (llSuccess <> .T.) then
    ? loImap.LastErrorText
    release loImap
    return
endif

// Imagine we've previously saved our encrypted login and password within a JSON config file
// that contains this:

// {
//   "imap_login": "fLkxsfnVaIWLiL/R32jo6g==",
//   "imap_password": "/NbaFBoCftBLFf8WBU9Xtw=="
// }

loJson = createobject("CkJsonObject")
loJson.LoadFile("qa_data/passwords/imap.json")

loCrypt = createobject("CkCrypt2")

// These are the encryption settings we previously used to encrypt the credentials within the JSON config file.
loCrypt.CryptAlgorithm = "aes"
loCrypt.CipherMode = "cbc"
loCrypt.KeyLength = 128
loCrypt.SetEncodedKey("000102030405060708090A0B0C0D0E0F","hex")
loCrypt.SetEncodedIV("000102030405060708090A0B0C0D0E0F","hex")
loCrypt.EncodingMode = "base64"

loSsLogin = createobject("CkSecureString")
loSsPassword = createobject("CkSecureString")

// Decrypt to the secure string.  (the strings will still held in memory encrypted, but are now encrypted using
// a randomly generated session key.)
loCrypt.DecryptSecureENC(loJson.StringOf("imap_login"),loSsLogin)
loCrypt.DecryptSecureENC(loJson.StringOf("imap_password"),loSsPassword)

// Pass the credentials to the LoginSecure method:
llSuccess = loImap.LoginSecure(loSsLogin,loSsPassword)
if (llSuccess <> .T.) then
    ? loImap.LastErrorText
    release loImap
    release loJson
    release loCrypt
    release loSsLogin
    release loSsPassword
    return
endif

// ...

loImap.Disconnect()


release loImap
release loJson
release loCrypt
release loSsLogin
release loSsPassword