Miroslav Lichvar
839e9aa4af
reference: fix assignment of frequency_sd
...
Fixes: 8afd62d954
("reference: update synchronization status more frequently")
2020-08-19 09:39:26 +02:00
Miroslav Lichvar
c5ac15ad33
client: improve parsing of keygen arguments
...
Detect invalid syntax for the keygen command.
2020-08-19 09:39:26 +02:00
Miroslav Lichvar
598cd10c34
client: ignore case in add command
...
For consistency with chronyd configuration, make the source type in the
add command case insensitive.
2020-08-19 09:39:18 +02:00
Miroslav Lichvar
1885729024
client: drop unnecessary parsing of IPv4 address
2020-08-18 14:22:55 +02:00
Miroslav Lichvar
2127f63961
cmdmon: change name fields to unsigned type
2020-08-17 16:28:36 +02:00
Miroslav Lichvar
97a8b1e43b
test: fix random failures in nts_ntp_client unit test
...
Fixes: 18d9243eb9
("test: improve NTS unit tests")
2020-08-17 16:28:36 +02:00
Miroslav Lichvar
aeee1feda6
test: improve siv unit test
2020-08-13 16:37:38 +02:00
Miroslav Lichvar
18d9243eb9
test: improve NTS unit tests
2020-08-13 16:37:38 +02:00
Miroslav Lichvar
1aa4827b3b
test: extend 139-nts test
2020-08-13 16:37:38 +02:00
Miroslav Lichvar
ed1077a788
nts: check all encrypted fields before saving cookies
...
Don't save any cookies if an encrypted extension field fails parsing.
2020-08-13 16:37:20 +02:00
Miroslav Lichvar
356c475a6a
cmdmon: fix data field name in handle_ntp_source_name()
...
Fixes: 93f6358916
("cmdmon: add request to get source name")
2020-08-13 10:40:18 +02:00
Miroslav Lichvar
9ac582fa35
socket: improve code
...
Add more assertions and other checks, and improve coding style a bit.
2020-08-13 10:40:18 +02:00
Miroslav Lichvar
8c75f44603
ntp: fix comments
...
Fix typos and remove an obsolete comment.
2020-08-13 10:40:18 +02:00
Miroslav Lichvar
0a63ad95ce
ntp: reuse pool IDs for new pools
...
When adding a new pool, reuse unused pool IDs to avoid increasing the
pools array.
2020-08-13 10:39:37 +02:00
Miroslav Lichvar
d274fe44da
ntp: rename pool fields to pool_id
...
Rename the pool fields holding the ID of the pool to avoid confusion
with the pool record and pool flag.
2020-08-10 12:27:33 +02:00
Miroslav Lichvar
6d1cb58d8f
examples: add leapsecmode to chrony.conf examples
2020-08-06 11:34:32 +02:00
Miroslav Lichvar
784122d44f
client: add missing option to help message
2020-08-04 13:04:04 +02:00
Miroslav Lichvar
32fb8d41ca
test: fix compiler warning in ntp unit test
2020-08-04 12:24:51 +02:00
Miroslav Lichvar
4993c35e11
util: fix compiler warning
...
Replace the snprintf() call with memcpy() in UTI_PathToDir() to make it
clear a truncated string is expected.
2020-08-04 12:24:51 +02:00
Miroslav Lichvar
6a5665ca58
conf: add dscp directive
...
The directive sets the DSCP value in transmitted NTP packets, which can
be useful in local networks where switches/routers are configured to
prioritise packets with specific DSCP values.
2020-08-04 12:24:49 +02:00
Miroslav Lichvar
e5cf006378
sources: reset leap voting flag earlier in selection
...
Remove the leap vote from sources that get the noselect option, or
have too large distance or jitter.
2020-08-04 12:19:52 +02:00
Miroslav Lichvar
0e51552d2d
ntp: improve auth code
...
Before generating a MAC, make sure there is enough space in the packet.
This is always true with the current code, but it may change when a
non-NTS extension field is supported.
Update the packet auth info after generating a MAC in case it's needed
before the transmission.
Add more assertions and make other changes for better readability.
2020-08-04 12:19:41 +02:00
Miroslav Lichvar
cc007ad93b
test: improve nts_ntp_client unit test
2020-07-28 12:48:23 +02:00
Miroslav Lichvar
3096926547
nts: disable TLS 1.2 on server
...
It seems gnutls (at least in version 3.6.14) allows clients to connect
using TLS1.2 when it has a DTLS version enabled in the priority cache.
Disable all DTLS versions in order to disable TLS1.2.
2020-07-28 12:48:23 +02:00
Miroslav Lichvar
d48f012809
nts: improve NTS-NTP server/client code
...
Add more comments, assertions, debug messages, and other minor
changes to make the code more robust.
2020-07-28 12:48:23 +02:00
Miroslav Lichvar
def137bc80
nts: scale server listening backlog with number of helpers
2020-07-28 12:48:23 +02:00
Miroslav Lichvar
3e0272e55f
nts: fix destroying of NTS-KE client
...
Destroy the NTS-KE session of the client immediately even when the
resolver of the NTP address is running. This removes the session
local change handler and avoids an assertion failure in the local
finalization.
2020-07-28 12:48:23 +02:00
Miroslav Lichvar
be503bbcf6
nts: move loading of syscall filter in NTS-KE server
...
Load the filter after NKS_Initialise() to avoid hitting
a fcntl syscall.
Fixes: 66e097e3e6
("nts: improve NTS-KE server/client code")
2020-07-28 12:48:20 +02:00
Miroslav Lichvar
72bf3d26eb
nts: fix error response to NTS-KE request
...
When the request has an unrecognized critical record before the
NEXT_PROTOCOL and AEAD_ALGORITHM records, respond with error 0
(unrecognized critical record) instead of 1 (bad request).
When the request has multiple NEXT_PROTOCOL or AEAD_ALGORITHM records,
respond with error 1 (bad request).
2020-07-23 15:53:24 +02:00
Miroslav Lichvar
cc20ead3dc
nts: reset NAK indicator with new request
...
Don't restart NTS-KE if a spoofed NAK response was received and no valid
response is received for a subsequent request.
2020-07-20 16:52:46 +02:00
Miroslav Lichvar
fd8fbcd090
nts: don't allow malformed encrypted extension fields
...
Require data decrypted from the NTS authenticator field to contain
correctly formatted extension fields (known or unknown).
2020-07-20 16:52:42 +02:00
Miroslav Lichvar
77bd0f83fe
main: remove unneeded code in signal handler
...
The handler is set up when the main code is already initialized.
2020-07-16 16:02:16 +02:00
Miroslav Lichvar
32a82a38fd
siv: add more assertions
...
Make sure the returned tag and key lengths are sane.
2020-07-16 16:02:16 +02:00
Miroslav Lichvar
66e097e3e6
nts: improve NTS-KE server/client code
...
Add more assertions and comments, refactor initialization of the helper,
and make other changes to make the code more robust.
2020-07-16 16:02:08 +02:00
Miroslav Lichvar
51d77d6cfc
logging: extend functionality
...
Add a function to get the current minimum severity and a function to set
a global prefix for debug messages in order to identify messages from
helpers.
2020-07-16 13:24:59 +02:00
Miroslav Lichvar
2bb0769516
conf: improve error message
...
Replace "command" with "directive" for consistency with the
documentation.
2020-07-16 12:07:43 +02:00
Miroslav Lichvar
58da0c0ad2
conf: adopt default bind*address values
...
Move the default values of the bind*address settings from the
ntp/nts/cmdmon code to conf.
2020-07-16 12:07:43 +02:00
Miroslav Lichvar
c10b66b579
nts: follow bind*device settings for NTS-KE sockets
...
Bind the server and client NTS-KE sockets to the specified device.
2020-07-16 12:07:35 +02:00
Miroslav Lichvar
55a90c3735
nts: deinit gnutls when setting of credentials fails
...
This is needed to cleanly exit when the server key/cert couldn't be
loaded.
2020-07-16 12:06:27 +02:00
Miroslav Lichvar
962afb9e7d
nts: disable input when sending data in NTS-KE session
...
Ignore read events when sending data to avoid spinning with blocked
output.
2020-07-16 12:03:43 +02:00
Miroslav Lichvar
7abd982f87
doc: fix formatting with new asciidoctor
...
With newer asciidoctor versions a blank character seems to be required
in an empty description used to set the indentation level in a nested
list.
https://github.com/asciidoctor/asciidoctor/issues/2766
2020-07-16 12:02:29 +02:00
Miroslav Lichvar
c099aac79c
socket: fix debug message for unsupported binding
...
Fixes: 4ef944b734
("socket: add support for binding sockets to device")
Reported-by: Bryan Christianson <bryan@whatroute.net>
2020-07-10 09:04:20 +02:00
Miroslav Lichvar
828e6ce30f
doc: mention automatic creation of directories
2020-07-09 14:47:33 +02:00
Miroslav Lichvar
dc08cbfe59
conf: create ntsdumpdir directory
...
Create the directory specified by the ntsdumpdir directive if it doesn't
exist, similarly to logdir and dumpdir.
2020-07-09 14:47:33 +02:00
Miroslav Lichvar
3bdcce6903
conf: restrict permissions of created directories
...
If logdir or dumpdir doesn't exist, create the directory with no
permissions for other users (mode 0750 instead of 0755).
2020-07-09 14:47:33 +02:00
Miroslav Lichvar
d93aa10bac
cmac+hash: change parameter types
...
For consistency and safety, change the CMC and HSH functions to accept
signed lengths and handle negative values as errors. Also, change the
input data type to void * to not require casting in the caller.
2020-07-09 14:47:33 +02:00
Miroslav Lichvar
de4ecc72d1
nts: don't assume field position in NNA_DecryptAuthEF()
...
Modify NNA_DecryptAuthEF() to not assume that the authenticator is the
last extension field in the packet as some extension fields specified in
future may need to be placed after the authenticator. The caller of the
function is supposed to verify the position.
2020-07-09 14:47:33 +02:00
Miroslav Lichvar
db54bfc0c1
nts: check for negative length in NNA_DecryptAuthEF()
...
As other functions that accept a signed length, make sure it is sane in
NNA_DecryptAuthEF() too.
2020-07-09 14:47:33 +02:00
Miroslav Lichvar
72ee80debe
nts: fix comment about message handler
2020-07-09 14:47:33 +02:00
Miroslav Lichvar
a3436c26f0
nts: improve session code
...
Add more comments and assertions, replace getsockopt() call with
SCK_GetIntOption(), replace strncmp() with memcmp(), move a return
statement for clarity, and remove an unused field from the instance
record.
2020-07-09 14:47:30 +02:00