00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_SECURITY_CERT_X509CERTIFICATE_H_
00019 #define _DECAF_SECURITY_CERT_X509CERTIFICATE_H_
00020
00021 #include <decaf/security/cert/Certificate.h>
00022
00023 #include <decaf/util/Config.h>
00024 #include <decaf/util/Date.h>
00025
00026 namespace decaf {
00027 namespace security {
00028 namespace auth {
00029 class X500Principal;
00030 }
00031 namespace cert {
00032
00036 class DECAF_API X509Certificate : public Certificate {
00037 public:
00038
00039 virtual ~X509Certificate() {
00040 }
00041
00042 virtual void checkValidity() const = 0;
00043
00044 virtual void checkValidity(const decaf::util::Date& date) const = 0;
00045
00046 virtual int getBasicConstraints() const = 0;
00047
00048 virtual void getIssuerUniqueID(std::vector<bool>& output) const = 0;
00049
00050 virtual const auth::X500Principal* getIssuerX500Principal() const = 0;
00051
00052 virtual void getKeyUsage(std::vector<unsigned char>& output) const = 0;
00053
00054 virtual decaf::util::Date getNotAfter() const = 0;
00055
00056 virtual decaf::util::Date getNotBefore() const = 0;
00057
00058
00059
00060 virtual std::string getSigAlgName() const = 0;
00061
00062 virtual std::string getSigAlgOID() const = 0;
00063
00064 virtual void getSigAlgParams(std::vector<unsigned char>& output) const = 0;
00065
00066 virtual void getSignature(std::vector<unsigned char>& output) const = 0;
00067
00068 virtual void getSubjectUniqueID(std::vector<bool>& output) const = 0;
00069
00070 virtual const auth::X500Principal* getSubjectX500Principal() const = 0;
00071
00072 virtual void getTBSCertificate(std::vector<unsigned char>& output) const = 0;
00073
00074 virtual int getVersion() const = 0;
00075
00076 };
00077
00078 }}}
00079
00080 #endif