Return to ac.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / strongswan / src / libstrongswan / credentials / certificates |
1.1 misho 1: /* 2: * Copyright (C) 2002-2009 Andreas Steffen 3: * 4: * HSR Hochschule fuer Technik Rapperswil 5: * 6: * This program is free software; you can redistribute it and/or modify it 7: * under the terms of the GNU General Public License as published by the 8: * Free Software Foundation; either version 2 of the License, or (at your 9: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. 10: * 11: * This program is distributed in the hope that it will be useful, but 12: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 13: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14: * for more details. 15: */ 16: 17: /** 18: * @defgroup ac ac 19: * @{ @ingroup certificates 20: */ 21: 22: #ifndef AC_H_ 23: #define AC_H_ 24: 25: #include <library.h> 26: #include <credentials/certificates/certificate.h> 27: 28: typedef struct ac_t ac_t; 29: typedef enum ac_group_type_t ac_group_type_t; 30: 31: /** 32: * Common group types, from IETF Attributes Syntax 33: */ 34: enum ac_group_type_t { 35: AC_GROUP_TYPE_OCTETS, 36: AC_GROUP_TYPE_STRING, 37: AC_GROUP_TYPE_OID, 38: }; 39: 40: /** 41: * X.509 attribute certificate interface. 42: * 43: * This interface adds additional methods to the certificate_t type to 44: * allow further operations on these certificates. 45: */ 46: struct ac_t { 47: 48: /** 49: * Implements the certificate_t interface 50: */ 51: certificate_t certificate; 52: 53: /** 54: * Get the attribute certificate's serial number. 55: * 56: * @return chunk pointing to serialNumber 57: */ 58: chunk_t (*get_serial)(ac_t *this); 59: 60: /** 61: * Get the serial number of the holder certificate. 62: * 63: * @return chunk pointing to serialNumber 64: */ 65: chunk_t (*get_holderSerial)(ac_t *this); 66: 67: /** 68: * Get the issuer of the holder certificate. 69: * 70: * @return holderIssuer as identification_t* 71: */ 72: identification_t* (*get_holderIssuer)(ac_t *this); 73: 74: /** 75: * Get the authorityKeyIdentifier. 76: * 77: * @return authKeyIdentifier as chunk_t, to internal data 78: */ 79: chunk_t (*get_authKeyIdentifier)(ac_t *this); 80: 81: /** 82: * Create an enumerator of contained Group memberships. 83: * 84: * @return enumerator over (ac_group_type_t, chunk_t) 85: */ 86: enumerator_t* (*create_group_enumerator)(ac_t *this); 87: }; 88: 89: #endif /** AC_H_ @}*/