summaryrefslogtreecommitdiff
path: root/src/or/hs_ident.h
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2017-07-24 13:45:01 -0400
committerDavid Goulet <dgoulet@torproject.org>2017-07-25 13:11:40 -0400
commit2b9575a9c0ecf6e3880654be16d103326788cecf (patch)
tree3eaedadcf24e358e9420111effc4648464f8e807 /src/or/hs_ident.h
parent3e537c6fe4b10b72079524829e13de65f3400c2b (diff)
downloadtor-2b9575a9c0ecf6e3880654be16d103326788cecf.tar.gz
tor-2b9575a9c0ecf6e3880654be16d103326788cecf.zip
prop224: Update hs identifier circuit
Remove the legacy intro point key because both service and client only uses the ed25519 key even though the intro point chosen is a legacy one. This also adds the CLIENT_PK key that is needed for the ntor handshake. Signed-off-by: David Goulet <dgoulet@torproject.org>
Diffstat (limited to 'src/or/hs_ident.h')
-rw-r--r--src/or/hs_ident.h21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/or/hs_ident.h b/src/or/hs_ident.h
index 8a7c3598cf..ca1fa3d707 100644
--- a/src/or/hs_ident.h
+++ b/src/or/hs_ident.h
@@ -52,27 +52,30 @@ typedef struct hs_ident_circuit_t {
* set when an object is initialized in its constructor. */
hs_ident_circuit_type_t circuit_type;
- /* (Only intro point circuit) Which type of authentication key this
- * circuit identifier is using. */
- hs_auth_key_type_t auth_key_type;
+ /* (All circuit) Introduction point authentication key. It's also needed on
+ * the rendezvous circuit for the ntor handshake. */
+ ed25519_public_key_t intro_auth_pk;
- /* (Only intro point circuit) Introduction point authentication key. In
- * legacy mode, we use an RSA key else an ed25519 public key. */
- crypto_pk_t *auth_rsa_pk;
- ed25519_public_key_t auth_ed25519_pk;
+ /* (Only client rendezvous circuit) Introduction point encryption public
+ * key. We keep it in the rendezvous identifier for the ntor handshake. */
+ curve25519_public_key_t intro_enc_pk;
/* (Only rendezvous circuit) Rendezvous cookie sent from the client to the
* service with an INTRODUCE1 cell and used by the service in an
* RENDEZVOUS1 cell. */
uint8_t rendezvous_cookie[HS_REND_COOKIE_LEN];
- /* (Only rendezvous circuit) The HANDSHAKE_INFO needed in the RENDEZVOUS1
- * cell of the service. The construction is as follows:
+ /* (Only service rendezvous circuit) The HANDSHAKE_INFO needed in the
+ * RENDEZVOUS1 cell of the service. The construction is as follows:
* SERVER_PK [32 bytes]
* AUTH_MAC [32 bytes]
*/
uint8_t rendezvous_handshake_info[CURVE25519_PUBKEY_LEN + DIGEST256_LEN];
+ /* (Only client rendezvous circuit) Client ephemeral keypair needed for the
+ * e2e encryption with the service. */
+ curve25519_keypair_t rendezvous_client_kp;
+
/* (Only rendezvous circuit) The NTOR_KEY_SEED needed for key derivation for
* the e2e encryption with the client on the circuit. */
uint8_t rendezvous_ntor_key_seed[DIGEST256_LEN];