security/nss/lib/util/templates.c

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     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/. */
     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  */
    15 #include "utilrename.h"
    16 #include "secasn1.h"
    17 #include "secder.h"
    18 #include "secoid.h"
    19 #include "secdig.h"
    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 };
    31 SEC_ASN1_CHOOSER_IMPLEMENT(SECOID_AlgorithmIDTemplate)
    33 const SEC_ASN1Template SEC_AnyTemplate[] = {
    34     { SEC_ASN1_ANY | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
    35 };
    37 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_AnyTemplate)
    39 const SEC_ASN1Template SEC_BMPStringTemplate[] = {
    40     { SEC_ASN1_BMP_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
    41 };
    43 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_BMPStringTemplate)
    45 const SEC_ASN1Template SEC_BitStringTemplate[] = {
    46     { SEC_ASN1_BIT_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
    47 };
    49 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_BitStringTemplate)
    51 const SEC_ASN1Template SEC_BooleanTemplate[] = {
    52     { SEC_ASN1_BOOLEAN, 0, NULL, sizeof(SECItem) }
    53 };
    55 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_BooleanTemplate)
    57 const SEC_ASN1Template SEC_GeneralizedTimeTemplate[] = {
    58     { SEC_ASN1_GENERALIZED_TIME | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem)}
    59 };
    61 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_GeneralizedTimeTemplate)
    63 const SEC_ASN1Template SEC_IA5StringTemplate[] = {
    64     { SEC_ASN1_IA5_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
    65 };
    67 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_IA5StringTemplate)
    69 const SEC_ASN1Template SEC_IntegerTemplate[] = {
    70     { SEC_ASN1_INTEGER, 0, NULL, sizeof(SECItem) }
    71 };
    73 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_IntegerTemplate)
    75 const SEC_ASN1Template SEC_NullTemplate[] = {
    76     { SEC_ASN1_NULL, 0, NULL, sizeof(SECItem) }
    77 };
    79 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_NullTemplate)
    81 const SEC_ASN1Template SEC_ObjectIDTemplate[] = {
    82     { SEC_ASN1_OBJECT_ID, 0, NULL, sizeof(SECItem) }
    83 };
    85 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_ObjectIDTemplate)
    87 const SEC_ASN1Template SEC_OctetStringTemplate[] = {
    88     { SEC_ASN1_OCTET_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
    89 };
    91 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_OctetStringTemplate)
    93 const SEC_ASN1Template SEC_PointerToAnyTemplate[] = {
    94     { SEC_ASN1_POINTER, 0, SEC_AnyTemplate }
    95 };
    97 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_PointerToAnyTemplate)
    99 const SEC_ASN1Template SEC_PointerToOctetStringTemplate[] = {
   100     { SEC_ASN1_POINTER | SEC_ASN1_MAY_STREAM, 0, SEC_OctetStringTemplate }
   101 };
   103 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_PointerToOctetStringTemplate)
   105 const SEC_ASN1Template SEC_SetOfAnyTemplate[] = {
   106     { SEC_ASN1_SET_OF, 0, SEC_AnyTemplate }
   107 };
   109 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_SetOfAnyTemplate)
   111 const SEC_ASN1Template SEC_UTCTimeTemplate[] = {
   112     { SEC_ASN1_UTC_TIME | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
   113 };
   115 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_UTCTimeTemplate)
   117 const SEC_ASN1Template SEC_UTF8StringTemplate[] = {
   118     { SEC_ASN1_UTF8_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem)}
   119 };
   121 SEC_ASN1_CHOOSER_IMPLEMENT(SEC_UTF8StringTemplate)
   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 };
   136 SEC_ASN1_CHOOSER_IMPLEMENT(sgn_DigestInfoTemplate)

mercurial