00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __WVX509MGR_H
00009 #define __WVX509MGR_H
00010
00011 #include "wvx509.h"
00012 #include "wvcrl.h"
00013
00014 class WvX509Mgr : public WvX509
00015 {
00016 public:
00021 WvX509Mgr();
00022
00040 WvX509Mgr(WvStringParm _dname, WvRSAKey *_rsa, bool ca = false);
00041
00049 WvX509Mgr(WvStringParm _dname, int bits, bool ca=false);
00050
00054 WvX509Mgr(const WvX509Mgr &mgr);
00055
00056 protected:
00065 void create_selfissued(WvStringParm dname, bool is_ca = false);
00066
00067 public:
00069 virtual ~WvX509Mgr();
00070
00075 virtual bool isok() const;
00076
00080 virtual WvString errstr() const;
00081
00085 bool operator! () const;
00086
00090 WvRSAKey *get_rsa() { return rsa; }
00091 void set_rsa(WvRSAKey *_rsa) { WVDELETE(rsa); rsa = new WvRSAKey(*_rsa); }
00092
00098 bool bind_ssl(SSL_CTX *ctx);
00099
00105 WvString signreq(WvStringParm pkcs10req) const;
00106
00110 bool signcert(WvX509 &unsignedcert) const;
00111
00117 bool signcrl(WvCRL &unsignedcrl) const;
00118
00124 bool test() const;
00125
00130 WvString sign(WvBuf &data) const;
00131 WvString sign(WvStringParm data) const;
00132
00136 virtual WvString encode(const WvX509::DumpMode mode) const;
00137 virtual WvString encode(const WvRSAKey::DumpMode mode) const;
00138 virtual void encode(const WvX509::DumpMode mode, WvBuf &buf) const;
00139 virtual void encode(const WvRSAKey::DumpMode mode, WvBuf &buf) const;
00140
00147 virtual void decode(const WvX509::DumpMode mode, WvStringParm encoded);
00148 virtual void decode(const WvRSAKey::DumpMode mode, WvStringParm encoded);
00149 virtual void decode(const WvX509::DumpMode mode, WvBuf &encoded);
00150 virtual void decode(const WvRSAKey::DumpMode mode, WvBuf &encoded);
00151
00157 bool write_p12(WvStringParm _fname, WvStringParm _pkcs12pass) const;
00158
00164 void read_p12(WvStringParm _fname, WvStringParm _pkcs12pass);
00165
00166 private:
00172 mutable WvRSAKey *rsa;
00173
00174 mutable WvLog debug;
00175 };
00176 #endif