Tor  0.4.7.0-alpha-dev
or_handshake_certs_st.h
Go to the documentation of this file.
1 /* Copyright (c) 2001 Matej Pfajfar.
2  * Copyright (c) 2001-2004, Roger Dingledine.
3  * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
4  * Copyright (c) 2007-2021, The Tor Project, Inc. */
5 /* See LICENSE for licensing information */
6 
7 /**
8  * @file or_handshake_certs_st.h
9  * @brief OR handshake certs structure
10  **/
11 
12 #ifndef OR_HANDSHAKE_CERTS_ST
13 #define OR_HANDSHAKE_CERTS_ST
14 
15 struct tor_x509_cert_t;
16 
17 /** Structure to hold all the certificates we've received on an OR connection
18  */
20  /** True iff we originated this connection. */
22  /** The cert for the 'auth' RSA key that's supposed to sign the AUTHENTICATE
23  * cell. Signed with the RSA identity key. */
24  struct tor_x509_cert_t *auth_cert;
25  /** The cert for the 'link' RSA key that was used to negotiate the TLS
26  * connection. Signed with the RSA identity key. */
27  struct tor_x509_cert_t *link_cert;
28  /** A self-signed identity certificate: the RSA identity key signed
29  * with itself. */
30  struct tor_x509_cert_t *id_cert;
31  /** The Ed25519 signing key, signed with the Ed25519 identity key. */
32  struct tor_cert_st *ed_id_sign;
33  /** A digest of the X509 link certificate for the TLS connection, signed
34  * with the Ed25519 siging key. */
35  struct tor_cert_st *ed_sign_link;
36  /** The Ed25519 authentication key (that's supposed to sign an AUTHENTICATE
37  * cell) , signed with the Ed25519 siging key. */
38  struct tor_cert_st *ed_sign_auth;
39  /** The Ed25519 identity key, crosssigned with the RSA identity key. */
40  uint8_t *ed_rsa_crosscert;
41  /** The length of <b>ed_rsa_crosscert</b> in bytes */
43 };
44 
45 #endif /* !defined(OR_HANDSHAKE_CERTS_ST) */
struct tor_cert_st * ed_id_sign
struct tor_cert_st * ed_sign_link
struct tor_x509_cert_t * link_cert
struct tor_cert_st * ed_sign_auth
struct tor_x509_cert_t * auth_cert
struct tor_x509_cert_t * id_cert