security/nss/lib/util/templates.c

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/security/nss/lib/util/templates.c	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,136 @@
     1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.7 +
     1.8 +/*
     1.9 + * Templates that are compiled and exported from both libnss3 and libnssutil3.
    1.10 + * They have to be, because they were previously exported from libnss3, and
    1.11 + * there is no way to create data forwarder symbols on Unix.
    1.12 + *
    1.13 + * Please do not add to this file. New shared templates should be exported
    1.14 + * from libnssutil3 only.
    1.15 + *
    1.16 + */
    1.17 +
    1.18 +#include "utilrename.h"
    1.19 +#include "secasn1.h"
    1.20 +#include "secder.h"
    1.21 +#include "secoid.h"
    1.22 +#include "secdig.h"
    1.23 +
    1.24 +const SEC_ASN1Template SECOID_AlgorithmIDTemplate[] = {
    1.25 +    { SEC_ASN1_SEQUENCE,
    1.26 +	  0, NULL, sizeof(SECAlgorithmID) },
    1.27 +    { SEC_ASN1_OBJECT_ID,
    1.28 +	  offsetof(SECAlgorithmID,algorithm), },
    1.29 +    { SEC_ASN1_OPTIONAL | SEC_ASN1_ANY,
    1.30 +	  offsetof(SECAlgorithmID,parameters), },
    1.31 +    { 0, }
    1.32 +};
    1.33 +
    1.34 +SEC_ASN1_CHOOSER_IMPLEMENT(SECOID_AlgorithmIDTemplate)
    1.35 +
    1.36 +const SEC_ASN1Template SEC_AnyTemplate[] = {
    1.37 +    { SEC_ASN1_ANY | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
    1.38 +};
    1.39 +
    1.40 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_AnyTemplate)
    1.41 +
    1.42 +const SEC_ASN1Template SEC_BMPStringTemplate[] = {
    1.43 +    { SEC_ASN1_BMP_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
    1.44 +};
    1.45 +
    1.46 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_BMPStringTemplate)
    1.47 +
    1.48 +const SEC_ASN1Template SEC_BitStringTemplate[] = {
    1.49 +    { SEC_ASN1_BIT_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
    1.50 +};
    1.51 +
    1.52 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_BitStringTemplate)
    1.53 +
    1.54 +const SEC_ASN1Template SEC_BooleanTemplate[] = {
    1.55 +    { SEC_ASN1_BOOLEAN, 0, NULL, sizeof(SECItem) }
    1.56 +};
    1.57 +
    1.58 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_BooleanTemplate)
    1.59 +
    1.60 +const SEC_ASN1Template SEC_GeneralizedTimeTemplate[] = {
    1.61 +    { SEC_ASN1_GENERALIZED_TIME | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem)}
    1.62 +};
    1.63 +
    1.64 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_GeneralizedTimeTemplate)
    1.65 +
    1.66 +const SEC_ASN1Template SEC_IA5StringTemplate[] = {
    1.67 +    { SEC_ASN1_IA5_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
    1.68 +};
    1.69 +
    1.70 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_IA5StringTemplate)
    1.71 +
    1.72 +const SEC_ASN1Template SEC_IntegerTemplate[] = {
    1.73 +    { SEC_ASN1_INTEGER, 0, NULL, sizeof(SECItem) }
    1.74 +};
    1.75 +
    1.76 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_IntegerTemplate)
    1.77 +
    1.78 +const SEC_ASN1Template SEC_NullTemplate[] = {
    1.79 +    { SEC_ASN1_NULL, 0, NULL, sizeof(SECItem) }
    1.80 +};
    1.81 +
    1.82 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_NullTemplate)
    1.83 +
    1.84 +const SEC_ASN1Template SEC_ObjectIDTemplate[] = {
    1.85 +    { SEC_ASN1_OBJECT_ID, 0, NULL, sizeof(SECItem) }
    1.86 +};
    1.87 +
    1.88 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_ObjectIDTemplate)
    1.89 +
    1.90 +const SEC_ASN1Template SEC_OctetStringTemplate[] = {
    1.91 +    { SEC_ASN1_OCTET_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
    1.92 +};
    1.93 +
    1.94 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_OctetStringTemplate)
    1.95 +
    1.96 +const SEC_ASN1Template SEC_PointerToAnyTemplate[] = {
    1.97 +    { SEC_ASN1_POINTER, 0, SEC_AnyTemplate }
    1.98 +};
    1.99 +
   1.100 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_PointerToAnyTemplate)
   1.101 +
   1.102 +const SEC_ASN1Template SEC_PointerToOctetStringTemplate[] = {
   1.103 +    { SEC_ASN1_POINTER | SEC_ASN1_MAY_STREAM, 0, SEC_OctetStringTemplate }
   1.104 +};
   1.105 +
   1.106 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_PointerToOctetStringTemplate)
   1.107 +
   1.108 +const SEC_ASN1Template SEC_SetOfAnyTemplate[] = {
   1.109 +    { SEC_ASN1_SET_OF, 0, SEC_AnyTemplate }
   1.110 +};
   1.111 +
   1.112 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_SetOfAnyTemplate)
   1.113 +
   1.114 +const SEC_ASN1Template SEC_UTCTimeTemplate[] = {
   1.115 +    { SEC_ASN1_UTC_TIME | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
   1.116 +};
   1.117 +
   1.118 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_UTCTimeTemplate)
   1.119 +
   1.120 +const SEC_ASN1Template SEC_UTF8StringTemplate[] = {
   1.121 +    { SEC_ASN1_UTF8_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem)}
   1.122 +};
   1.123 +
   1.124 +SEC_ASN1_CHOOSER_IMPLEMENT(SEC_UTF8StringTemplate)
   1.125 +
   1.126 +/* XXX See comment below about SGN_DecodeDigestInfo -- keep this static! */
   1.127 +/* XXX Changed from static -- need to change name? */
   1.128 +const SEC_ASN1Template sgn_DigestInfoTemplate[] = {
   1.129 +    { SEC_ASN1_SEQUENCE,
   1.130 +	  0, NULL, sizeof(SGNDigestInfo) },
   1.131 +    { SEC_ASN1_INLINE,
   1.132 +	  offsetof(SGNDigestInfo,digestAlgorithm),
   1.133 +	  SECOID_AlgorithmIDTemplate },
   1.134 +    { SEC_ASN1_OCTET_STRING,
   1.135 +	  offsetof(SGNDigestInfo,digest) },
   1.136 +    { 0 }
   1.137 +};
   1.138 +
   1.139 +SEC_ASN1_CHOOSER_IMPLEMENT(sgn_DigestInfoTemplate)

mercurial