12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #ifndef __AUTHORITY_CERTIFICATE_MANAGER_H__
- #define __AUTHORITY_CERTIFICATE_MANAGER_H__
- #include <string>
- #include <openssl/pem.h>
- #include <openssl/conf.h>
- #include <openssl/x509v3.h>
- #include <openssl/ssl.h>
- #include <openssl/err.h>
- #include <openssl/rand.h>
- #include <boost/asio.hpp>
- #include "Certificate.hpp"
- #include "CertificateManager.hpp"
- class AuthorityCertificateManager : public CertificateManager {
- private:
- Certificate *authority;
- std::list<Certificate*> chainList;
- EVP_PKEY *leafPair;
- EVP_PKEY* buildKeysForClient();
- unsigned int generateRandomSerial();
- public:
- AuthorityCertificateManager(std::string &file, std::string &chain);
- virtual bool isOCSPAddress(boost::asio::ip::tcp::endpoint &endpoint);
- virtual void getCertificateForTarget(boost::asio::ip::tcp::endpoint &endpoint,
- bool wildcardOK,
- X509 *serverCertificate,
- Certificate **cert, std::list<Certificate*> **chain);
- virtual bool isValidTarget(boost::asio::ip::tcp::endpoint &endpoint, bool wildcardOK);
- };
- #endif
|