Open SCAP Library
|
00001 /* 00002 * @file cce_priv.h 00003 * \brief Interface to Common Configuration Enumeration (CCE) - internal definitions. 00004 * 00005 * See more details at http://cce.mitre.org/ 00006 */ 00007 00008 /* 00009 * Copyright 2008-2009 Red Hat Inc., Durham, North Carolina. 00010 * All Rights Reserved. 00011 * 00012 * This library is free software; you can redistribute it and/or 00013 * modify it under the terms of the GNU Lesser General Public 00014 * License as published by the Free Software Foundation; either 00015 * version 2.1 of the License, or (at your option) any later version. 00016 * 00017 * This library is distributed in the hope that it will be useful, 00018 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00020 * Lesser General Public License for more details. 00021 * 00022 * You should have received a copy of the GNU Lesser General Public 00023 * License along with this library; if not, write to the Free Software 00024 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00025 * 00026 * Authors: 00027 * Lukas Kuklinek <lkuklinek@redhat.com> 00028 * Riley C. Porter <Riley.Porter@g2-inc.com> 00029 */ 00030 00031 #include <libxml/xmlreader.h> 00032 00033 #include "cce.h" 00034 #include "../common/list.h" 00035 #include "../common/util.h" 00036 00037 #ifndef _CCE_PRIV_H 00038 #define _CCE_PRIV_H 00039 00040 OSCAP_HIDDEN_START; 00041 00042 struct cce { 00043 struct oscap_list *entries; 00044 struct oscap_htable *entry; 00045 }; 00046 00047 struct cce_entry { 00048 char *id; 00049 char *description; 00050 struct oscap_list *params; // list of C-strings 00051 struct oscap_list *tech_mechs; // list of C-strings 00052 struct oscap_list *references; // list of 'struct cce_reference' 00053 }; 00054 00055 struct cce_reference { 00056 char *source; 00057 char *value; 00058 }; 00059 00060 void process_node(xmlTextReaderPtr reader, struct cce *cce); 00061 void process_description(xmlTextReaderPtr reader, struct cce_entry *cce); 00062 void process_parameter(xmlTextReaderPtr reader, struct cce_entry *cce); 00063 void process_tech_mech(xmlTextReaderPtr reader, struct cce_entry *cce); 00064 void process_refs(xmlTextReaderPtr reader, struct cce_entry *cce); 00065 00066 struct cce_entry *cce_entry_new_empty(void); 00067 void cce_reference_free(struct cce_reference *ref); 00068 void cce_entry_free(struct cce_entry *ref); 00069 00070 OSCAP_HIDDEN_END; 00071 00072 #endif