Am câteva întrebări despre fișierul ntp.keys și am nevoie de ajutorul tău.
Din pagina de manual, formatul cheilor ntp este
`cheie de tip keyno`
unde poate fi tipul md5
, sha1
, ripemd160
, sha224
, sha256
etc.
Am confuzie cu privire la formatul cheii pentru tipurile de mai sus. Din pagina de manual,
Cheia poate fi imprimabilă ASCII, excluzând „#” sau codificată hex. Se presupune că cheile mai lungi de 20 de caractere sunt hexadecimale. Lungimea maximă a unei chei (de-hexificate) este de 32 de octeți. Dacă doriți să utilizați o cheie ASCII mai lungă de 20 de octeți, trebuie să o hexalizați.
Această restricție este valabilă pentru toate tipurile de chei?
De fapt, implementez un CLI pentru autentificare ntp care va suporta md5
, sha1
, și sha256
. Înainte de a crea fișierul final ntp.keys, vreau să mă asigur că cheia este în format valid pentru toate tipurile. Dacă un utilizator introduce un format de cheie greșit pentru orice tip, aș dori să returnez o eroare în CLI. Am făcut câteva cercetări pentru a afla formatul corect pentru fiecare tip.
- Pentru
md5
Am constatat că Cheia este de la 1 la 16 caractere imprimabile terminate cu un EOL, un spațiu alb sau un # (care este caracterul „început al comentariului”).
- Înseamnă asta pentru suportul md5 în ntp, ar trebui să restricționez utilizatorul să nu introducă mai mult de 16 caractere?
- Care sunt personajele pe care ar trebui să le permit
md5
format?
- Pentru
SHA1
Am gasit asta, Cheia este un șir ASCII codificat hex de 40 de caractere, care este trunchiat după cum este necesar.
- Înseamnă asta că cheia ar trebui să aibă exact 40 de caractere?
- Toate caracterele trebuie să fie în cifre hexadecimale?
- Pot permite utilizatorului să introducă mai puțin de 40 de caractere?
- Pentru
SHA256
Nu am primit prea multe informații. Vreau să mă asigur că tasta de intrare de la utilizator pentru SHA256
ar trebui să fie valid și dacă utilizatorul a dat o intrare greșită, atunci ar trebui să-i dau eroare. Pentru ce este formatul corect SHA256
?
În general, vreau să efectuez validarea tastei de intrare pentru fiecare tip, astfel încât utilizatorul să nu poată da un șir de chei greșit. Poate cineva să-mi spună, vă rog, care este formatul pe care ar trebui să-l permit pentru fiecare tip?