xrootd
XrdCryptoX509Crl.hh
Go to the documentation of this file.
1 #ifndef __CRYPTO_X509CRL_H__
2 #define __CRYPTO_X509CRL_H__
3 /******************************************************************************/
4 /* */
5 /* X r d C r y p t o X 5 0 9 C r l . h h */
6 /* */
7 /* (c) 2005 G. Ganis , CERN */
8 /* */
9 /* This file is part of the XRootD software suite. */
10 /* */
11 /* XRootD is free software: you can redistribute it and/or modify it under */
12 /* the terms of the GNU Lesser General Public License as published by the */
13 /* Free Software Foundation, either version 3 of the License, or (at your */
14 /* option) any later version. */
15 /* */
16 /* XRootD is distributed in the hope that it will be useful, but WITHOUT */
17 /* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
18 /* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
19 /* License for more details. */
20 /* */
21 /* You should have received a copy of the GNU Lesser General Public License */
22 /* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
23 /* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
24 /* */
25 /* The copyright holder's institutional names and contributor's names may not */
26 /* be used to endorse or promote products derived from this software without */
27 /* specific prior written permission of the institution or contributor. */
28 /* */
29 /******************************************************************************/
30 
31 /* ************************************************************************** */
32 /* */
33 /* Abstract interface for X509 CRLs . */
34 /* Allows to plug-in modules based on different crypto implementation */
35 /* (OpenSSL, Botan, ...) */
36 /* */
37 /* ************************************************************************** */
38 
40 
41 typedef void * XrdCryptoX509Crldata;
42 
43 // ---------------------------------------------------------------------------//
44 //
45 // X509 CRL interface
46 // Describes one CRL certificate
47 //
48 // ---------------------------------------------------------------------------//
50 public:
51 
53  virtual ~XrdCryptoX509Crl() { }
54 
55  // Status
56  virtual bool IsValid();
57  virtual bool IsExpired(int when = 0); // Expired
58 
59  // Access underlying data (in opaque form: used in chains)
60  virtual XrdCryptoX509Crldata Opaque();
61 
62  // Dump information
63  virtual void Dump();
64  virtual const char *ParentFile();
65 
66  // Validity interval
67  virtual time_t LastUpdate(); // time when last updated
68  virtual time_t NextUpdate(); // time foreseen for next update
69 
70  // Issuer of top certificate
71  virtual const char *Issuer();
72  virtual const char *IssuerHash(int); // hash
73  const char *IssuerHash() { return IssuerHash(0); } // hash
74 
75  // Chec certificate revocation
76  virtual bool IsRevoked(int serialnumber, int when);
77  virtual bool IsRevoked(const char *sernum, int when);
78 
79  // Verify signature
80  virtual bool Verify(XrdCryptoX509 *ref);
81 
82 };
83 
84 #endif
virtual XrdCryptoX509Crldata Opaque()
virtual ~XrdCryptoX509Crl()
Definition: XrdCryptoX509Crl.hh:53
virtual time_t LastUpdate()
virtual const char * Issuer()
virtual time_t NextUpdate()
virtual bool IsRevoked(int serialnumber, int when)
virtual void Dump()
void * XrdCryptoX509Crldata
Definition: XrdCryptoX509Crl.hh:41
XrdCryptoX509Crl()
Definition: XrdCryptoX509Crl.hh:52
virtual bool IsExpired(int when=0)
Definition: XrdCryptoX509Crl.hh:49
virtual bool IsValid()
Definition: XrdCryptoX509.hh:51
const char * IssuerHash()
Definition: XrdCryptoX509Crl.hh:73
virtual bool Verify(XrdCryptoX509 *ref)
virtual const char * ParentFile()