Sadie Powell
b8cd00b412
Merge branch '2.0' into 2.1.
2024-03-12 16:50:30 +00:00
Sadie Powell
f4bd43e898
Add a workaround for users matching expired sqlines.
...
I'll fix this properly in 2.1 because I don't want to make big
changes to 2.0.
Closes #384 .
2024-03-12 16:47:57 +00:00
Sadie Powell
7d7664444a
Fix expiring forbids.
2024-03-12 16:26:33 +00:00
Sadie Powell
1a8bbd6004
Respect --noexpire in cs_suspend and ns_suspend.
2024-03-12 14:43:12 +00:00
Sadie Powell
e725c880a9
Fix expiring channel suspensions.
...
Closes #386 .
2024-03-12 14:12:37 +00:00
Sadie Powell
f5abcd1c4c
Fix expiring nick suspensions.
...
Closes #376 .
2024-03-12 14:02:16 +00:00
Sadie Powell
1986aa6581
Fix duplicate messages when synconset/syncongroup is set.
...
Closes #366 .
2024-03-12 13:26:25 +00:00
Sadie Powell
b52e1b2b02
Implement support for challenge authentication on InspIRCd.
2024-03-12 13:19:20 +00:00
Sadie Powell
54719fbfc6
Allow protocol modules to declare that they have no line/mode limit.
...
InspIRCd allows us to send infinite length lines and mode changes
and will restack before sending to users.
2024-03-12 12:39:33 +00:00
Sadie Powell
06add0e5fc
Simplify limit extraction code.
2024-03-12 12:24:02 +00:00
Sadie Powell
63d682314b
Merge branch '2.0' into 2.1.
2024-03-12 11:53:14 +00:00
Sadie Powell
1a6060ac5b
Fix sending SVSTOPIC when topiclock is loaded on InspIRCd.
2024-03-12 11:46:41 +00:00
Sadie Powell
a302f8f1be
Refactor sending vhosts in the InspIRCd protocol module.
2024-03-12 11:43:21 +00:00
Sadie Powell
04e1a4f5c8
Add a protocol module function for extracting timestamps.
2024-03-12 11:02:08 +00:00
Sadie Powell
1538909ac0
Add ProtocolException and use it to send fatal errors.
2024-03-12 00:17:49 +00:00
Sadie Powell
a15f165a1d
Fix an inverted condition in enc_bcrypt.
2024-03-12 00:17:49 +00:00
Sadie Powell
77435dd0d9
Merge branch '2.0' into 2.1.
2024-03-11 22:43:29 +00:00
Sadie Powell
6f57907416
Fix the TIME message on InspIRCd.
2024-03-11 22:38:15 +00:00
Sadie Powell
7c1cfd2849
Fix comparing passwords in enc_sha256.
2024-03-11 21:07:39 +00:00
Sadie Powell
259b10b83a
Fix some InspIRCd 1206 protocol compatibility issues.
2024-03-11 20:27:30 +00:00
Sadie Powell
02355546ff
Reject registrations and password changes if password encryption fails.
2024-03-11 19:39:47 +00:00
Sadie Powell
6ad3430ac4
Clean up some dead code in ns_register.
2024-03-11 19:30:57 +00:00
Sadie Powell
29e7674e56
Replace convertTo/stringify with non-throwing alternatives.
...
Having these throw is terrible for ergonomics and there are loads
of places where the exception was either silently ignored or not
handled at all. Having a function which returns an optional and
another that returns a default works a lot better imo.
2024-03-11 19:17:29 +00:00
Bram Matthys
b09632d1c3
Fix OS SQLINE expiry with UnrealIRCd
2024-03-11 18:30:55 +00:00
Sadie Powell
e2df7d4d01
Ensure that verify-only encryption modules can never encrypt passwords.
...
If another module was loaded first and then later unloaded it was
possible for a deprecated module to encrypt passwords.
2024-03-10 20:46:03 +00:00
Sadie Powell
9a984a8148
Implement verify-only support for raw SHA-2 passwords.
2024-03-10 20:46:03 +00:00
Sadie Powell
fb9c8950ed
Refactor the enc_bcrypt module and expose an encryption provider.
2024-03-10 20:46:03 +00:00
Sadie Powell
a849a81ac3
Refactor the enc_old module.
2024-03-10 20:28:00 +00:00
Sadie Powell
f919bb0748
Add self-tests to the encryption providers.
2024-03-10 20:20:24 +00:00
Sadie Powell
9a8cac060d
Add support for encrypting passwords with the Argon2 algorithm.
...
Closes #369 .
2024-03-10 15:09:38 +00:00
Sadie Powell
0353338436
Replace the custom SHA-2 implementation in enc_sha256.
2024-03-10 12:27:49 +00:00
Sadie Powell
defb8348a7
Move the HMAC function to the encryption header.
...
This will be useful for doing challenge authentication on InspIRCd.
2024-03-09 22:51:23 +00:00
Sadie Powell
1b86665d81
Add a stats category for password encryption algorithms.
2024-03-09 22:22:56 +00:00
Sadie Powell
6e0f0b8896
Add the enc_sha2 module which hashes passwords with HMAC-SHA-2.
...
Using HMAC instead of changing the IV is a lot safer.
2024-03-09 22:22:56 +00:00
Sadie Powell
2c5b2c649e
Convert enc_md5 to use a vendored MD5 library.
2024-03-09 22:22:56 +00:00
Sadie Powell
a6bc4cab9d
Misc improvements to the encryption API.
2024-03-09 22:22:56 +00:00
Sadie Powell
39d288f99f
Rename hash_map to unordered_map to match the underlying container.
2024-03-09 22:22:56 +00:00
Bram Matthys
51e95d72e3
Enable message-tags support for UnrealIRCd
2024-03-09 14:53:38 +00:00
Sadie Powell
12486f6cee
Tweak the config default limits slightly.
2024-03-09 11:43:38 +00:00
Sadie Powell
891375baca
Use a separate CAPAB handler on InspIRCd to avoid pollution.
2024-03-08 19:05:12 +00:00
Sadie Powell
41a295202e
Only enable InspIRCd parser logging when using --protocoldebug.
2024-03-08 18:17:17 +00:00
Sadie Powell
722c5b7d61
Implement support for the InspIRCd 1206 protocol.
2024-03-08 17:12:44 +00:00
Sadie Powell
52216b56a1
Merge branch '2.0' into 2.1.
2024-03-08 17:05:49 +00:00
Sadie Powell
cd614831de
Fix feature detection on InspIRCd.
2024-03-08 16:49:55 +00:00
Sadie Powell
46b7064834
Keep the InspIRCd protocol version around for later use.
2024-03-08 11:07:30 +00:00
Sadie Powell
bb8df01e25
Move some modules which can be built by default out of extra.
2024-03-07 23:18:08 +00:00
Sadie Powell
16700b0e30
Remove a guarantee that may not necessarily be correct.
2024-03-07 23:09:25 +00:00
Sadie Powell
4e04a11995
Consistently use email instead of e-mail.
2024-03-07 22:52:41 +00:00
Sadie Powell
464e6b8010
Use the C++11 random number generator instead of rand().
...
This is safer, faster, and doesn't require seeding.
2024-03-07 22:52:41 +00:00
Sadie Powell
3272c1bbc6
Require new accounts to have email addresses.
2024-03-07 22:25:32 +00:00