Lianja
Lianja
IMAP Login Secure
Demonstrates how to use the LoginSecure method introduced in Chilkat v9.5.0.71.Chilkat Lianja Downloads
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