Commit Graph

46 Commits

Author SHA1 Message Date
Jason Rhinelander
b597ae5a94 "Refactor" aka delete Crypto/CryptoManager
- Get rid of CryptoManager.
- Get rid of Crypto.
- Move all the Crypto instance methods to llarp::crypto functions.
  (None of them needed to be methods at all, so this is simple).
- Move sodium/ntru initialization into static initialization.
- Add llarp::csrng, which is an available llarp::CSRNG instance which is
  a bit easier than needing to construct a `CSRNG rng{};` in various
  places.
- Various related small simplifications/cleanups.
2024-01-31 07:54:12 -08:00
Jeff Becker
4508c59cd3
redo includes to be consistent 2023-01-20 13:26:22 -05:00
Jason Rhinelander
c82ade2d81
Make test code work with new logging 2022-07-18 12:59:13 -03:00
Jeff
7a8410b375 make more platforms ignore libcrypt 2022-04-20 15:26:39 -04:00
Jeff
ee12ba51d5 disable hashed auth on windows 2022-04-20 15:26:39 -04:00
Jeff
5050cd0299 add hashed password capability to endpoint auth by file 2022-04-20 15:26:39 -04:00
Jeff Becker
60bfdacc23
get rid of the rest of gtest/gmock 2021-03-04 15:41:53 -05:00
lyyn
ece91e87fc
Migrate tests from gtest to catch2 2021-03-04 15:41:42 -05:00
Jeff
12eb32a816
add conf.d directory for config overrides (#1410)
* add conf.d directory for config overrides

* refactor llarp::Config

* add explicit constructor with datadir as parameter
* have all config files be passed as std::optional
* make Config::LoadDefault private and use std::optional in Config::Load to remove ambiguity
* update rest of codebase to reflect above changes

* fix pybind

* rename bootstrap config skipBootstrap to seednode as it's more descriptive
* make seednode configurable
* make pybind layer compile
* make pybind layer run
2020-10-21 08:58:08 -04:00
Jeff
21930cf667
LNS (#1342)
* initial relay side lns

* fix typo

* add reserved names and refactor test for dns

* lns name decryption

* all wired up (allegedly)

* refact to use service::EncryptedName for LNS responses to include nonce with ciphertext

* fully rwemove tag_lookup_job

* replace lns cache with DecayingHashTable

* check for lns name validity against the following rules:

* not localhost.loki, loki.loki, or snode.loki

* if it contains no dash then max 32 characters long, not including the .loki tld (and also assuming a leading subdomain has been stripped)

* These are from general DNS requirements, and also enforced in
registrations:

* Must be all [A-Za-z0-9-]. (A-Z will be lower-cased by the RPC call).

* cannot start or end with a -

* max 63 characters long if it does contain a dash

* cannot contain -- in the third and fourth characters unless it starts with xn--

* handle timeout in name lookup job by calling the right handler with std::nullopt
2020-09-17 15:18:08 -04:00
Stephen Shelton
1497b829bd
Ignore our self.signed file if we're a client 2020-06-04 11:05:23 -06:00
Stephen Shelton
807bfc5302
Initialize Config with LoadConfig in all key manager tests 2020-05-20 15:54:23 -06:00
Stephen Shelton
fa6845b206
Use global RC file paths instead of redefining them 2020-05-20 15:54:23 -06:00
Stephen Shelton
ac225eb65e
Testing: explicitly initialize variable 2020-05-20 15:54:22 -06:00
Stephen Shelton
7167b4ad02
Properly initialize config in unit test 2020-05-20 15:54:21 -06:00
Stephen Shelton
733efbab40
Reflect removal of accessors on config structs 2020-04-07 14:20:31 -06:00
Jason Rhinelander
8aacc2d317 Update deprecated gtest macros
gtest ~renamed INSTANTIATE_TEST_CASE_P to INSTANTIATE_TEST_SUITE_P and
added a "backwards compatibility" shim, but the shim fails at compile
time if you pass in an empty fourth argument.
2020-02-13 15:15:36 -04:00
Jeff
186dba45cb
Merge pull request #956 from notlesh/km-testing
Implement KeyManager tests
2020-02-13 14:04:42 -05:00
Thomas Winget
a487982c49 initial implementation of blinded sign -- not working yet 2020-01-31 12:05:20 -04:00
Jason Rhinelander
860c5efd47 Derived key fixes
The reason things weren't working here is because libsodium does
something completely unintuitive and called the seed the "secret key"
when it isn't, it's the seed.

This adds a new PrivateKey class (alongside the existing SecretKey and
PubKey) that holds just a private key value but no seed -- which we need
to do because there is no way we can get a seed after calculating a
derived keypair.

With these changes, we now generate exactly the same keys and subkeys as
Tor (and a new test case uses values generated in Tor to verify this).

This is incomplete -- the subkey signing code is still not implemented;
it has to be adapted to create a signature from a PrivateKey rather than
a SecretKey which will probably requiring working around/reimplementing
some of what libsodium does for creating a signature since it expects
"secret keys" i.e. the seed.
2020-01-30 12:34:05 -04:00
Jeff Becker
99eb7726ff
initial dht key blinding 2020-01-27 16:30:41 -05:00
Stephen Shelton
c303d438aa Prefer ASSERT_EQ over ASSERT_TRUE when appropriate 2019-12-11 08:51:07 -07:00
Stephen Shelton
ef075a53dd Implement KeyManager tests 2019-12-09 12:29:33 -07:00
Jeff Becker
098915bb8e
add check for identity key validity 2019-11-26 20:40:55 -05:00
Jeff Becker
2cb15e7e0b
enable see2 when used 2019-10-30 12:45:51 -04:00
Jeff Becker
f38240f945
devendor libsodium by default except for android 2019-10-29 12:01:58 -04:00
Jeff Becker
01c4a9c287
revert a few things 2019-10-28 10:16:00 -04:00
jeff
1cdd9ba13a add unit test for identity_keygen 2019-10-23 08:43:37 -04:00
Michael
a62655d501
Move tests to use top-level LlarpTest 2019-05-28 20:45:09 +01:00
Michael
491fee206b
Port code to use CryptoManager over passing Crypto pointers 2019-05-28 20:45:08 +01:00
Rick V
b1fa597fa0
include what i use 2019-04-11 10:36:12 -05:00
Jeff Becker
230e84c742
make signing work 2019-03-28 15:15:20 -04:00
Michael
656843e9a3
Fix issues on debian 2019-02-12 01:19:38 +00:00
Rick V
69189214e0
rebase on current upstream staging 2019-02-06 19:53:12 -06:00
Rick V
3931b7d9d7
implement missing libabyss functionality
remove some finished TODOs
2019-02-06 19:53:11 -06:00
Rick V
f277f368a1
win32 g++ is set to c++17 by default, so we use the _real_ string_view class 2019-02-06 19:53:06 -06:00
Michael
1ba6507a2f
Tests for dht::ServiceAddressLookup 2019-02-05 21:35:46 +00:00
Michael
b1213c7a7c
Tests for dht::TagLookup 2019-02-05 21:18:38 +00:00
Michael
47380ba64b
Simplify some code 2019-02-03 00:31:10 +00:00
Michael
f3b0af9d2f
Create CopyableBuffer type 2019-02-02 23:21:35 +00:00
Ryan Tharp
f20ac0f6e9
Merge branch 'staging' into crypto_interface 2019-01-29 13:59:05 -08:00
Ryan Tharp
42873a088f fix build 2019-01-29 03:11:00 -08:00
Michael
f24f554a01
Convert llarp::Crypto into an abstract base class 2019-01-26 15:40:58 +00:00
Jeff Becker
d89e58199a
add initial identity key seed stuff
add more kubernetes stuff

make shared library installed if built
2019-01-21 10:45:18 -05:00
Michael
fec75125f4
Add tests for crypto/types 2019-01-15 23:33:16 +00:00
Michael
04e0fe3ad7
Move crypto code to a subdirectory 2019-01-13 15:06:16 +00:00