1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /* Copyright (c) 2014-2018, The Tor Project, Inc. */
- /* See LICENSE for licensing information */
- #ifndef TOR_KEYPIN_H
- #define TOR_KEYPIN_H
- #include "lib/testsupport/testsupport.h"
- int keypin_check_and_add(const uint8_t *rsa_id_digest,
- const uint8_t *ed25519_id_key,
- const int replace_existing_entry);
- int keypin_check(const uint8_t *rsa_id_digest,
- const uint8_t *ed25519_id_key);
- int keypin_open_journal(const char *fname);
- int keypin_close_journal(void);
- int keypin_load_journal(const char *fname);
- void keypin_clear(void);
- int keypin_check_lone_rsa(const uint8_t *rsa_id_digest);
- #define KEYPIN_FOUND 0
- #define KEYPIN_ADDED 1
- #define KEYPIN_MISMATCH -1
- #define KEYPIN_NOT_FOUND -2
- #ifdef KEYPIN_PRIVATE
- /**
- * In-memory representation of a key-pinning table entry.
- */
- typedef struct keypin_ent_st {
- HT_ENTRY(keypin_ent_st) rsamap_node;
- HT_ENTRY(keypin_ent_st) edmap_node;
- /** SHA1 hash of the RSA key */
- uint8_t rsa_id[DIGEST_LEN];
- /** Ed2219 key. */
- uint8_t ed25519_key[DIGEST256_LEN];
- } keypin_ent_t;
- STATIC keypin_ent_t * keypin_parse_journal_line(const char *cp);
- STATIC int keypin_load_journal_impl(const char *data, size_t size);
- MOCK_DECL(STATIC void, keypin_add_entry_to_map, (keypin_ent_t *ent));
- #endif /* defined(KEYPIN_PRIVATE) */
- #endif /* !defined(TOR_KEYPIN_H) */
|