4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
22 * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
33 #define DEFAULT_POLICY "solaris"
34 #define SUSER_POLICY "suser" /* fallback: old policy */
36 #define KV_ACTION "act"
37 #define KV_COMMAND "cmd"
38 #define KV_JAVA_CLASS "java_class"
39 #define KV_JAVA_METHOD "java_method"
42 #define KV_DELIMITER ";"
44 #define KV_ESCAPE '\\'
45 #define KV_ADD_KEYS 16 /* number of key value pairs to realloc */
46 #define KV_SPECIAL "=;:\\"
47 #define KV_TOKEN_DELIMIT ":"
48 #define KV_WILDCARD "*"
49 #define KV_WILDCHAR '*'
50 #define KV_ACTION_WILDCARD "*;*;*;*;*"
51 #define KV_SEPCHAR ','
53 #define KV_OBJECTCHAR '/'
55 #define KV_AUDIT_DELIMIT ":"
57 #define KV_FLAG_NONE 0x0000
58 #define KV_FLAG_REQUIRED 0x0001
61 * return status macros for all attribute databases
63 #define ATTR_FOUND 0 /* Authoritative found */
64 #define ATTR_NOT_FOUND -1 /* Authoritative not found */
65 #define ATTR_NO_RECOVERY -2 /* Non-recoverable errors */
71 } kv_t
; /* A key-value pair */
73 typedef struct kva_s
{
74 int length
; /* array length */
75 kv_t
*data
; /* array of key value pairs */
76 } kva_t
; /* Key-value array */
79 extern char *kva_match(kva_t
*, char *);
80 extern int _auth_match(const char *, const char *);
81 extern char *_argv_to_csl(char **strings
);
82 extern char **_csl_to_argv(char *csl
);
83 extern char *_do_unescape(char *src
);
84 extern void _free_argv(char **p_argv
);
85 extern int _insert2kva(kva_t
*, char *, char *);
86 extern int _kva2str(kva_t
*, char *, int, char *, char *);
87 extern kva_t
*_kva_dup(kva_t
*);
88 extern void _kva_free(kva_t
*);
89 extern void _kva_free_value(kva_t
*, char *);
90 extern kva_t
*_new_kva(int size
);
91 extern kva_t
*_str2kva(char *, char *, char *);
92 extern int _enum_auths(const char *, int (*)(const char *, void *, void *),
93 void *ctxt
, void *pres
);
94 extern int _enum_profs(const char *,
95 int (*)(const char *, kva_t
*, void *, void *), void *ctxt
, void *pres
);
96 extern int _enum_attrs(const char *,
97 int (*)(const char *, kva_t
*, void *, void *), void *ctxt
, void *pres
);
103 #endif /* _SECDB_H */