00001
00002
00003
00004
00005
00006
00007 #ifndef __WVX509MGR_H
00008 #define __WVX509MGR_H
00009
00010 #include "wvx509.h"
00011 #include "wvcrl.h"
00012
00013 class WvX509Mgr : public WvX509
00014 {
00015 public:
00020 WvX509Mgr();
00021
00039 WvX509Mgr(WvStringParm _dname, WvRSAKey *_rsa, bool ca = false);
00040
00048 WvX509Mgr(WvStringParm _dname, int bits, bool ca=false);
00049
00050 protected:
00059 void create_selfissued(WvStringParm dname, bool is_ca = false);
00060
00061 private:
00062
00067 WvX509Mgr(const WvX509Mgr &mgr);
00068
00069 public:
00071 virtual ~WvX509Mgr();
00072
00077 virtual bool isok() const;
00078
00082 virtual WvString errstr() const;
00083
00087 WvRSAKey *get_rsa() { return rsa; }
00088 void set_rsa(WvRSAKey *_rsa) { WVDELETE(rsa); rsa = new WvRSAKey(*_rsa); }
00089
00095 bool bind_ssl(SSL_CTX *ctx);
00096
00102 WvString signreq(WvStringParm pkcs10req) const;
00103
00107 bool signcert(WvX509 &unsignedcert) const;
00108
00114 bool signcrl(WvCRL &unsignedcrl) const;
00115
00121 bool test() const;
00122
00127 WvString sign(WvBuf &data) const;
00128 WvString sign(WvStringParm data) const;
00129
00133 virtual WvString encode(const WvX509::DumpMode mode) const;
00134 virtual WvString encode(const WvRSAKey::DumpMode mode) const;
00135 virtual void encode(const WvX509::DumpMode mode, WvBuf &buf) const;
00136 virtual void encode(const WvRSAKey::DumpMode mode, WvBuf &buf) const;
00137
00144 virtual void decode(const WvX509::DumpMode mode, WvStringParm encoded);
00145 virtual void decode(const WvRSAKey::DumpMode mode, WvStringParm encoded);
00146 virtual void decode(const WvX509::DumpMode mode, WvBuf &encoded);
00147 virtual void decode(const WvRSAKey::DumpMode mode, WvBuf &encoded);
00148
00154 bool write_p12(WvStringParm _fname, WvStringParm _pkcs12pass) const;
00155
00161 void read_p12(WvStringParm _fname, WvStringParm _pkcs12pass);
00162
00163 private:
00169 mutable WvRSAKey *rsa;
00170
00171 mutable WvLog debug;
00172 };
00173 #endif