1/*
2 * Copyright (c) 2003-2006,2008,2010 Apple Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 *
23 * SecAsn1Templates.h - Common ASN1 primitive templates for use with SecAsn1Coder.
24 */
25
26#ifndef	_SEC_ASN1_TEMPLATES_H_
27#define _SEC_ASN1_TEMPLATES_H_
28
29#include <Security/SecAsn1Types.h>
30
31#ifdef  __cplusplus
32extern "C" {
33#endif
34
35/************************************************************************/
36
37/*
38 * Generic Templates
39 * One for each of the simple types, plus a special one for ANY, plus:
40 *	- a pointer to each one of those
41 *	- a set of each one of those
42 *	- a sequence of each one of those
43 */
44
45extern const SecAsn1Template kSecAsn1AnyTemplate[];
46extern const SecAsn1Template kSecAsn1BitStringTemplate[];
47extern const SecAsn1Template kSecAsn1BMPStringTemplate[];
48extern const SecAsn1Template kSecAsn1BooleanTemplate[];
49extern const SecAsn1Template kSecAsn1EnumeratedTemplate[];
50extern const SecAsn1Template kSecAsn1GeneralizedTimeTemplate[];
51extern const SecAsn1Template kSecAsn1IA5StringTemplate[];
52extern const SecAsn1Template kSecAsn1IntegerTemplate[];
53extern const SecAsn1Template kSecAsn1UnsignedIntegerTemplate[];
54extern const SecAsn1Template kSecAsn1NullTemplate[];
55extern const SecAsn1Template kSecAsn1ObjectIDTemplate[];
56extern const SecAsn1Template kSecAsn1OctetStringTemplate[];
57extern const SecAsn1Template kSecAsn1PrintableStringTemplate[];
58extern const SecAsn1Template kSecAsn1T61StringTemplate[];
59extern const SecAsn1Template kSecAsn1UniversalStringTemplate[];
60extern const SecAsn1Template kSecAsn1UTCTimeTemplate[];
61extern const SecAsn1Template kSecAsn1UTF8StringTemplate[];
62extern const SecAsn1Template kSecAsn1VisibleStringTemplate[];
63extern const SecAsn1Template kSecAsn1TeletexStringTemplate[];
64
65extern const SecAsn1Template kSecAsn1PointerToAnyTemplate[];
66extern const SecAsn1Template kSecAsn1PointerToBitStringTemplate[];
67extern const SecAsn1Template kSecAsn1PointerToBMPStringTemplate[];
68extern const SecAsn1Template kSecAsn1PointerToBooleanTemplate[];
69extern const SecAsn1Template kSecAsn1PointerToEnumeratedTemplate[];
70extern const SecAsn1Template kSecAsn1PointerToGeneralizedTimeTemplate[];
71extern const SecAsn1Template kSecAsn1PointerToIA5StringTemplate[];
72extern const SecAsn1Template kSecAsn1PointerToIntegerTemplate[];
73extern const SecAsn1Template kSecAsn1PointerToNullTemplate[];
74extern const SecAsn1Template kSecAsn1PointerToObjectIDTemplate[];
75extern const SecAsn1Template kSecAsn1PointerToOctetStringTemplate[];
76extern const SecAsn1Template kSecAsn1PointerToPrintableStringTemplate[];
77extern const SecAsn1Template kSecAsn1PointerToT61StringTemplate[];
78extern const SecAsn1Template kSecAsn1PointerToUniversalStringTemplate[];
79extern const SecAsn1Template kSecAsn1PointerToUTCTimeTemplate[];
80extern const SecAsn1Template kSecAsn1PointerToUTF8StringTemplate[];
81extern const SecAsn1Template kSecAsn1PointerToVisibleStringTemplate[];
82extern const SecAsn1Template kSecAsn1PointerToTeletexStringTemplate[];
83
84extern const SecAsn1Template kSecAsn1SequenceOfAnyTemplate[];
85extern const SecAsn1Template kSecAsn1SequenceOfBitStringTemplate[];
86extern const SecAsn1Template kSecAsn1SequenceOfBMPStringTemplate[];
87extern const SecAsn1Template kSecAsn1SequenceOfBooleanTemplate[];
88extern const SecAsn1Template kSecAsn1SequenceOfEnumeratedTemplate[];
89extern const SecAsn1Template kSecAsn1SequenceOfGeneralizedTimeTemplate[];
90extern const SecAsn1Template kSecAsn1SequenceOfIA5StringTemplate[];
91extern const SecAsn1Template kSecAsn1SequenceOfIntegerTemplate[];
92extern const SecAsn1Template kSecAsn1SequenceOfNullTemplate[];
93extern const SecAsn1Template kSecAsn1SequenceOfObjectIDTemplate[];
94extern const SecAsn1Template kSecAsn1SequenceOfOctetStringTemplate[];
95extern const SecAsn1Template kSecAsn1SequenceOfPrintableStringTemplate[];
96extern const SecAsn1Template kSecAsn1SequenceOfT61StringTemplate[];
97extern const SecAsn1Template kSecAsn1SequenceOfUniversalStringTemplate[];
98extern const SecAsn1Template kSecAsn1SequenceOfUTCTimeTemplate[];
99extern const SecAsn1Template kSecAsn1SequenceOfUTF8StringTemplate[];
100extern const SecAsn1Template kSecAsn1SequenceOfVisibleStringTemplate[];
101extern const SecAsn1Template kSecAsn1SequenceOfTeletexStringTemplate[];
102
103extern const SecAsn1Template kSecAsn1SetOfAnyTemplate[];
104extern const SecAsn1Template kSecAsn1SetOfBitStringTemplate[];
105extern const SecAsn1Template kSecAsn1SetOfBMPStringTemplate[];
106extern const SecAsn1Template kSecAsn1SetOfBooleanTemplate[];
107extern const SecAsn1Template kSecAsn1SetOfEnumeratedTemplate[];
108extern const SecAsn1Template kSecAsn1SetOfGeneralizedTimeTemplate[];
109extern const SecAsn1Template kSecAsn1SetOfIA5StringTemplate[];
110extern const SecAsn1Template kSecAsn1SetOfIntegerTemplate[];
111extern const SecAsn1Template kSecAsn1SetOfNullTemplate[];
112extern const SecAsn1Template kSecAsn1SetOfObjectIDTemplate[];
113extern const SecAsn1Template kSecAsn1SetOfOctetStringTemplate[];
114extern const SecAsn1Template kSecAsn1SetOfPrintableStringTemplate[];
115extern const SecAsn1Template kSecAsn1SetOfT61StringTemplate[];
116extern const SecAsn1Template kSecAsn1SetOfUniversalStringTemplate[];
117extern const SecAsn1Template kSecAsn1SetOfUTCTimeTemplate[];
118extern const SecAsn1Template kSecAsn1SetOfUTF8StringTemplate[];
119extern const SecAsn1Template kSecAsn1SetOfVisibleStringTemplate[];
120extern const SecAsn1Template kSecAsn1SetOfTeletexStringTemplate[];
121
122/*
123 * Template for skipping a subitem; only used when decoding.
124 */
125extern const SecAsn1Template kSecAsn1SkipTemplate[];
126
127#ifdef  __cplusplus
128}
129#endif
130
131#endif	/* _SEC_ASN1_TEMPLATES_H_ */
132