У меня есть несколько вопросов по файлу ntp.keys, и мне нужна ваша помощь.
На странице руководства формат ключей ntp
`keyno тип ключа`
где тип может быть мд5
, Ша1
, спелый160
, ша224
, ша256
и т.д.
У меня есть путаница в формате ключа для вышеуказанных типов. На справочной странице
Ключ может быть в печатном формате ASCII, исключая «#», или в шестнадцатеричном коде. Ключи длиннее 20 символов считаются шестнадцатеричными. Максимальная длина ключа (расшифрованного) составляет 32 байта. Если вы хотите использовать ключ ASCII длиннее 20 байт, вы должны его шестнадцатерично преобразовать.
Это ограничение для всех типов ключей?
На самом деле, я реализую CLI для аутентификации ntp, который будет поддерживать мд5
, Ша1
, и ша256
. Прежде чем создавать окончательный файл ntp.keys, я хочу убедиться, что ключ имеет допустимый формат для всех типов. Если пользователь вводит неправильный формат ключа для любого типа, я бы хотел вернуть ошибку в CLI. Я провел небольшое исследование, чтобы найти правильный формат для каждого типа.
- За
мд5
Я обнаружил, что Ключ содержит от 1 до 16 печатных символов, оканчивающихся символом EOL, пробелом или знаком # (который является символом «начало комментария»).
- Означает ли это, что для поддержки md5 в ntp я должен запретить пользователю вводить более 16 символов?
- Какие символы я должен разрешить
мд5
формат?
- За
SHA1
Я нашел это, Ключ представляет собой закодированную в шестнадцатеричном формате строку ASCII из 40 символов, которая при необходимости усекается.
- Означает ли это, что ключ должен состоять ровно из 40 символов?
- Все ли символы должны быть шестнадцатеричными?
- Могу ли я разрешить пользователю вводить менее 40 символов?
- За
SHA256
Я не получил много информации. Я хочу убедиться, что ключ ввода от пользователя для SHA256
должен быть действительным, и если пользователь ввел неправильный ввод, я должен дать ему ошибку. Какой правильный формат для SHA256
?
В целом, я хочу выполнить проверку ключа ввода для каждого типа, чтобы пользователь не мог указать неправильную строку ключа. Может ли кто-нибудь сказать мне, какой формат я должен разрешить для каждого типа?