From 7c7bf55c3a51913cd0b9a8e94941e3177af943fe Mon Sep 17 00:00:00 2001 From: plugd Date: Thu, 3 Nov 2022 09:46:18 +0100 Subject: [PATCH] Working on starttls implementation. --- lambdamail.scm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lambdamail.scm b/lambdamail.scm index 7d37b30..7caf27e 100644 --- a/lambdamail.scm +++ b/lambdamail.scm @@ -2,7 +2,7 @@ ;; ;; Intended for a single-user system -(import tcp6 +(import tcp6 openssl (chicken port) (chicken io) (chicken string) @@ -118,8 +118,18 @@ "250-" (config-host config) " Hello " (smtp-command-args "ehlo" line)) (smtp-session 'send "250 AUTH PLAIN") - ;; (smtp-session 'send "250 STARTTLS") + (smtp-session 'send "250 STARTTLS") (loop mmsg received-messages)) + ((smtp-command? "starttls" line) + (let ((args (smtp-command-args "starttls" line))) + (if (= 0 (string-length args)) + (smtp-session 'send "501 Syntax error (no parameters allowed)") + (begin + (smtp-session 'send "220 Ready to start TLS") + + ;; TODO: initiate TLS handshake using (ssl-start*) + + )))) ((smtp-command? "auth plain" line) (let* ((auth-string (smtp-command-args "auth plain" line)) (auth-decoded (base64-decode auth-string)) -- 2.20.1