42 lines
1.3 KiB
C
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
|