5. Примеры
В приведенных здесь примерах "C:" указывает строки, которые клиент передает серверы, а "S:" представляет строки, передаваемые сервером клиенту. "<NUL>" указывает нуль-символ ASCII (NUL).
Первый пример иллюстрирует использование механизма OTP с ACAP-профилем в SASL. В качестве парольной фразы используется This is a test.
C: a001 AUTHENTICATE "OTP" {4} C: <NUL>tim S: + "otp-md5 499 ke1234 ext" C: "hex:5bf075d9959d036f" S: a001 OK "AUTHENTICATE completed"
Следующий пример отличается от первого лишь использованием отклика в формате six-words.
C: a001 AUTHENTICATE "OTP" {4} C: <NUL>tim S: + "otp-md5 499 ke1234 ext" C: "word:BOND FOGY DRAB NE RISE MART" S: a001 OK "AUTHENTICATE completed"
В следующем примере для той же ситуации используется механизм OTP-SHA1.
C: a001 AUTHENTICATE "OTP" {4} C: <NUL>tim S: + "otp-sha1 499 ke1234 ext" C: "hex:c90fc02cc488df5e" S: a001 OK "AUTHENTICATE completed"
Приведенный ниже пример отличается от предыдущего лишь использованием расширенного отклика в формате init-hex.
C: a001 AUTHENTICATE "OTP" {4} C: <NUL>tim S: + "otp-md5 499 ke1234 ext" C: "init-hex:5bf075d9959d036f:md5 499 ke1235:3712dcb4aa5316c1" S: a001 OK "OTP sequence reset, authentication complete"
Далее приведен пример использования механизма OTP с IMAP-профилем [RFC2060] в SASL. Парольная фраза — this is a test.
C: a001 AUTHENTICATE OTP S: + C: AHRpbQ== S: + b3RwLW1kNSAxMjMga2UxMjM0IGV4dA== C: aGV4OjExZDRjMTQ3ZTIyN2MxZjE= S: a001 OK AUTHENTICATE completed
Отметим, что отсутствие изначального отклика клиента и кодирование base64 являются характеристиками IMAP-профиля SASL. Запрос сервера имеет вид "otp-md5 123 ke1234 ext", а отклик клиента — "hex:11d4c147e227c1f1".