diff options
Diffstat (limited to 'src/include/ipxe/tls.h')
| -rw-r--r-- | src/include/ipxe/tls.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/include/ipxe/tls.h b/src/include/ipxe/tls.h index febbdc589..8b03579cc 100644 --- a/src/include/ipxe/tls.h +++ b/src/include/ipxe/tls.h @@ -18,6 +18,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include <ipxe/sha1.h> #include <ipxe/sha256.h> #include <ipxe/x509.h> +#include <ipxe/privkey.h> #include <ipxe/pending.h> #include <ipxe/iobuf.h> #include <ipxe/tables.h> @@ -255,6 +256,11 @@ struct tls_session { /** Server name */ const char *name; + /** Root of trust */ + struct x509_root *root; + /** Private key */ + struct private_key *key; + /** Session ID */ uint8_t id[32]; /** Length of session ID */ @@ -319,13 +325,17 @@ struct tls_connection { struct digest_algorithm *handshake_digest; /** Digest algorithm context used for handshake verification */ uint8_t *handshake_ctx; - /** Client certificate (if used) */ - struct x509_certificate *cert; + /** Private key */ + struct private_key *key; + /** Client certificate chain (if used) */ + struct x509_chain *certs; /** Secure renegotiation flag */ int secure_renegotiation; /** Verification data */ struct tls_verify_data verify; + /** Root of trust */ + struct x509_root *root; /** Server certificate chain */ struct x509_chain *chain; /** Certificate validator */ @@ -379,6 +389,6 @@ struct tls_connection { #define TLS_RX_ALIGN 16 extern int add_tls ( struct interface *xfer, const char *name, - struct interface **next ); + struct x509_root *root, struct private_key *key ); #endif /* _IPXE_TLS_H */ |
