Lua Requires Chilkat v9.5.0.71+
Lua
SFTP Authenticate Secure
Demonstrates how to do SFTP password authentication with secure strings.Chilkat Lua Downloads
local chilkat = require("chilkat")
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
-- Imagine we've previously saved our encrypted login and password within a JSON config file
-- that contains this:
-- {
-- "ssh_login": "2+qylFfC56Ck7OQQt/U2/w==",
-- "ssh_password": "5neIq9Jmn0E3p71N6Yc8TA=="
-- }
local json = chilkat.JsonObject.new()
json:load_file("qa_data/passwords/ssh.json")
local crypt = chilkat.Crypt2.new()
-- These are the encryption settings we previously used to encrypt the credentials within the JSON config file.
crypt.crypt_algorithm = "aes"
crypt.cipher_mode = "cbc"
crypt.key_length = 128
crypt:set_encoded_key("000102030405060708090A0B0C0D0E0F", "hex")
crypt:set_encoded_iv("000102030405060708090A0B0C0D0E0F", "hex")
crypt.encoding_mode = "base64"
local ssLogin = chilkat.SecureString.new()
local ssPassword = chilkat.SecureString.new()
-- Decrypt to the secure string. (the strings will still held in memory encrypted, but are now encrypted using
-- a randomly generated session key.)
crypt:decrypt_secure_enc(json:string_of("ssh_login"), ssLogin)
crypt:decrypt_secure_enc(json:string_of("ssh_password"), ssPassword)
local sftp = chilkat.SFtp.new()
local success = sftp:connect("MY-SSH-SERVER-DOMAIN-OR-IP", 22)
if not success then
print(sftp.last_error_text)
return
end
-- Authenticate using secure strings
success = sftp:authenticate_sec_pw(ssLogin, ssPassword)
if not success then
print(sftp.last_error_text)
return
end
print("SFTP Authentication successful.")
sftp:disconnect()