RFC: 2554
Оригинал: SMTP Service Extension for Authentication
Другие версии: RFC 4954
Категория: Предложенный стандарт
Дата публикации:
Автор:
Перевод: Николай Малых

RFC 2554, Страница 5 из 6

7. Формальный синтаксис

Спецификация формального синтаксиса использует расширенную нотацию Бэкуса-Наура (BNF), описанную в документе [ABNF].

За исключением явно указанных случаев регистр символов для букв не принимается во внимание. Использование строчных и прописных букв обусловлено исключительно наглядностью. Реализации должны принимать эти строки независимо от регистра символов.

UPALPHA         = %x41-5A            ;; верхний регистр: A-Z

LOALPHA         = %x61-7A            ;; нижний регистр: a-z

ALPHA           = UPALPHA / LOALPHA  ;; регистр не имеет значения

DIGIT           = %x30-39            ;; цифры 0-9

HEXDIGIT        = %x41-46 / DIGIT    ;; шестнадцатеричные цифры (верхний регистр)

hexchar         = "+" HEXDIGIT HEXDIGIT

xchar           = %x21-2A / %x2C-3C / %x3E-7E
                  ;; символы US-ASCII за исключением "+", "=", пробела и CTL

xtext           = *(xchar / hexchar)

AUTH_CHAR       = ALPHA / DIGIT / "-" / "_"

auth_type       = 1*20AUTH_CHAR

auth_command    = "AUTH" SPACE auth_type [SPACE (base64 / "=")]
                  *(CRLF [base64]) CRLF

auth_param      = "AUTH=" xtext
                  ;; декодированная форма xtext ДОЛЖНА
                  ;; совпадать с addr-spec или "<>"

base64          = base64_terminal / ( 1*(4base64_CHAR) [base64_terminal] )

base64_char     = UPALPHA / LOALPHA / DIGIT / "+" / "/"
                  ;; регистр принимается во внимание

base64_terminal = (2base64_char "==") / (3base64_char "=")

continue_req    = "334" SPACE [base64] CRLF

CR              = %x0C           ;; ASCII CR (возврат каретки)

CRLF            = CR LF

CTL             = %x00-1F / %x7F ;; все коды управления ASCII, а также символ DEL

LF              = %x0A           ;; ASCII LF (перевод строки)

SPACE            = %x20          ;; ASCII SP (пробел)
2007 - 2017 © Русские переводы RFC, IETF, ISOC.