]> git.saurik.com Git - apple/security.git/blame - libsecurity_mds/lib/MDSAttrStrings.h
Security-55471.14.tar.gz
[apple/security.git] / libsecurity_mds / lib / MDSAttrStrings.h
CommitLineData
b1ab9ed8
A
1/*
2 * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
3 *
4 * The contents of this file constitute Original Code as defined in and are
5 * subject to the Apple Public Source License Version 1.2 (the 'License').
6 * You may not use this file except in compliance with the License. Please obtain
7 * a copy of the License at http://www.apple.com/publicsource and read it before
8 * using this file.
9 *
10 * This Original Code and all software distributed under the License are
11 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
12 * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
13 * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
15 * specific language governing rights and limitations under the License.
16 */
17
18
19/*
20 File: MDSAttrStrings.h
21
22 Contains: Static tables to map attribute names to numeric values.
23
24 Copyright: (c) 2001 Apple Computer, Inc., all rights reserved.
25*/
26
27#ifndef _MDS_ATTR_STRINGS_H_
28#define _MDS_ATTR_STRINGS_H_ 1
29
30#include <Security/cssmtype.h>
31
32namespace Security
33{
34
35/*
36 * Each type of attribute has a name/value pair in a table of these:
37 */
38typedef struct {
39 uint32 value;
40 const char *name;
41} MDSNameValuePair;
42
43/*
44 * Various tables.
45 */
46
47/* attributes in Object and Common relations */
48extern const MDSNameValuePair MDSServiceNames[]; // CSSM_SERVICE_MASK
49
50/* CSP attributes */
51extern const MDSNameValuePair MDSContextTypeNames[]; // CSSM_CONTEXT_TYPE
52extern const MDSNameValuePair MDSAttributeTypeNames[]; // CSSM_ATTRIBUTE_TYPE
53extern const MDSNameValuePair MDSPaddingNames[]; // CSSM_PADDING
54extern const MDSNameValuePair MDSCspFlagsNames[]; // CSSM_CSP_FLAGS
55extern const MDSNameValuePair MDSAlgorithmNames[]; // CSSM_ALGORITHMS
56extern const MDSNameValuePair MDSEncryptModeNames[]; // CSSM_ENCRYPT_MODE
57extern const MDSNameValuePair MDSCspTypeNames[]; // CSSM_CSPTYPE
58extern const MDSNameValuePair MDSUseeTagsNames[]; // CSSM_USEE_TAG
59extern const MDSNameValuePair MDSCspReaderFlagsNames[]; // CSSM_CSP_READER_FLAGS
60extern const MDSNameValuePair MDSCspScFlagsNames[]; // CSSM_SC_FLAGS
61
62/* CL attributes */
63extern const MDSNameValuePair MDSCertTypeNames[]; // CSSM_CERT_TYPE
64extern const MDSNameValuePair MDSCrlTypeNames[]; // CSSM_CRL_TYPE
65extern const MDSNameValuePair MDSCertBundleTypeNames[]; // CSSM_CERT_BUNDLE_TYPE
66extern const MDSNameValuePair MDSCertTemplateTypeNames[];
67 // CSSM_CL_TEMPLATE_TYPE
68
69/* TP attributes */
70/* CSSM_TP_AUTHORITY_REQUEST_CERTISSUE */
71extern const MDSNameValuePair MDSTpAuthRequestNames[];
72 // CSSM_TP_AUTHORITY_REQUEST_CERTISSUE
73
74/* DL attributes */
75extern const MDSNameValuePair MDSDlTypeNames[]; // CSSM_DLTYPE
76extern const MDSNameValuePair MDSDbConjunctiveNames[]; // CSSM_DB_CONJUNCTIVE
77extern const MDSNameValuePair MDSDbOperatorNames[]; // CSSM_DB_OPERATOR
78extern const MDSNameValuePair MDSNetProtocolNames[]; // CSSM_NET_PROTOCOL
79extern const MDSNameValuePair MDSDbRetrievalModeNames[];// CSSM_DB_RETRIEVAL_MODES
80
81/* misc. */
82extern const MDSNameValuePair MDSAclSubjectTypeNames[]; // CSSM_ACL_SUBJECT_TYPE
83extern const MDSNameValuePair MDSAclAuthTagNames[]; // CSSM_ACL_AUTHORIZATION_TAG
84extern const MDSNameValuePair MDSSampleTypeNames[]; // CSSM_SAMPLE_TYPE
85extern const MDSNameValuePair MDSKrPolicyTypeNames[]; // CSSM_KR_POLICY_TYPE
86
87// extern const MDSNameValuePair MDSRecordTypeNames[]; // CSSM_DB_RECORDTYPE
88
89/*
90 * Use this function to convert a name, e.g. "CSSM_ALGCLASS_SIGNATURE", to
91 * its associated value as a uint32. Caller specifies proper lookup table
92 * as an optimization to avoid grunging thru entire CDSA namespace on every
93 * lookup.
94 *
95 * If the specified name is not found, or if no MDSNameValuePair is specified,
96 * an attempt will be made to convert the incoming string to a number as if
97 * it were an ASCII hex (starts with "0x") or decimal (starts with any other numeric
98 * string) string. If that fails, CSSMERR_CSSM_MDS_ERROR is returned.
99 *
100 * Values can be prefixed with "<<" indicating that the indicated
101 * value is to be shifted 16 bits. Cf. CL Primary Relation, {Cert,Crl}TypeFormat.
102 * This applies to both numeric and string tokens.
103 */
104CSSM_RETURN MDSAttrNameToValue(
105 const char *name,
106 const MDSNameValuePair *table,
107 uint32 &value); // RETURNED
108
109} // end namespace Security
110
111#endif /* _MDS_ATTR_STRINGS_H_ */