or_handshake_certs_st.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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-2018, The Tor Project, Inc. */
  5. /* See LICENSE for licensing information */
  6. #ifndef OR_HANDSHAKE_CERTS_ST
  7. #define OR_HANDSHAKE_CERTS_ST
  8. /** Structure to hold all the certificates we've received on an OR connection
  9. */
  10. struct or_handshake_certs_t {
  11. /** True iff we originated this connection. */
  12. int started_here;
  13. /** The cert for the 'auth' RSA key that's supposed to sign the AUTHENTICATE
  14. * cell. Signed with the RSA identity key. */
  15. tor_x509_cert_t *auth_cert;
  16. /** The cert for the 'link' RSA key that was used to negotiate the TLS
  17. * connection. Signed with the RSA identity key. */
  18. tor_x509_cert_t *link_cert;
  19. /** A self-signed identity certificate: the RSA identity key signed
  20. * with itself. */
  21. tor_x509_cert_t *id_cert;
  22. /** The Ed25519 signing key, signed with the Ed25519 identity key. */
  23. struct tor_cert_st *ed_id_sign;
  24. /** A digest of the X509 link certificate for the TLS connection, signed
  25. * with the Ed25519 siging key. */
  26. struct tor_cert_st *ed_sign_link;
  27. /** The Ed25519 authentication key (that's supposed to sign an AUTHENTICATE
  28. * cell) , signed with the Ed25519 siging key. */
  29. struct tor_cert_st *ed_sign_auth;
  30. /** The Ed25519 identity key, crosssigned with the RSA identity key. */
  31. uint8_t *ed_rsa_crosscert;
  32. /** The length of <b>ed_rsa_crosscert</b> in bytes */
  33. size_t ed_rsa_crosscert_len;
  34. };
  35. #endif