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