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
Sadie Powell
bb94f286f5
Also use drop confirmation codes for nicknames.
2024-03-07 21:18:06 +00:00
Sadie Powell
86e3556438
Fix some misc bugs in the InspIRCd protocol module.
...
Closes #373 .
2024-03-07 20:55:22 +00:00
Sadie Powell
12214bee72
Add the initial version of the Atheme database importer.
2024-03-07 18:50:36 +00:00
Sadie Powell
08a35231ef
Merge branch '2.0' into 2.1.
2024-03-04 12:10:22 +00:00
Sadie Powell
9649dc78a1
When using ldap/sql auth prevent displays expiring before their group.
...
This prevents zombie accounts from being left around that can't be
authenticated to.
Closes #355 .
2024-03-04 12:08:28 +00:00
Sadie Powell
1a8ae513b4
Add NickAlias::GetVhostMask for getting the vident@vhost.
2024-03-04 11:09:50 +00:00
Sadie Powell
e0ac5509b4
Consolidate some header files.
2024-02-29 19:32:44 +00:00
Sadie Powell
893bbf9251
Fix some oversights.
2024-02-29 17:15:15 +00:00
Sadie Powell
5441093211
Merge branch '2.0' into 2.1.
2024-02-29 16:32:14 +00:00
Sadie Powell
ee7455daa8
Fix a copy/paste error in webcpanel.
2024-02-29 16:27:24 +00:00
Sadie Powell
579af3c442
Rip out ns_access and related code.
...
This is wildly insecure and has been disabled by default for at
least a decade.
2024-02-29 16:14:15 +00:00
Sadie Powell
25bdcfcbc4
Add names for the numerics used by the core.
2024-02-29 13:07:14 +00:00
Sadie Powell
5f735b2570
Fix matching extbans on InspIRCd and implement missing matchers.
2024-02-27 20:33:43 +00:00
Sadie Powell
9c80f9e34e
Replace OnChannelUnban with an IRCDProto function.
...
This was added for (and is only used for) for unbanning users on
UnrealIRCd which is an IRCd protocol function so it should be in
IRCDProto.
2024-02-27 13:40:47 +00:00
Sadie Powell
b5b3c74477
Make functions that don't use this static.
2024-02-27 10:48:55 +00:00
Sadie Powell
73d4ac6de0
Remove redundant uses of const.
2024-02-27 10:34:27 +00:00
Sadie Powell
7640fad30c
Simplify several boolean expressions.
2024-02-27 10:19:44 +00:00
Sadie Powell
642e68f53a
Fix sending numerics on InspIRCd.
2024-02-26 23:57:55 +00:00