Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-01-08 10:33:32

0001 #ifndef __CRYPTO_X509CRL_H__
0002 #define __CRYPTO_X509CRL_H__
0003 /******************************************************************************/
0004 /*                                                                            */
0005 /*                   X r d C r y p t o X 5 0 9 C r l . h h                    */
0006 /*                                                                            */
0007 /* (c) 2005 G. Ganis , CERN                                                   */
0008 /*                                                                            */
0009 /* This file is part of the XRootD software suite.                            */
0010 /*                                                                            */
0011 /* XRootD is free software: you can redistribute it and/or modify it under    */
0012 /* the terms of the GNU Lesser General Public License as published by the     */
0013 /* Free Software Foundation, either version 3 of the License, or (at your     */
0014 /* option) any later version.                                                 */
0015 /*                                                                            */
0016 /* XRootD is distributed in the hope that it will be useful, but WITHOUT      */
0017 /* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or      */
0018 /* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public       */
0019 /* License for more details.                                                  */
0020 /*                                                                            */
0021 /* You should have received a copy of the GNU Lesser General Public License   */
0022 /* along with XRootD in a file called COPYING.LESSER (LGPL license) and file  */
0023 /* COPYING (GPL license).  If not, see <http://www.gnu.org/licenses/>.        */
0024 /*                                                                            */
0025 /* The copyright holder's institutional names and contributor's names may not */
0026 /* be used to endorse or promote products derived from this software without  */
0027 /* specific prior written permission of the institution or contributor.       */
0028 /*                                                                            */
0029 /******************************************************************************/
0030 
0031 /* ************************************************************************** */
0032 /*                                                                            */
0033 /* Abstract interface for X509 CRLs        .                                  */
0034 /* Allows to plug-in modules based on different crypto implementation         */
0035 /* (OpenSSL, Botan, ...)                                                      */
0036 /*                                                                            */
0037 /* ************************************************************************** */
0038 
0039 #include "XrdCrypto/XrdCryptoX509.hh"
0040 
0041 typedef void * XrdCryptoX509Crldata;
0042 
0043 // ---------------------------------------------------------------------------//
0044 //
0045 // X509 CRL interface
0046 // Describes one CRL certificate
0047 //
0048 // ---------------------------------------------------------------------------//
0049 class XrdCryptoX509Crl {
0050 public:
0051 
0052    XrdCryptoX509Crl() { }
0053    virtual ~XrdCryptoX509Crl() { }
0054 
0055    // Status
0056    virtual bool IsValid();
0057    virtual bool IsExpired(int when = 0);  // Expired
0058 
0059    // Access underlying data (in opaque form: used in chains)
0060    virtual XrdCryptoX509Crldata Opaque();
0061 
0062    // Dump information
0063    virtual void Dump();
0064    virtual const char *ParentFile();
0065 
0066    // Validity interval
0067    virtual time_t LastUpdate();  // time when last updated
0068    virtual time_t NextUpdate();  // time foreseen for next update
0069 
0070    // Issuer of top certificate
0071    virtual const char *Issuer();
0072    virtual const char *IssuerHash(int);   // hash 
0073    const char *IssuerHash() { return IssuerHash(0); }   // hash 
0074 
0075    // Chec certificate revocation
0076    virtual bool IsRevoked(int serialnumber, int when);
0077    virtual bool IsRevoked(const char *sernum, int when);
0078 
0079    // Verify signature
0080    virtual bool Verify(XrdCryptoX509 *ref);
0081 
0082 };
0083 
0084 #endif