]>
Commit | Line | Data |
---|---|---|
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 | ||
32 | namespace Security | |
33 | { | |
34 | ||
35 | /* | |
36 | * Each type of attribute has a name/value pair in a table of these: | |
37 | */ | |
38 | typedef struct { | |
39 | uint32 value; | |
40 | const char *name; | |
41 | } MDSNameValuePair; | |
42 | ||
43 | /* | |
44 | * Various tables. | |
45 | */ | |
46 | ||
47 | /* attributes in Object and Common relations */ | |
48 | extern const MDSNameValuePair MDSServiceNames[]; // CSSM_SERVICE_MASK | |
49 | ||
50 | /* CSP attributes */ | |
51 | extern const MDSNameValuePair MDSContextTypeNames[]; // CSSM_CONTEXT_TYPE | |
52 | extern const MDSNameValuePair MDSAttributeTypeNames[]; // CSSM_ATTRIBUTE_TYPE | |
53 | extern const MDSNameValuePair MDSPaddingNames[]; // CSSM_PADDING | |
54 | extern const MDSNameValuePair MDSCspFlagsNames[]; // CSSM_CSP_FLAGS | |
55 | extern const MDSNameValuePair MDSAlgorithmNames[]; // CSSM_ALGORITHMS | |
56 | extern const MDSNameValuePair MDSEncryptModeNames[]; // CSSM_ENCRYPT_MODE | |
57 | extern const MDSNameValuePair MDSCspTypeNames[]; // CSSM_CSPTYPE | |
58 | extern const MDSNameValuePair MDSUseeTagsNames[]; // CSSM_USEE_TAG | |
59 | extern const MDSNameValuePair MDSCspReaderFlagsNames[]; // CSSM_CSP_READER_FLAGS | |
60 | extern const MDSNameValuePair MDSCspScFlagsNames[]; // CSSM_SC_FLAGS | |
61 | ||
62 | /* CL attributes */ | |
63 | extern const MDSNameValuePair MDSCertTypeNames[]; // CSSM_CERT_TYPE | |
64 | extern const MDSNameValuePair MDSCrlTypeNames[]; // CSSM_CRL_TYPE | |
65 | extern const MDSNameValuePair MDSCertBundleTypeNames[]; // CSSM_CERT_BUNDLE_TYPE | |
66 | extern const MDSNameValuePair MDSCertTemplateTypeNames[]; | |
67 | // CSSM_CL_TEMPLATE_TYPE | |
68 | ||
69 | /* TP attributes */ | |
70 | /* CSSM_TP_AUTHORITY_REQUEST_CERTISSUE */ | |
71 | extern const MDSNameValuePair MDSTpAuthRequestNames[]; | |
72 | // CSSM_TP_AUTHORITY_REQUEST_CERTISSUE | |
73 | ||
74 | /* DL attributes */ | |
75 | extern const MDSNameValuePair MDSDlTypeNames[]; // CSSM_DLTYPE | |
76 | extern const MDSNameValuePair MDSDbConjunctiveNames[]; // CSSM_DB_CONJUNCTIVE | |
77 | extern const MDSNameValuePair MDSDbOperatorNames[]; // CSSM_DB_OPERATOR | |
78 | extern const MDSNameValuePair MDSNetProtocolNames[]; // CSSM_NET_PROTOCOL | |
79 | extern const MDSNameValuePair MDSDbRetrievalModeNames[];// CSSM_DB_RETRIEVAL_MODES | |
80 | ||
81 | /* misc. */ | |
82 | extern const MDSNameValuePair MDSAclSubjectTypeNames[]; // CSSM_ACL_SUBJECT_TYPE | |
83 | extern const MDSNameValuePair MDSAclAuthTagNames[]; // CSSM_ACL_AUTHORIZATION_TAG | |
84 | extern const MDSNameValuePair MDSSampleTypeNames[]; // CSSM_SAMPLE_TYPE | |
85 | extern 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 | */ | |
104 | CSSM_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_ */ |