| OLD | NEW |
| (Empty) |
| 1 /* This Source Code Form is subject to the terms of the Mozilla Public | |
| 2 * License, v. 2.0. If a copy of the MPL was not distributed with this | |
| 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | |
| 4 | |
| 5 /* | |
| 6 * Templates that are compiled and exported from both libnss3 and libnssutil3. | |
| 7 * They have to be, because they were previously exported from libnss3, and | |
| 8 * there is no way to create data forwarder symbols on Unix. | |
| 9 * | |
| 10 * Please do not add to this file. New shared templates should be exported | |
| 11 * from libnssutil3 only. | |
| 12 * | |
| 13 */ | |
| 14 | |
| 15 #include "utilrename.h" | |
| 16 #include "secasn1.h" | |
| 17 #include "secder.h" | |
| 18 #include "secoid.h" | |
| 19 #include "secdig.h" | |
| 20 | |
| 21 const SEC_ASN1Template SECOID_AlgorithmIDTemplate[] = { | |
| 22 { SEC_ASN1_SEQUENCE, | |
| 23 0, NULL, sizeof(SECAlgorithmID) }, | |
| 24 { SEC_ASN1_OBJECT_ID, | |
| 25 offsetof(SECAlgorithmID,algorithm) }, | |
| 26 { SEC_ASN1_OPTIONAL | SEC_ASN1_ANY, | |
| 27 offsetof(SECAlgorithmID,parameters) }, | |
| 28 { 0 } | |
| 29 }; | |
| 30 | |
| 31 SEC_ASN1_CHOOSER_IMPLEMENT(SECOID_AlgorithmIDTemplate) | |
| 32 | |
| 33 const SEC_ASN1Template SEC_AnyTemplate[] = { | |
| 34 { SEC_ASN1_ANY | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) } | |
| 35 }; | |
| 36 | |
| 37 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_AnyTemplate) | |
| 38 | |
| 39 const SEC_ASN1Template SEC_BMPStringTemplate[] = { | |
| 40 { SEC_ASN1_BMP_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) } | |
| 41 }; | |
| 42 | |
| 43 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_BMPStringTemplate) | |
| 44 | |
| 45 const SEC_ASN1Template SEC_BitStringTemplate[] = { | |
| 46 { SEC_ASN1_BIT_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) } | |
| 47 }; | |
| 48 | |
| 49 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_BitStringTemplate) | |
| 50 | |
| 51 const SEC_ASN1Template SEC_BooleanTemplate[] = { | |
| 52 { SEC_ASN1_BOOLEAN, 0, NULL, sizeof(SECItem) } | |
| 53 }; | |
| 54 | |
| 55 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_BooleanTemplate) | |
| 56 | |
| 57 const SEC_ASN1Template SEC_GeneralizedTimeTemplate[] = { | |
| 58 { SEC_ASN1_GENERALIZED_TIME | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem)} | |
| 59 }; | |
| 60 | |
| 61 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_GeneralizedTimeTemplate) | |
| 62 | |
| 63 const SEC_ASN1Template SEC_IA5StringTemplate[] = { | |
| 64 { SEC_ASN1_IA5_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) } | |
| 65 }; | |
| 66 | |
| 67 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_IA5StringTemplate) | |
| 68 | |
| 69 const SEC_ASN1Template SEC_IntegerTemplate[] = { | |
| 70 { SEC_ASN1_INTEGER, 0, NULL, sizeof(SECItem) } | |
| 71 }; | |
| 72 | |
| 73 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_IntegerTemplate) | |
| 74 | |
| 75 const SEC_ASN1Template SEC_NullTemplate[] = { | |
| 76 { SEC_ASN1_NULL, 0, NULL, sizeof(SECItem) } | |
| 77 }; | |
| 78 | |
| 79 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_NullTemplate) | |
| 80 | |
| 81 const SEC_ASN1Template SEC_ObjectIDTemplate[] = { | |
| 82 { SEC_ASN1_OBJECT_ID, 0, NULL, sizeof(SECItem) } | |
| 83 }; | |
| 84 | |
| 85 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_ObjectIDTemplate) | |
| 86 | |
| 87 const SEC_ASN1Template SEC_OctetStringTemplate[] = { | |
| 88 { SEC_ASN1_OCTET_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) } | |
| 89 }; | |
| 90 | |
| 91 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_OctetStringTemplate) | |
| 92 | |
| 93 const SEC_ASN1Template SEC_PointerToAnyTemplate[] = { | |
| 94 { SEC_ASN1_POINTER, 0, SEC_AnyTemplate } | |
| 95 }; | |
| 96 | |
| 97 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_PointerToAnyTemplate) | |
| 98 | |
| 99 const SEC_ASN1Template SEC_PointerToOctetStringTemplate[] = { | |
| 100 { SEC_ASN1_POINTER | SEC_ASN1_MAY_STREAM, 0, SEC_OctetStringTemplate } | |
| 101 }; | |
| 102 | |
| 103 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_PointerToOctetStringTemplate) | |
| 104 | |
| 105 const SEC_ASN1Template SEC_SetOfAnyTemplate[] = { | |
| 106 { SEC_ASN1_SET_OF, 0, SEC_AnyTemplate } | |
| 107 }; | |
| 108 | |
| 109 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_SetOfAnyTemplate) | |
| 110 | |
| 111 const SEC_ASN1Template SEC_UTCTimeTemplate[] = { | |
| 112 { SEC_ASN1_UTC_TIME | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) } | |
| 113 }; | |
| 114 | |
| 115 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_UTCTimeTemplate) | |
| 116 | |
| 117 const SEC_ASN1Template SEC_UTF8StringTemplate[] = { | |
| 118 { SEC_ASN1_UTF8_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem)} | |
| 119 }; | |
| 120 | |
| 121 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_UTF8StringTemplate) | |
| 122 | |
| 123 /* XXX See comment below about SGN_DecodeDigestInfo -- keep this static! */ | |
| 124 /* XXX Changed from static -- need to change name? */ | |
| 125 const SEC_ASN1Template sgn_DigestInfoTemplate[] = { | |
| 126 { SEC_ASN1_SEQUENCE, | |
| 127 0, NULL, sizeof(SGNDigestInfo) }, | |
| 128 { SEC_ASN1_INLINE, | |
| 129 offsetof(SGNDigestInfo,digestAlgorithm), | |
| 130 SECOID_AlgorithmIDTemplate }, | |
| 131 { SEC_ASN1_OCTET_STRING, | |
| 132 offsetof(SGNDigestInfo,digest) }, | |
| 133 { 0 } | |
| 134 }; | |
| 135 | |
| 136 SEC_ASN1_CHOOSER_IMPLEMENT(sgn_DigestInfoTemplate) | |
| OLD | NEW |