xref: /freebsd/contrib/ntp/ntpd/ntp.keys.def (revision c7a33fe37d7688cb21c743f68256680e003210ad)
12b15cb3dSCy Schubert/* -*- Mode: Text -*- */
22b15cb3dSCy Schubert
32b15cb3dSCy Schubertautogen definitions options;
42b15cb3dSCy Schubert
52b15cb3dSCy Schubert#include copyright.def
62b15cb3dSCy Schubert#include version.def
72b15cb3dSCy Schubert
82b15cb3dSCy Schubert// We want the synopsis to be "/etc/ntp.keys" but we need the prog-name
92b15cb3dSCy Schubert// to be ntp.keys - the latter is also how autogen produces the output
102b15cb3dSCy Schubert// file name.
112b15cb3dSCy Schubertprog-name	= "ntp.keys";
122b15cb3dSCy Schubertfile-path	= "/etc/ntp.keys";
13*c7a33fe3SAlexander Ziaeeprog-title	= "Network Time Protocol symmetric key format";
142b15cb3dSCy Schubert
152b15cb3dSCy Schubert/* explain: Additional information whenever the usage routine is invoked */
162b15cb3dSCy Schubertexplain = <<- _END_EXPLAIN
172b15cb3dSCy Schubert	_END_EXPLAIN;
182b15cb3dSCy Schubert
192b15cb3dSCy Schubertdoc-section	= {
202b15cb3dSCy Schubert  ds-type	= 'DESCRIPTION';
212b15cb3dSCy Schubert  ds-format	= 'mdoc';
222b15cb3dSCy Schubert  ds-text	= <<- _END_PROG_MDOC_DESCRIP
232b15cb3dSCy SchubertThis document describes the format of an NTP symmetric key file.
242b15cb3dSCy SchubertFor a description of the use of this type of file, see the
252b15cb3dSCy Schubert.Qq Authentication Support
262b15cb3dSCy Schubertsection of the
272b15cb3dSCy Schubert.Xr ntp.conf 5
282b15cb3dSCy Schubertpage.
292b15cb3dSCy Schubert.Pp
302b15cb3dSCy Schubert.Xr ntpd 8
312b15cb3dSCy Schubertreads its keys from a file specified using the
322b15cb3dSCy Schubert.Fl k
332b15cb3dSCy Schubertcommand line option or the
342b15cb3dSCy Schubert.Ic keys
352b15cb3dSCy Schubertstatement in the configuration file.
362b15cb3dSCy SchubertWhile key number 0 is fixed by the NTP standard
372b15cb3dSCy Schubert(as 56 zero bits)
382b15cb3dSCy Schubertand may not be changed,
394e1ef62aSXin LIone or more keys numbered between 1 and 65535
402b15cb3dSCy Schubertmay be arbitrarily set in the keys file.
412b15cb3dSCy Schubert.Pp
422b15cb3dSCy SchubertThe key file uses the same comment conventions
432b15cb3dSCy Schubertas the configuration file.
442b15cb3dSCy SchubertKey entries use a fixed format of the form
452b15cb3dSCy Schubert.Pp
4668ba7e87SXin LI.D1 Ar keyno type key opt_IP_list
472b15cb3dSCy Schubert.Pp
482b15cb3dSCy Schubertwhere
492b15cb3dSCy Schubert.Ar keyno
504e1ef62aSXin LIis a positive integer (between 1 and 65535),
512b15cb3dSCy Schubert.Ar type
522b15cb3dSCy Schubertis the message digest algorithm,
532b15cb3dSCy Schubert.Ar key
5468ba7e87SXin LIis the key itself, and
5568ba7e87SXin LI.Ar opt_IP_list
5668ba7e87SXin LIis an optional comma-separated list of IPs
5709100258SXin LIwhere the
5809100258SXin LI.Ar keyno
5909100258SXin LIshould be trusted.
6068ba7e87SXin LIthat are allowed to serve time.
6109100258SXin LIEach IP in
6209100258SXin LI.Ar opt_IP_list
6309100258SXin LImay contain an optional
6409100258SXin LI.Cm /subnetbits
6509100258SXin LIspecification which identifies the number of bits for
6609100258SXin LIthe desired subnet of trust.
6768ba7e87SXin LIIf
6868ba7e87SXin LI.Ar opt_IP_list
6968ba7e87SXin LIis empty,
7009100258SXin LIany properly-authenticated message will be
7168ba7e87SXin LIaccepted.
722b15cb3dSCy Schubert.Pp
732b15cb3dSCy SchubertThe
742b15cb3dSCy Schubert.Ar key
752b15cb3dSCy Schubertmay be given in a format
762b15cb3dSCy Schubertcontrolled by the
772b15cb3dSCy Schubert.Ar type
782b15cb3dSCy Schubertfield.
792b15cb3dSCy SchubertThe
802b15cb3dSCy Schubert.Ar type
812b15cb3dSCy Schubert.Li MD5
822b15cb3dSCy Schubertis always supported.
832b15cb3dSCy SchubertIf
842b15cb3dSCy Schubert.Li ntpd
852b15cb3dSCy Schubertwas built with the OpenSSL library
862b15cb3dSCy Schubertthen any digest library supported by that library may be specified.
872b15cb3dSCy SchubertHowever, if compliance with FIPS 140-2 is required the
882b15cb3dSCy Schubert.Ar type
892b15cb3dSCy Schubertmust be either
902b15cb3dSCy Schubert.Li SHA
912b15cb3dSCy Schubertor
922b15cb3dSCy Schubert.Li SHA1 .
932b15cb3dSCy Schubert.Pp
942b15cb3dSCy SchubertWhat follows are some key types, and corresponding formats:
952b15cb3dSCy Schubert.Pp
962b15cb3dSCy Schubert.Bl -tag -width RMD160 -compact
972b15cb3dSCy Schubert.It Li MD5
982b15cb3dSCy SchubertThe key is 1 to 16 printable characters terminated by
992b15cb3dSCy Schubertan EOL,
1002b15cb3dSCy Schubertwhitespace,
1012b15cb3dSCy Schubertor
1022b15cb3dSCy Schuberta
1032b15cb3dSCy Schubert.Li #
1042b15cb3dSCy Schubert(which is the "start of comment" character).
1052b15cb3dSCy Schubert.Pp
1062b15cb3dSCy Schubert.It Li SHA
1072b15cb3dSCy Schubert.It Li SHA1
1082b15cb3dSCy Schubert.It Li RMD160
1092b15cb3dSCy SchubertThe key is a hex-encoded ASCII string of 40 characters,
1102b15cb3dSCy Schubertwhich is truncated as necessary.
1112b15cb3dSCy Schubert.El
1122b15cb3dSCy Schubert.Pp
1132b15cb3dSCy SchubertNote that the keys used by the
1142b15cb3dSCy Schubert.Xr ntpq 8
1152b15cb3dSCy Schubertand
1162b15cb3dSCy Schubert.Xr ntpdc 8
1172b15cb3dSCy Schubertprograms are checked against passwords
1182b15cb3dSCy Schubertrequested by the programs and entered by hand,
1192b15cb3dSCy Schubertso it is generally appropriate to specify these keys in ASCII format.
1202b15cb3dSCy Schubert	_END_PROG_MDOC_DESCRIP;
1212b15cb3dSCy Schubert};
1222b15cb3dSCy Schubert
1232b15cb3dSCy Schubertdoc-section	= {
1242b15cb3dSCy Schubert  ds-type	= 'FILES';
1252b15cb3dSCy Schubert  ds-format	= 'mdoc';
1262b15cb3dSCy Schubert  ds-text	= <<- _END_MDOC_FILES
1272b15cb3dSCy Schubert.Bl -tag -width /etc/ntp.keys -compact
1282b15cb3dSCy Schubert.It Pa /etc/ntp.keys
1292b15cb3dSCy Schubertthe default name of the configuration file
1302b15cb3dSCy Schubert.El
1312b15cb3dSCy Schubert	_END_MDOC_FILES;
1322b15cb3dSCy Schubert};
1332b15cb3dSCy Schubert
1342b15cb3dSCy Schubertdoc-section	= {
1352b15cb3dSCy Schubert  ds-type	= 'SEE ALSO';
1362b15cb3dSCy Schubert  ds-format	= 'mdoc';
1372b15cb3dSCy Schubert  ds-text	= <<- _END_MDOC_SEE_ALSO
1382b15cb3dSCy Schubert.Xr ntp.conf 5 ,
1392b15cb3dSCy Schubert.Xr ntpd 1ntpdmdoc ,
1402b15cb3dSCy Schubert.Xr ntpdate 1ntpdatemdoc ,
1412b15cb3dSCy Schubert.Xr ntpdc 1ntpdcmdoc ,
1422b15cb3dSCy Schubert.Xr sntp 1sntpmdoc
1432b15cb3dSCy Schubert	_END_MDOC_SEE_ALSO;
1442b15cb3dSCy Schubert};
1452b15cb3dSCy Schubert
1462b15cb3dSCy Schubert/*
1472b15cb3dSCy Schubertdoc-section	= {
1482b15cb3dSCy Schubert  ds-type	= 'BUGS';
1492b15cb3dSCy Schubert  ds-format	= 'mdoc';
1502b15cb3dSCy Schubert  ds-text	= <<- _END_MDOC_BUGS
1512b15cb3dSCy Schubert.Xr ntpd 8
1522b15cb3dSCy Schuberthas gotten rather fat.
1532b15cb3dSCy SchubertWhile not huge, it has gotten larger than might
1542b15cb3dSCy Schubertbe desirable for an elevated-priority daemon running on a workstation,
1552b15cb3dSCy Schubertparticularly since many of the fancy features which consume the space
1562b15cb3dSCy Schubertwere designed more with a busy primary server, rather than a high
1572b15cb3dSCy Schubertstratum workstation, in mind.
1582b15cb3dSCy Schubert	_END_MDOC_BUGS;
1592b15cb3dSCy Schubert};
1602b15cb3dSCy Schubert*/
1612b15cb3dSCy Schubert
1622b15cb3dSCy Schubertdoc-section	= {
1632b15cb3dSCy Schubert  ds-type	= 'NOTES';
1642b15cb3dSCy Schubert  ds-format	= 'mdoc';
1652b15cb3dSCy Schubert  ds-text	= <<- _END_MDOC_NOTES
1662b15cb3dSCy SchubertThis document was derived from FreeBSD.
1672b15cb3dSCy Schubert	_END_MDOC_NOTES;
1682b15cb3dSCy Schubert};
169