MastersThesis/TIIGER_TLS/PQ_TIIGER_TLS/include/tls_cert_chain.h
2024-04-15 11:53:30 +02:00

42 lines
1.3 KiB
C++

/**
* @file tls_cert_chain.h
* @author Mike Scott
* @brief Process Certificate Chain
*
*/
// TLS1.3 Server Certificate Chain Code
#ifndef TLS_CERT_CHAIN_H
#define TLS_CERT_CHAIN_H
#include "tls1_3.h"
#include "tls_x509.h"
#include "tls_sal.h"
#include "tls_client_recv.h"
#include "tls_logger.h"
#include "tls_certs.h"
using namespace std;
/** @brief Check Certificate Chain for hostname, and extract public key
*
@param CERTCHAIN the input certificate chain
@param hostname the input Server name associated with the Certificate chain
@param cert_type the certificate type (a certificate or a raw key)
@param PUBKEY the Server's public key extracted from the Certificate chain
@param SIG signature (supplied as workspace)
@return 0 if certificate chain is OK, else returns negative failure reason
*/
extern int checkServerCertChain(octad *CERTCHAIN,char *hostname,int cert_type,octad *PUBKEY,octad *SIG);
/** @brief Get Client private key and Certificate chain from .pem files
*
@param PRIVKEY the Client's private key
@param cert_type the certificate type (a certificate or a raw key)
@param CERTCHAIN the Client's certificate chain
@return type of private key, ECC or RSA
*/
extern int getClientPrivateKeyandCertChain(octad *PRIVKEY,int cert_type,octad *CERTCHAIN);
#endif