Nick Mathewson
236e1f31d9
Fix some compilation warnings in {test_,}hs_descriptor.c
...
Nothing big: just some const char[]s that should have been static,
and some integer truncation warnings.
Warnings not in any released Tor.
2017-03-13 22:36:47 -04:00
George Kadianakis
61f318b1b0
prop224: Rename padding size def to something less confusing.
...
People felt it could refer to the descriptor header section instead of
the plaintext of the superencrypted section.
2017-03-13 15:58:28 +02:00
George Kadianakis
e6b03151fb
prop224: Add unittests for decode_superencrypted().
2017-03-13 15:55:21 +02:00
George Kadianakis
163596d9c2
prop224: Move some utility crypto funcs to the top of the file.
2017-03-13 15:55:21 +02:00
George Kadianakis
d0fe199269
prop224: Implement decoding of superencrypted HS descriptor.
...
[Consider starting review from desc_decrypt_all() ]
2017-03-13 15:55:20 +02:00
George Kadianakis
b2e37b87a7
prop224: Implement encoding of superencrypted HS descriptor.
...
Also, relaxed the checks of encrypted_data_length_is_valid() since now
only one encrypted section has padding requirements and we don't
actually care to check that all the padding is there.
Consider starting code review from function encode_superencrypted_data().
2017-03-13 15:55:20 +02:00
George Kadianakis
bb602f6197
prop224: Prepare for superencrypted HS descriptors.
...
- Refactor our HS desc crypto funcs to be able to differentiate between
the superencrypted layer and the encrypted layer so that different
crypto constants and padding is used in each layer.
- Introduce some string constants.
- Add some comments.
2017-03-13 15:49:14 +02:00
George Kadianakis
f8ac4bb9fd
prop224: Rename desc->encrypted_blob to desc->superencrypted_blob
2017-02-24 16:37:24 +02:00
George Kadianakis
6d71eda263
prop224: Rename auth_required HS desc field to intro_auth_required.
...
And remove "password" type from the list of intro auths.
2017-02-24 16:37:24 +02:00
Nick Mathewson
ac3b559e93
Merge branch 'bug20569_030_02_squashed'
2017-01-11 12:52:52 -05:00
David Goulet
870b5e2227
hs: Use AES-256 for v3 descriptor
...
That key size is taken from proposal 224 thus specified in the protocol.
Closes #20569
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-01-11 12:52:34 -05:00
Nick Mathewson
7892683e7e
Merge remote-tracking branch 'asn/bug20852_v1'
2017-01-11 10:14:50 -05:00
George Kadianakis
e1d7661412
Max HS descriptor size is now 50kb and also consensus param.
2017-01-09 15:02:56 +02:00
George Kadianakis
7456677a50
Make outter (plaintext) layer of HS desc conform to prop224.
...
This basically means changing the 'encrypted' field to 'superencrypted'.
2016-12-23 15:07:21 +02:00
J. Ryan Stinnett
19cf074f4d
hs: Remove private keys from hs_desc_plaintext_data_t.
...
Since both the client and service will use that data structure to store the
descriptor decoded data, only the public keys are common to both.
Fixes #20572 .
Signed-off-by: David Goulet <dgoulet@torproject.org>
2016-12-16 12:48:33 -05:00
Nick Mathewson
a7762930c3
Merge remote-tracking branch 'dgoulet/ticket20568_030_01'
2016-12-01 09:23:36 -05:00
David Goulet
c82881a235
hs: Remove pointless NULL check found by Coverity
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2016-11-10 12:32:18 -05:00
David Goulet
a3bbb9ce77
fixup! Move encode_cert to torcert.c and rename it to tor_cert_encode_ed22519()
2016-11-10 11:00:59 -05:00
Neel Chauhan
9f74f8f732
Move encode_cert to torcert.c and rename it to tor_cert_encode_ed22519()
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2016-11-10 11:00:50 -05:00
David Goulet
34f14a35b6
hs: Add single-onion-service line to v3 descriptor
...
This field indicates if the service is a Single Onion Service if present in
the descriptor.
Closes #19642
Signed-off-by: David Goulet <dgoulet@torproject.org>
2016-11-08 13:22:42 -05:00
Nick Mathewson
0b787b1daf
Workaround for warning in desc_encode_v3().
...
Fixes bug 20581.
2016-11-06 20:27:14 -05:00
Nick Mathewson
f45a581486
Fix some 32-bit warnings and clang warnings
2016-11-04 15:24:30 -04:00
Nick Mathewson
d16b4b3e48
Fix memory leaks in hs_descriptor/decode_descriptor and in encode_enc_key()
2016-11-04 14:27:45 -04:00
Nick Mathewson
a4291eef5a
Expose desc_intro_point_free to the tests, and use it.
...
Also fix another couple of leaks.
2016-11-04 14:22:04 -04:00
David Goulet
6ac85ca2b4
prop224: Fix crosscert memory leaks on error
2016-11-04 14:16:42 -04:00
Nick Mathewson
29ae8dcf96
Fix a bunch of leaks in hs_cache/upload_and_download_hs_desc
2016-11-04 14:13:30 -04:00
Nick Mathewson
6847b9f6af
Fix make check-spaces
2016-11-04 14:00:08 -04:00
Nick Mathewson
09c750cce3
Check the correct key when checking RSA crosscert in hs_descriptor.c
...
Note that the "signed key" in the signing key certificate is the
signing key. The "signing key" in the signing key certificate is
the key that signs the certificate -- that is, the blinded key.
2016-11-04 13:49:05 -04:00
Nick Mathewson
d88046a80d
Fix compilation.
2016-11-04 13:26:56 -04:00
Nick Mathewson
c189cb5cc2
Use a better salted-MAC construction in build_mac()
2016-11-04 13:15:28 -04:00
David Goulet
1263f74a12
prop224: Rename cert type to follow naming convention
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2016-11-04 10:32:50 -04:00
George Kadianakis
d795ed5871
Make check-spaces happy :)
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
Signed-off-by: George Kadianakis <desnacked@riseup.net>
2016-11-04 10:32:50 -04:00
David Goulet
025610612d
prop224: Directory cache support
...
This implements the proposal 224 directory descriptor cache store and lookup
functionalities. Furthermore, it merges the OOM call for the HSDir cache with
current protocol v2 and the new upcoming v3.
Add hs_cache.{c|h} with store/lookup API.
Closes #18572
Signed-off-by: David Goulet <dgoulet@torproject.org>
Signed-off-by: George Kadianakis <desnacked@riseup.net>
2016-11-04 10:31:35 -04:00
David Goulet
473f99bf7b
test: Add prop224 descriptor unit tests
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
Signed-off-by: George Kadianakis <desnacked@riseup.net>
2016-11-04 10:29:28 -04:00
David Goulet
cff1fd63f1
prop224: Descriptor decoding implementation
...
Closes #18571
Signed-off-by: David Goulet <dgoulet@torproject.org>
Signed-off-by: George Kadianakis <desnacked@riseup.net>
2016-11-04 10:29:28 -04:00
David Goulet
91b5d0789f
prop224: Descriptor encoding implementation
...
Add hs_descriptor.{c|h} with the needed ABI to represent a descriptor and
needed component.
Signed-off-by: David Goulet <dgoulet@torproject.org>
Signed-off-by: George Kadianakis <desnacked@riseup.net>
2016-11-04 10:29:27 -04:00