2 * Copyright (c) 2000-2001,2011,2014 Apple Inc. All Rights Reserved.
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
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.
20 File: MDSAttrStrings.h
22 Contains: Static tables to map attribute names to numeric values.
24 Copyright (c) 2001,2011,2014 Apple Inc. All Rights Reserved.
27 #ifndef _MDS_ATTR_STRINGS_H_
28 #define _MDS_ATTR_STRINGS_H_ 1
30 #include <Security/cssmtype.h>
36 * Each type of attribute has a name/value pair in a table of these:
47 /* attributes in Object and Common relations */
48 extern const MDSNameValuePair MDSServiceNames
[]; // CSSM_SERVICE_MASK
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
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
70 /* CSSM_TP_AUTHORITY_REQUEST_CERTISSUE */
71 extern const MDSNameValuePair MDSTpAuthRequestNames
[];
72 // CSSM_TP_AUTHORITY_REQUEST_CERTISSUE
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
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
87 // extern const MDSNameValuePair MDSRecordTypeNames[]; // CSSM_DB_RECORDTYPE
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
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.
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.
104 CSSM_RETURN
MDSAttrNameToValue(
106 const MDSNameValuePair
*table
,
107 uint32
&value
); // RETURNED
109 } // end namespace Security
111 #endif /* _MDS_ATTR_STRINGS_H_ */