]>
git.ipfire.org Git - thirdparty/freeradius-server.git/log
Alan T. DeKok [Mon, 17 Feb 2025 23:53:22 +0000 (18:53 -0500)]
further limit OID encoding
due to rules of first 2 fields are (x*40) + y, if the first
component is 0 or 1, then the second component has to be 0..39
If the first component is 2, then the second component can be
anything.
Alan T. DeKok [Mon, 17 Feb 2025 18:28:57 +0000 (13:28 -0500)]
clean up decode OID.
Nick Porter [Mon, 17 Feb 2025 17:53:09 +0000 (17:53 +0000)]
Remove & from policy files
Alan T. DeKok [Mon, 17 Feb 2025 17:11:27 +0000 (12:11 -0500)]
simplify encode OID and catch parse errors
so that when the OID string is not an OID string, it fails
rather than encoding "something"
Alan T. DeKok [Mon, 17 Feb 2025 16:52:06 +0000 (11:52 -0500)]
move the basic type encoding to its own file
so that we test encoding of all of the data types before we
start testing more complex things.
Add "count" to all of the inputs, too
Alan T. DeKok [Mon, 17 Feb 2025 13:11:51 +0000 (08:11 -0500)]
use DER names in dictionaries
and forbid more FreeRADIUS types earlier in the parsing process,
with better error messages.
Alan T. DeKok [Mon, 17 Feb 2025 12:56:01 +0000 (07:56 -0500)]
convert to more standard DER names
Alan T. DeKok [Mon, 17 Feb 2025 12:52:46 +0000 (07:52 -0500)]
use more descriptive error messages
Alan T. DeKok [Mon, 17 Feb 2025 12:33:10 +0000 (07:33 -0500)]
add comments
Alan T. DeKok [Mon, 17 Feb 2025 12:30:49 +0000 (07:30 -0500)]
do load-time checks, not run-time checks
if the run-time code assumes that "is_pair" is only for type
group, then enforce that when we load the dictionaries.
Alan T. DeKok [Mon, 17 Feb 2025 12:27:08 +0000 (07:27 -0500)]
rearrange to make name and parent available to validation routines
so that the type / flag validation routines have more information
with which to make their decisions.
Alan T. DeKok [Mon, 17 Feb 2025 02:25:20 +0000 (21:25 -0500)]
remove 'option=' where it can be determined automatically
Alan T. DeKok [Mon, 17 Feb 2025 02:22:02 +0000 (21:22 -0500)]
set the attribute number before checking the type and flags
so that the validation functions can double-check the attribute
number.
Alan T. DeKok [Mon, 17 Feb 2025 02:21:42 +0000 (21:21 -0500)]
update error messages with more information
Alan T. DeKok [Mon, 17 Feb 2025 02:16:48 +0000 (21:16 -0500)]
let's use lowercase names for consistency
Alan T. DeKok [Mon, 17 Feb 2025 00:15:48 +0000 (19:15 -0500)]
try to allow just 'option'
In many cases, DER defines something like
ATTRIBUTE foo 1 type option=1
this seems redundant.
We make provisions for allowing just 'option', which could then
take the option number from the attribute number.
However, the function dict_read_process_attribute() initializes
the attribute number _after_ processing the flags / type field.
Once that code has been tweaked to parse the attribute number
first, this new DER code will work. At that point, the DER
dictionaries can be updated with the following Perl script:
perl -p -i -e 'next if !/^ATTR/;s/option=\d+/option/' share/dictionary/der/dictionary*
Alan T. DeKok [Sun, 16 Feb 2025 23:18:10 +0000 (18:18 -0500)]
batten down the hatches a little more.
things which need values should really take the values
Alan T. DeKok [Sun, 16 Feb 2025 22:39:20 +0000 (17:39 -0500)]
remove 'tagnum=' for flags.
it was being used as a synonym for 'option=', and was therefore
not needed.
also remove 'class=', though it's just commented out.
The only uses of it were at the same time as setting 'option=',
and the option parser already sets the class
Alan T. DeKok [Sun, 16 Feb 2025 22:01:03 +0000 (17:01 -0500)]
limit 'der_type=foo' to compatible FreeRADIUS data types.
Except for serialNumber, which is der_type=integer, and FreeRADIUS
type 'octets'. That's because the serial numbers are larger than
64 bits, and we really don't need to see them as decimal values.
Update the decoder to allow this case. The encoder already
allowed it, so we update the encoder with a comment explaining
why it's allowed.
Alan T. DeKok [Sun, 16 Feb 2025 21:35:21 +0000 (16:35 -0500)]
more cross-checks and error messages
Alan T. DeKok [Sun, 16 Feb 2025 21:29:48 +0000 (16:29 -0500)]
use consistent uint64_t for max
Alan T. DeKok [Sun, 16 Feb 2025 21:15:49 +0000 (16:15 -0500)]
don't use uint64_t for 8-bit tags
which also cleans up a lot of uses of PRIu64
Alan T. DeKok [Sun, 16 Feb 2025 21:03:33 +0000 (16:03 -0500)]
more UINT8_MAX cleanups
Alan T. DeKok [Sun, 16 Feb 2025 20:54:53 +0000 (15:54 -0500)]
lower FR_DER_TAG_MAX
there's no reason to make it UINT8_MAX, as we only support a
small number of tags.
Also update the arrays to use
array[FR_DER_TAG_MAX] = { ... }
instead of
array[] = { ..., [TAG_MAX] = false }
Alan T. DeKok [Sun, 16 Feb 2025 20:54:09 +0000 (15:54 -0500)]
be more stringent on allowed values
don't check just the first character.
Only allow tag values which we can encode and decode
Alan T. DeKok [Sun, 16 Feb 2025 20:33:07 +0000 (15:33 -0500)]
perhaps save a bit of space using single bits for booleans
Alan T. DeKok [Sun, 16 Feb 2025 20:27:37 +0000 (15:27 -0500)]
minor cleanups
Alan T. DeKok [Sun, 16 Feb 2025 20:10:25 +0000 (15:10 -0500)]
no need to say it's a tag "num".
it's an enum, and that's good enough
Alan T. DeKok [Sun, 16 Feb 2025 20:07:59 +0000 (15:07 -0500)]
remove unused array
and make other array static
Alan T. DeKok [Sat, 15 Feb 2025 20:57:23 +0000 (15:57 -0500)]
we know this can never fail
Alan T. DeKok [Sat, 15 Feb 2025 15:15:41 +0000 (10:15 -0500)]
rework encode_len() to be even simpler
and add comments which explain the functionality
Alan T. DeKok [Sat, 15 Feb 2025 13:56:55 +0000 (08:56 -0500)]
check return. CID #
1642925
Alan T. DeKok [Sat, 15 Feb 2025 13:42:10 +0000 (08:42 -0500)]
quiet analyzer. CID #
1642927
the buffer is always big enough.
Alan T. DeKok [Sat, 15 Feb 2025 13:39:39 +0000 (08:39 -0500)]
refactor encode_len. Outcome of CID #
1642928
the encode_len() function doesn't need to be passed a data length,
that information is already in the dbuff.
Refactor and rearrange the code.
Alan T. DeKok [Sat, 15 Feb 2025 13:39:22 +0000 (08:39 -0500)]
len can be zero. CID #
1642930
Alan T. DeKok [Fri, 14 Feb 2025 21:48:12 +0000 (16:48 -0500)]
use FUNCTION_RETURN() rather than function() CID #
1642929
Alan T. DeKok [Fri, 14 Feb 2025 19:35:22 +0000 (14:35 -0500)]
use DER types, now that we can use the DER names
Alan T. DeKok [Fri, 14 Feb 2025 19:29:14 +0000 (14:29 -0500)]
allow protocol-specific data types to over-ride standard ones
Alan T. DeKok [Fri, 14 Feb 2025 14:02:59 +0000 (09:02 -0500)]
make ubsan happy by removing duplication
Alan T. DeKok [Fri, 14 Feb 2025 13:10:58 +0000 (08:10 -0500)]
fix ubsan warning about shifting signed numbers
Alan T. DeKok [Thu, 13 Feb 2025 21:55:27 +0000 (16:55 -0500)]
arrays don't go in header files
Alan T. DeKok [Thu, 13 Feb 2025 21:53:38 +0000 (16:53 -0500)]
use "der_type" and not "subtype"
along with some associated cleanups
Alan T. DeKok [Thu, 13 Feb 2025 21:16:59 +0000 (16:16 -0500)]
add fuzzer for DER
Ethan Thompson [Thu, 13 Feb 2025 20:56:28 +0000 (15:56 -0500)]
added unit tests for DER
ethan-thompson [Wed, 12 Feb 2025 18:35:22 +0000 (13:35 -0500)]
feat: Wrote DER decoder
Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
Alan T. DeKok [Thu, 13 Feb 2025 18:45:32 +0000 (13:45 -0500)]
enforce only int64 integers.
that's all the decoder/encoder can handle right now
Ethan Thompson [Thu, 13 Feb 2025 17:48:15 +0000 (12:48 -0500)]
Add DER encoder
ethan-thompson [Wed, 12 Feb 2025 18:36:08 +0000 (13:36 -0500)]
feat: Wrote dictionaries for DER related things (certificates and CSR's)
Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
ethan-thompson [Wed, 12 Feb 2025 18:34:59 +0000 (13:34 -0500)]
feat: DER dictionary parser and validator
Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
ethan-thompson [Wed, 12 Feb 2025 18:34:33 +0000 (13:34 -0500)]
chore: Added DER to the list of fuzzer binary folders to ignore.
Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
Nick Porter [Thu, 13 Feb 2025 13:54:08 +0000 (13:54 +0000)]
Simplify ldap.authenticate
The module now expects the DN to be found / populated prior to calling
ldap.authenticate.
This is consistent with other authentication methods which expect all
the data to be in the correct place before attempting authenticaiton.
Nick Porter [Thu, 13 Feb 2025 12:14:26 +0000 (12:14 +0000)]
Not all calls to fr_tls_call_push require the session cache
Alan T. DeKok [Thu, 13 Feb 2025 12:16:20 +0000 (07:16 -0500)]
Add more VSAs. Fixes #5511
github-actions[bot] [Thu, 13 Feb 2025 09:34:59 +0000 (09:34 +0000)]
Scheduled fuzzing: Update src/tests/fuzzer-corpus/cbor.tar
Alan T. DeKok [Wed, 12 Feb 2025 20:16:28 +0000 (15:16 -0500)]
ignore auto-generated fuzzer_*.c files, too
Alan T. DeKok [Wed, 12 Feb 2025 20:13:37 +0000 (15:13 -0500)]
remove pdf output
it hasn't worked for a long time. If we need PDFs, then we should
use an Antora to PDF plugin
Alan T. DeKok [Wed, 12 Feb 2025 20:10:46 +0000 (15:10 -0500)]
remove HTML output.
it was there temporarily before we moved to Antora. Now that
antora works, the HTML can be deleted.
Alan T. DeKok [Wed, 12 Feb 2025 20:01:23 +0000 (15:01 -0500)]
remove references to doc/raddb
Alan T. DeKok [Wed, 12 Feb 2025 20:00:56 +0000 (15:00 -0500)]
regenerate
Alan T. DeKok [Wed, 12 Feb 2025 20:00:32 +0000 (15:00 -0500)]
regenerate
Matthew Newton [Wed, 12 Feb 2025 19:39:20 +0000 (19:39 +0000)]
ci: bump crossbuild up from ubuntu 20.04
Matthew Newton [Wed, 12 Feb 2025 19:38:38 +0000 (19:38 +0000)]
ci: bump action version
Matthew Newton [Wed, 12 Feb 2025 19:15:38 +0000 (19:15 +0000)]
ci: couple more fixes to docker-refresh job
Matthew Newton [Wed, 12 Feb 2025 18:42:41 +0000 (18:42 +0000)]
ci: give docker refresh job ability to handle more than one os
Alan T. DeKok [Wed, 12 Feb 2025 15:58:50 +0000 (10:58 -0500)]
add home_server_lifetime, and update docs
Alan T. DeKok [Wed, 12 Feb 2025 15:45:24 +0000 (10:45 -0500)]
warn if the secret changes
Nick Porter [Wed, 12 Feb 2025 15:04:55 +0000 (15:04 +0000)]
Minor fixup to source port hunt & peck
Alan T. DeKok [Wed, 12 Feb 2025 13:08:13 +0000 (08:08 -0500)]
hunt and peck for an open source port
Alan T. DeKok [Wed, 12 Feb 2025 13:02:10 +0000 (08:02 -0500)]
only the replication modes allow for a single source socket
so XLAT_PROXY uses the normal code path
Alan T. DeKok [Wed, 12 Feb 2025 12:29:53 +0000 (07:29 -0500)]
move src_port_start and src_port_end to FD BIO
so that other applications can use them too
Alan T. DeKok [Tue, 11 Feb 2025 21:59:43 +0000 (16:59 -0500)]
these files shouldn't be here
or are no longer needed
Alan T. DeKok [Tue, 11 Feb 2025 20:06:52 +0000 (15:06 -0500)]
let's comment these out by default
Alan T. DeKok [Tue, 11 Feb 2025 19:01:10 +0000 (14:01 -0500)]
add and document src_port_start and src_port_end
which currently only work for mode=dynamic-proxy
Alan T. DeKok [Tue, 11 Feb 2025 15:54:15 +0000 (10:54 -0500)]
add reuseport config, and use common function
Alan T. DeKok [Tue, 11 Feb 2025 16:57:28 +0000 (11:57 -0500)]
notes on "connected" UDP sockets
Nick Porter [Tue, 11 Feb 2025 18:22:27 +0000 (18:22 +0000)]
Add extension parsing to LDAP map URIs
Nick Porter [Tue, 11 Feb 2025 18:07:55 +0000 (18:07 +0000)]
Add freeradiusClientRegion to LDAP schema
Nick Porter [Tue, 11 Feb 2025 11:12:59 +0000 (11:12 +0000)]
Add LDAP xlat test using server side extensions
Nick Porter [Tue, 11 Feb 2025 11:03:24 +0000 (11:03 +0000)]
Add check_attribute to sample ldap module config
Nick Porter [Tue, 11 Feb 2025 10:59:34 +0000 (10:59 +0000)]
Add ORDERING to freeradiusClientIdentifier
To allow for server side sorting
Nick Porter [Tue, 11 Feb 2025 10:58:21 +0000 (10:58 +0000)]
Invalid IP address family is an error
Nick Porter [Tue, 11 Feb 2025 08:59:00 +0000 (08:59 +0000)]
Define DO_NOT_RESPOND code for tls
Allows use of `handled` in verify certificate policies
Alan T. DeKok [Mon, 10 Feb 2025 20:28:37 +0000 (15:28 -0500)]
update counters when nuking the pending list
Alan T. DeKok [Mon, 10 Feb 2025 20:08:38 +0000 (15:08 -0500)]
reset the counter when there are no pending clients
Alan T. DeKok [Mon, 10 Feb 2025 19:47:35 +0000 (14:47 -0500)]
tweak pending tracking
Alan T. DeKok [Mon, 10 Feb 2025 19:33:06 +0000 (14:33 -0500)]
rate-limit complaints for injected packets
when we open a new connected UDP socket, the main socket might
still have some packets in the inbound kernel queue. We normally
read those, and push them to the connected socket. But if the
connected socket / message queue is full, then we complain loudly.
Alan T. DeKok [Mon, 10 Feb 2025 19:27:39 +0000 (14:27 -0500)]
add more error messages
Alan T. DeKok [Mon, 10 Feb 2025 17:48:02 +0000 (12:48 -0500)]
add IP address to timer message
Nick Porter [Mon, 10 Feb 2025 15:44:46 +0000 (15:44 +0000)]
Typo
Nick Porter [Mon, 10 Feb 2025 15:20:30 +0000 (15:20 +0000)]
Protect against too many extensions in LDAP URI
Nick Porter [Mon, 10 Feb 2025 15:17:43 +0000 (15:17 +0000)]
Terminate after each control is created
So error clearup, will find a terminated array of controls
Nick Porter [Mon, 10 Feb 2025 14:12:55 +0000 (14:12 +0000)]
Add parsing of vlv extension in LDAP URIs
Nick Porter [Mon, 10 Feb 2025 14:03:21 +0000 (14:03 +0000)]
Ensure ldap controls are freed on error
Nick Porter [Mon, 10 Feb 2025 13:58:42 +0000 (13:58 +0000)]
Use sbuff for parsing LDAP URI extensions
Nick Porter [Mon, 10 Feb 2025 11:48:31 +0000 (11:48 +0000)]
Ensure server controls start of NULL terminated
Alan T. DeKok [Sun, 9 Feb 2025 21:07:53 +0000 (16:07 -0500)]
check rule exists
Alan T. DeKok [Sun, 9 Feb 2025 17:09:49 +0000 (12:09 -0500)]
one more pass through messages for dynamic clients
Alan T. DeKok [Sun, 9 Feb 2025 17:10:22 +0000 (12:10 -0500)]
qualify listener instance names a bit more cleanly
which doesn't matter now, but may matter when we need to have
better debug messages about them.
Alan T. DeKok [Sun, 9 Feb 2025 17:09:29 +0000 (12:09 -0500)]
be more forgiving for debug messages
Alan T. DeKok [Sun, 9 Feb 2025 13:55:40 +0000 (08:55 -0500)]
Revert "duplicate of FAQ, and not linked from anywhere"
This reverts commit
65dc4633fc6c62e5356754d23e8321cb6429fa5b .