00001 // $Id: XrdCryptoX509Crl.hh 22437 2008-03-04 14:35:16Z rdm $ 00002 #ifndef __CRYPTO_X509CRL_H__ 00003 #define __CRYPTO_X509CRL_H__ 00004 /******************************************************************************/ 00005 /* */ 00006 /* X r d C r y p t o X 5 0 9 C r l . h h */ 00007 /* */ 00008 /* */ 00009 /* (c) 2005 G. Ganis , CERN */ 00010 /* */ 00011 /******************************************************************************/ 00012 00013 /* ************************************************************************** */ 00014 /* */ 00015 /* Abstract interface for X509 CRLs . */ 00016 /* Allows to plug-in modules based on different crypto implementation */ 00017 /* (OpenSSL, Botan, ...) */ 00018 /* */ 00019 /* ************************************************************************** */ 00020 00021 #include <XrdCrypto/XrdCryptoX509.hh> 00022 00023 typedef void * XrdCryptoX509Crldata; 00024 00025 // ---------------------------------------------------------------------------// 00026 // 00027 // X509 CRL interface 00028 // Describes one CRL certificate 00029 // 00030 // ---------------------------------------------------------------------------// 00031 class XrdCryptoX509Crl { 00032 public: 00033 00034 XrdCryptoX509Crl() { } 00035 virtual ~XrdCryptoX509Crl() { } 00036 00037 // Status 00038 virtual bool IsValid(); 00039 virtual bool IsExpired(int when = 0); // Expired 00040 00041 // Access underlying data (in opaque form: used in chains) 00042 virtual XrdCryptoX509Crldata Opaque(); 00043 00044 // Dump information 00045 virtual void Dump(); 00046 virtual const char *ParentFile(); 00047 00048 // Validity interval 00049 virtual int LastUpdate(); // time when last updated 00050 virtual int NextUpdate(); // time foreseen for next update 00051 00052 // Issuer of top certificate 00053 virtual const char *Issuer(); 00054 virtual const char *IssuerHash(); // hash 00055 00056 // Chec certificate revocation 00057 virtual bool IsRevoked(int serialnumber, int when); 00058 virtual bool IsRevoked(const char *sernum, int when); 00059 00060 // Verify signature 00061 virtual bool Verify(XrdCryptoX509 *ref); 00062 00063 }; 00064 00065 #endif