00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef CERTIFICATECONTROLLER_H
00022 #define CERTIFICATECONTROLLER_H
00023
00024 #ifdef HAVE_CONFIG_H
00025 #include "config.h"
00026 #endif
00027
00028 #include "printable.h"
00029 #include "id.h"
00030 #include "payload_cert.h"
00031 #include "payload_cert_req.h"
00032 #include "certificate.h"
00033 #include "payload_id.h"
00034
00035 using namespace std;
00036
00037
00038 namespace openikev2 {
00039
00045 class CertificateController: public Printable {
00046
00047
00048 public:
00055 virtual auto_ptr<Certificate> payloadToCertificate( const Payload_CERT& peer_certificate ) const = 0;
00056
00061 virtual auto_ptr<Payload_CERT_REQ> getCertificateRequest() const = 0;
00062
00069 virtual auto_ptr<Certificate> getCertificate( const Payload_CERT_REQ* certificate_request, bool peer_supports_hash_url ) const = 0;
00070
00075 virtual auto_ptr<CertificateController> clone() const = 0;
00076
00083 virtual auto_ptr<Certificate> getPeerCertificate( const ID& peer_id ) const = 0;
00084
00091 virtual bool verifyCertificate( const ID& peer_id, const Payload_CERT& payload_cert ) const = 0;
00092
00093 virtual string toStringTab( uint8_t tabs ) const = 0;
00094
00095 virtual ~CertificateController();
00096 };
00097 }
00098 #endif