File: lcmaps_cred_data.h

package info (click to toggle)
lcmaps 1.6.6-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 4,016 kB
  • ctags: 1,428
  • sloc: sh: 11,191; ansic: 9,519; makefile: 530; lex: 184; perl: 92; yacc: 60
file content (144 lines) | stat: -rw-r--r-- 5,602 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
/**
 * Copyright (c) Members of the EGEE Collaboration. 2004-2010. 
 * See http://www.eu-egee.org/partners/ for details on the copyright
 * holders.  
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at 
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0 
 * 
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 * See the License for the specific language governing permissions and 
 * limitations under the License.
 *
 *
 *  Authors:
 *  2009-
 *     Oscar Koeroo <okoeroo@nikhef.nl>
 *     Mischa Sall\'e <msalle@nikhef.nl>
 *     David Groep <davidg@nikhef.nl>
 *     NIKHEF Amsterdam, the Netherlands
 *     <grid-mw-security@nikhef.nl> 
 *
 *  2007-2009
 *     Oscar Koeroo <okoeroo@nikhef.nl>
 *     David Groep <davidg@nikhef.nl>
 *     NIKHEF Amsterdam, the Netherlands
 *
 *  2003-2007
 *     Martijn Steenbakkers <martijn@nikhef.nl>
 *     Gerben Venekamp <venekamp@nikhef.nl>
 *     Oscar Koeroo <okoeroo@nikhef.nl>
 *     David Groep <davidg@nikhef.nl>
 *     NIKHEF Amsterdam, the Netherlands
 *
 */


/*!
    \file   lcmaps_cred_data.h
    \brief  Public header file to be used by plugins

    Routines to access the credential data that are gathered by the plugins.
    \author Martijn Steenbakkers and Oscar Koeroo for the EU DataGrid.
    \ingroup APIforLcmapsPlugins
*/

#ifndef LCMAPS_CRED_DATA_H
#define LCMAPS_CRED_DATA_H

/******************************************************************************
                             Define constants
******************************************************************************/
#define DN                        5
#define UID                      10
#define PRI_GID                  20
#define SEC_GID                  30
#define LCMAPS_VO_CRED           90
#define LCMAPS_VO_CRED_STRING   100
#define LCMAPS_VO_CRED_MAPPING  110
#define POOL_INDEX              200


/******************************************************************************
                             Include header files
******************************************************************************/

#include <pwd.h>
#include <sys/types.h>
#include <stdio.h>
#include "lcmaps_vo_data.h"

/******************************************************************************
                               Type definitions
******************************************************************************/


/*!
    \struct cred_data_s
    \typedef cred_data_t
    \brief structure type that contains the gathered (local) credentials en VOMS info
*/
typedef struct cred_data_s
{
    char                 *dn;                /*!< user globus DN */
    uid_t                *uid;               /*!< list of userIDs */
    gid_t                *priGid;            /*!< list of primary groupIDs */
    gid_t                *secGid;            /*!< list of secondary groupIDs */
    lcmaps_vo_data_t     *VoCred;            /*!< list of VO data structures */
    char                **VoCredString;      /*!< list of VO data strings */
    lcmaps_vo_mapping_t  *VoCredMapping;     /*!< list of VO mapping structures */
    int                   cntUid;            /*!< number of userIDs */
    int                   cntPriGid;         /*!< number of primary groupIDs (in principle only one) */
    int                   cntSecGid;         /*!< number of secondary groupIDs (could be any number) */
    int                   cntVoCred;         /*!< number of VO data structures */
    int                   cntVoCredString;   /*!< number of VO data strings */
    int                   cntVoCredMapping;  /*!< number of VO mapping structures */
    char                 *pool_index;        /*!< pool_index is the concat of a DN+GIDs for the DAS */
} cred_data_t;


/******************************************************************************
 *                 Module definition
 *****************************************************************************/

/******************************************************************************
Function:   addCredentialData
Description:
    Add a credential to the list of found credentials (uids, gids etc)

Parameters:
    datatype: type of credential
    data:     pointer to credential
Returns:
    0:  success
    -1: failure (unknown data type, realloc error)
******************************************************************************/
extern int   addCredentialData(int datatype, void *data);

/******************************************************************************
Function:   getCredentialData
Description:
    Get pointer to a list of credential data of a certain type

Parameters:
    datatype: type of credential
    count:    number of credentials found in list of datatype
Returns:
    pointer to list of credential data or NULL in case of failure
******************************************************************************/
extern void *getCredentialData(int datatype, int *count);

#endif /* LCMAPS_CRED_DATA_H */

/******************************************************************************
CVS Information:
    $Source: /srv/home/dennisvd/svn/mw-security/lcmaps/interface/lcmaps_cred_data.h,v $
    $Date: 2015-02-02 11:25:33 +0100 (Mon, 02 Feb 2015) $
    $Revision: 18215 $
    $Author: msalle $
******************************************************************************/