wvx509mgr.h

00001 /* -*- Mode: C++ -*-
00002  * Worldvisions Weaver Software:
00003  *   Copyright (C) 1997-2004 Net Integration Technologies, Inc.
00004  *
00005  * X.509 certificate management classes.
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

Generated on Thu Jan 24 16:50:57 2008 for WvStreams by  doxygen 1.5.4