2017-09-19 04:34:08 -04:00
|
|
|
|
2014-04-24 15:34:45 -04:00
|
|
|
// X509Cert.h
|
|
|
|
|
2017-08-30 10:00:06 -04:00
|
|
|
// Declares the cX509Cert class representing a wrapper over X509 certs in mbedTLS
|
2014-04-24 15:34:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2017-08-30 10:00:06 -04:00
|
|
|
#include "mbedtls/x509_crt.h"
|
2014-04-24 15:34:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class cX509Cert
|
|
|
|
{
|
2017-08-30 10:00:06 -04:00
|
|
|
friend class cSslConfig;
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2014-04-24 15:34:45 -04:00
|
|
|
public:
|
|
|
|
cX509Cert(void);
|
|
|
|
~cX509Cert(void);
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2014-04-24 15:34:45 -04:00
|
|
|
/** Parses the certificate chain data into the context.
|
2017-09-19 12:28:51 -04:00
|
|
|
The certificate can be DER- or PEM-encoded.
|
2017-08-30 10:00:06 -04:00
|
|
|
Returns 0 on succes, or mbedTLS error code on failure. */
|
2014-04-24 15:34:45 -04:00
|
|
|
int Parse(const void * a_CertContents, size_t a_Size);
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2014-04-24 15:34:45 -04:00
|
|
|
protected:
|
2017-08-30 10:00:06 -04:00
|
|
|
mbedtls_x509_crt m_Cert;
|
2014-04-27 16:27:53 -04:00
|
|
|
|
2017-08-30 10:00:06 -04:00
|
|
|
/** Returns the internal cert ptr. Only use in mbedTLS API calls. */
|
|
|
|
mbedtls_x509_crt * GetInternal(void) { return &m_Cert; }
|
2014-04-24 15:34:45 -04:00
|
|
|
} ;
|
|
|
|
|
2017-07-20 07:19:18 -04:00
|
|
|
typedef std::shared_ptr<cX509Cert> cX509CertPtr;
|
2014-04-27 16:27:53 -04:00
|
|
|
|
2014-04-24 15:34:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|