wvcrl.h

00001 /* -*- Mode: C++ -*-
00002  * Worldvisions Weaver Software:
00003  *   Copyright (C) 1997-2005 Net Integration Technologies, Inc.
00004  *
00005  * X.509v3 CRL management classes.
00006  */ 
00007 #ifndef __WVCRL_H
00008 #define __WVCRL_H
00009 
00010 #include "wvlog.h"
00011 #include "wverror.h"
00012 
00013 // Structures to make the compiler happy so we don't have to include x509v3.h ;)
00014 struct X509_crl_st;
00015 typedef struct X509_crl_st X509_CRL;
00016 struct ssl_ctx_st;
00017 typedef struct ssl_ctx_st SSL_CTX;
00018 struct asn1_string_st;
00019 typedef struct asn1_string_st ASN1_INTEGER;
00020 
00021 class WvRSAKey;
00022 class WvX509Mgr;
00023 
00028 class WvCRLMgr
00029 {
00030 public:
00034     WvError err;
00035 
00042     enum DumpMode { PEM = 0, DER, TEXT };
00043 
00056     enum Valid { CRLERROR = -1, VALID, NOT_THIS_CA, NO_VALID_SIGNATURE, BEFORE_VALID, AFTER_VALID, REVOKED };
00057     
00064     WvCRLMgr(X509_CRL *_crl = NULL);
00065     
00066 private:
00071     WvCRLMgr(const WvCRLMgr &mgr);
00072 
00073 public:
00075     virtual ~WvCRLMgr();
00076     
00077 
00079     X509_CRL *getcrl()
00080     { return crl; }
00081  
00082 
00088     WvString hexify();
00089 
00098     Valid validate(WvX509Mgr *cert);
00099 
00105     bool signedbyCAindir(WvStringParm certdir);
00106    
00107     
00112     bool signedbyCAinfile(WvStringParm certfile);
00113     
00114     
00119     bool signedbyCA(WvX509Mgr *cert);
00120     
00124     bool isok()
00125     { return err.isok(); }
00126     
00127     
00131     void setca(WvX509Mgr *cacert);
00132     
00133     
00137     WvString encode(const DumpMode mode);
00138 
00139 
00146     void decode(const DumpMode mode, WvStringParm PemEncoded);
00147 
00148     
00153     WvString get_issuer();
00154 
00155     
00159     bool isrevoked(WvX509Mgr *cert);
00160     bool isrevoked(WvStringParm serial_number);
00161     
00162     
00166     int numcerts();
00167 
00168     
00172     void addcert(WvX509Mgr *cert);
00173 
00174 
00175 private:
00177     WvLog debug;
00178 
00179     X509_CRL     *crl;
00180     WvX509Mgr    *cacert;
00181     int          certcount;
00182     WvString     issuer;
00183 
00184     ASN1_INTEGER *serial_to_int(WvStringParm serial);
00185     void         setupcrl();
00186 
00187 };
00188 
00189 #endif // __WVCRL_H

Generated on Wed Jul 12 17:53:20 2006 for WvStreams by  doxygen 1.4.7