comparison usr/src/cmd/gss/gsscred/gsscred.h @ 0:c9caec207d52 b86

Initial porting based on b86
author Koji Uno <koji.uno@sun.com>
date Tue, 02 Jun 2009 18:56:50 +0900
parents
children 1a15d5aaf794
comparison
equal deleted inserted replaced
-1:000000000000 0:c9caec207d52
1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * Copyright 1997-2002 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27 /*
28 * gsscred utility
29 *
30 * Manages mapping between a security principal
31 * name and unix uid.
32 */
33
34 #ifndef _GSSCRED_H
35 #define _GSSCRED_H
36
37 #pragma ident "@(#)gsscred.h 1.11 05/06/08 SMI"
38
39 #include <libintl.h>
40 #include <locale.h>
41 #include <gssapi/gssapi.h>
42 #include <pwd.h>
43
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47
48 #if !defined(TEXT_DOMAIN)
49 #define TEXT_DOMAIN "SUNW_OST_OSCMD"
50 #endif
51
52 #define GSSCRED_FLAT_FILE -1
53
54 /* Structure to hold GSS credentials for each entry */
55 typedef struct GssCredEntry_t {
56 char *principal_name;
57 int unix_uid;
58 char *comment;
59 struct GssCredEntry_t *next;
60 } GssCredEntry;
61
62 /*
63 * Misc functions in gsscred.
64 */
65 int gsscred_AsHex(const gss_buffer_t inBuf, gss_buffer_t outBuf);
66 int gsscred_MakeName(const gss_OID mechOid, const char *name,
67 const char *nameOid, gss_buffer_t OutName);
68 int gsscred_read_config_file(void);
69 int gsscred_MakeNameHeader(const gss_OID mechOid, gss_buffer_t outNameHdr);
70
71
72 /*
73 * Flat file based gsscred functions.
74 */
75 int file_addGssCredEntry(const gss_buffer_t hexName, const char *uid,
76 const char *comment, char **errDetails);
77 int file_getGssCredEntry(const gss_buffer_t name, const char *uid,
78 char **errDetails);
79 int file_deleteGssCredEntry(const gss_buffer_t name, const char *uid,
80 char **errDetails);
81 int file_getGssCredUid(const gss_buffer_t name, uid_t *uidOut);
82
83
84 /*
85 * GSS entry point for retrieving user uid information based on
86 * exported name buffer.
87 */
88 int gss_getGssCredEntry(const gss_buffer_t expName, uid_t *uid);
89
90 #ifdef __cplusplus
91 }
92 #endif
93
94 #endif /* _GSSCRED_H */