nsspkixt.h
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:53k
源码类别:

CA认证

开发平台:

WINDOWS

  1. /* 
  2.  * The contents of this file are subject to the Mozilla Public
  3.  * License Version 1.1 (the "License"); you may not use this file
  4.  * except in compliance with the License. You may obtain a copy of
  5.  * the License at http://www.mozilla.org/MPL/
  6.  * 
  7.  * Software distributed under the License is distributed on an "AS
  8.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9.  * implied. See the License for the specific language governing
  10.  * rights and limitations under the License.
  11.  * 
  12.  * The Original Code is the Netscape security libraries.
  13.  * 
  14.  * The Initial Developer of the Original Code is Netscape
  15.  * Communications Corporation.  Portions created by Netscape are 
  16.  * Copyright (C) 1994-2000 Netscape Communications Corporation.  All
  17.  * Rights Reserved.
  18.  * 
  19.  * Contributor(s):
  20.  * 
  21.  * Alternatively, the contents of this file may be used under the
  22.  * terms of the GNU General Public License Version 2 or later (the
  23.  * "GPL"), in which case the provisions of the GPL are applicable 
  24.  * instead of those above.  If you wish to allow use of your 
  25.  * version of this file only under the terms of the GPL and not to
  26.  * allow others to use your version of this file under the MPL,
  27.  * indicate your decision by deleting the provisions above and
  28.  * replace them with the notice and other provisions required by
  29.  * the GPL.  If you do not delete the provisions above, a recipient
  30.  * may use your version of this file under either the MPL or the
  31.  * GPL.
  32.  */
  33. #ifndef NSSPKIXT_H
  34. #define NSSPKIXT_H
  35. #ifdef DEBUG
  36. static const char NSSPKIXT_CVS_ID[] = "@(#) $Source: /cvsroot/mozilla/security/nss/lib/pkix/include/nsspkixt.h,v $ $Revision: 1.1 $ $Date: 2000/03/31 19:02:44 $ $Name: NSS_3_1_1_RTM $";
  37. #endif /* DEBUG */
  38. /*
  39.  * nsspkixt.h
  40.  *
  41.  * This file contains the public type definitions for the PKIX part-1
  42.  * objects.  The contents are strongly based on the types defined in
  43.  * RFC 2459 {fgmr: and others, e.g., s/mime?}.  The type names have
  44.  * been prefixed with "NSSPKIX."
  45.  */
  46. #ifndef NSSBASET_H
  47. #include "nssbaset.h"
  48. #endif /* NSSBASET_H */
  49. PR_BEGIN_EXTERN_C
  50. /*
  51.  * A Note About Strings
  52.  *
  53.  * RFC 2459 refers to several types of strings, including UniversalString,
  54.  * BMPString, UTF8String, TeletexString, PrintableString, IA5String, and
  55.  * more.  As with the rest of the NSS libraries, all strings are converted
  56.  * to UTF8 form as soon as possible, and dealt with in that form from
  57.  * then on.
  58.  *
  59.  */
  60. /*
  61.  * Attribute
  62.  *
  63.  * -- fgmr comments --
  64.  *
  65.  * From RFC 2459:
  66.  *
  67.  *  Attribute       ::=     SEQUENCE {
  68.  *          type            AttributeType,
  69.  *          values  SET OF AttributeValue
  70.  *                  -- at least one value is required -- }
  71.  *
  72.  */
  73. struct NSSPKIXAttributeStr;
  74. typedef struct NSSPKIXAttributeStr NSSPKIXAttribute;
  75. /*
  76.  * AttributeType
  77.  *
  78.  * -- fgmr comments --
  79.  *
  80.  * From RFC 2459:
  81.  *
  82.  *  AttributeType           ::=   OBJECT IDENTIFIER
  83.  *
  84.  */
  85. typedef NSSOID NSSPKIXAttributeType;
  86. /*
  87.  * AttributeValue
  88.  *
  89.  * -- fgmr comments --
  90.  *
  91.  * From RFC 2459:
  92.  *
  93.  *  AttributeValue          ::=   ANY
  94.  *
  95.  */
  96. typedef NSSItem NSSPKIXAttributeValue;
  97. /*
  98.  * AttributeTypeAndValue
  99.  *
  100.  * This structure contains an attribute type (indicated by an OID), 
  101.  * and the type-specific value.  RelativeDistinguishedNamess consist
  102.  * of a set of these.  These are distinct from Attributes (which have
  103.  * SET of values), from AttributeDescriptions (which have qualifiers
  104.  * on the types), and from AttributeValueAssertions (which assert a
  105.  * a value comparison under some matching rule).
  106.  *
  107.  * From RFC 2459:
  108.  *
  109.  *  AttributeTypeAndValue           ::=     SEQUENCE {
  110.  *          type    AttributeType,
  111.  *          value   AttributeValue }
  112.  * 
  113.  */
  114. struct NSSPKIXAttributeTypeAndValueStr;
  115. typedef struct NSSPKIXAttributeTypeAndValueStr NSSPKIXAttributeTypeAndValue;
  116. /*
  117.  * X520Name
  118.  *
  119.  * -- fgmr comments --
  120.  *
  121.  * From RFC 2459:
  122.  *
  123.  *  X520name        ::= CHOICE {
  124.  *        teletexString         TeletexString (SIZE (1..ub-name)),
  125.  *        printableString       PrintableString (SIZE (1..ub-name)),
  126.  *        universalString       UniversalString (SIZE (1..ub-name)),
  127.  *        utf8String            UTF8String (SIZE (1..ub-name)),
  128.  *        bmpString             BMPString (SIZE(1..ub-name))   }
  129.  *
  130.  */
  131. struct NSSPKIXX520NameStr;
  132. typedef struct NSSPKIXX520NameStr NSSPKIXX520Name;
  133. /*
  134.  * X520CommonName
  135.  *
  136.  * -- fgmr comments --
  137.  *
  138.  * From RFC 2459:
  139.  *
  140.  *  X520CommonName  ::=      CHOICE {
  141.  *        teletexString         TeletexString (SIZE (1..ub-common-name)),
  142.  *        printableString       PrintableString (SIZE (1..ub-common-name)),
  143.  *        universalString       UniversalString (SIZE (1..ub-common-name)),
  144.  *        utf8String            UTF8String (SIZE (1..ub-common-name)),
  145.  *        bmpString             BMPString (SIZE(1..ub-common-name))   }
  146.  * 
  147.  */
  148. struct NSSPKIXX520CommonNameStr;
  149. typedef struct NSSPKIXX520CommonNameStr NSSPKIXX520CommonName;
  150. /*
  151.  * X520LocalityName
  152.  *
  153.  * -- fgmr comments --
  154.  *
  155.  * From RFC 2459:
  156.  *
  157.  *  X520LocalityName ::= CHOICE {
  158.  *        teletexString       TeletexString (SIZE (1..ub-locality-name)),
  159.  *        printableString     PrintableString (SIZE (1..ub-locality-name)),
  160.  *        universalString     UniversalString (SIZE (1..ub-locality-name)),
  161.  *        utf8String          UTF8String (SIZE (1..ub-locality-name)),
  162.  *        bmpString           BMPString (SIZE(1..ub-locality-name))   }
  163.  * 
  164.  */
  165. struct NSSPKIXX520LocalityNameStr;
  166. typedef struct NSSPKIXX520LocalityNameStr NSSPKIXX520LocalityName;
  167. /*
  168.  * X520StateOrProvinceName
  169.  *
  170.  * -- fgmr comments --
  171.  *
  172.  * From RFC 2459:
  173.  *
  174.  *  X520StateOrProvinceName         ::= CHOICE {
  175.  *        teletexString       TeletexString (SIZE (1..ub-state-name)),
  176.  *        printableString     PrintableString (SIZE (1..ub-state-name)),
  177.  *        universalString     UniversalString (SIZE (1..ub-state-name)),
  178.  *        utf8String          UTF8String (SIZE (1..ub-state-name)),
  179.  *        bmpString           BMPString (SIZE(1..ub-state-name))   }
  180.  *
  181.  */
  182. struct NSSPKIXX520StateOrProvinceNameStr;
  183. typedef struct NSSPKIXX520StateOrProvinceNameStr NSSPKIXX520StateOrProvinceName;
  184. /*
  185.  * X520OrganizationName
  186.  *
  187.  * -- fgmr comments --
  188.  *
  189.  * From RFC 2459:
  190.  *
  191.  *  X520OrganizationName ::= CHOICE {
  192.  *    teletexString     TeletexString (SIZE (1..ub-organization-name)),
  193.  *    printableString   PrintableString (SIZE (1..ub-organization-name)),
  194.  *    universalString   UniversalString (SIZE (1..ub-organization-name)),
  195.  *    utf8String        UTF8String (SIZE (1..ub-organization-name)),
  196.  *    bmpString         BMPString (SIZE(1..ub-organization-name))   }
  197.  *
  198.  */
  199. struct NSSPKIXX520OrganizationNameStr;
  200. typedef struct NSSPKIXX520OrganizationNameStr NSSPKIXX520OrganizationName;
  201. /*
  202.  * X520OrganizationalUnitName
  203.  *
  204.  * -- fgmr comments --
  205.  *
  206.  * From RFC 2459:
  207.  *
  208.  *  X520OrganizationalUnitName ::= CHOICE {
  209.  *   teletexString    TeletexString (SIZE (1..ub-organizational-unit-name)),
  210.  *   printableString        PrintableString
  211.  *                        (SIZE (1..ub-organizational-unit-name)),
  212.  *   universalString        UniversalString
  213.  *                        (SIZE (1..ub-organizational-unit-name)),
  214.  *   utf8String       UTF8String (SIZE (1..ub-organizational-unit-name)),
  215.  *   bmpString        BMPString (SIZE(1..ub-organizational-unit-name))   }
  216.  *
  217.  */
  218. struct NSSPKIXX520OrganizationalUnitNameStr;
  219. typedef struct NSSPKIXX520OrganizationalUnitNameStr NSSPKIXX520OrganizationalUnitName;
  220. /*
  221.  * X520Title
  222.  *
  223.  * -- fgmr comments --
  224.  *
  225.  * From RFC 2459:
  226.  *
  227.  *  X520Title ::=   CHOICE {
  228.  *        teletexString         TeletexString (SIZE (1..ub-title)),
  229.  *        printableString       PrintableString (SIZE (1..ub-title)),
  230.  *        universalString       UniversalString (SIZE (1..ub-title)),
  231.  *        utf8String            UTF8String (SIZE (1..ub-title)),
  232.  *        bmpString             BMPString (SIZE(1..ub-title))   }
  233.  *
  234.  */
  235. struct NSSPKIXX520TitleStr;
  236. typedef struct NSSPKIXX520TitleStr NSSPKIXX520Title;
  237. /*
  238.  * X520dnQualifier
  239.  *
  240.  * -- fgmr comments --
  241.  *
  242.  * From RFC 2459:
  243.  *
  244.  *  X520dnQualifier ::=     PrintableString
  245.  *
  246.  */
  247. struct NSSPKIXX520dnQualifierStr;
  248. typedef struct NSSPKIXX520dnQualifierStr NSSPKIXX520dnQualifier;
  249. /*
  250.  * X520countryName
  251.  *
  252.  * -- fgmr comments --
  253.  *
  254.  * From RFC 2459:
  255.  *
  256.  *  X520countryName ::=     PrintableString (SIZE (2)) -- IS 3166 codes
  257.  *
  258.  */
  259. struct NSSPKIXX520countryNameStr;
  260. typedef struct NSSPKIXX520countryNameStr NSSPKIXX520countryName;
  261. /*
  262.  * Pkcs9email
  263.  *
  264.  * -- fgmr comments --
  265.  *
  266.  * From RFC 2459:
  267.  *
  268.  *  Pkcs9email ::= IA5String (SIZE (1..ub-emailaddress-length))
  269.  *
  270.  */
  271. struct NSSPKIXPkcs9emailStr;
  272. typedef struct NSSPKIXPkcs9emailStr NSSPKIXPkcs9email;
  273. /*
  274.  * Name
  275.  *
  276.  * This structure contains a union of the possible name formats,
  277.  * which at the moment is limited to an RDNSequence.
  278.  *
  279.  * From RFC 2459:
  280.  *
  281.  *  Name            ::=   CHOICE { -- only one possibility for now --
  282.  *                                   rdnSequence  RDNSequence }
  283.  *
  284.  */
  285. struct NSSPKIXNameStr;
  286. typedef struct NSSPKIXNameStr NSSPKIXName;
  287. /*
  288.  * NameChoice
  289.  *
  290.  * This enumeration is used to specify choice within a name.
  291.  */
  292. enum NSSPKIXNameChoiceEnum {
  293.   NSSPKIXNameChoice_NSSinvalid = -1,
  294.   NSSPKIXNameChoice_rdnSequence
  295. };
  296. typedef enum NSSPKIXNameChoiceEnum NSSPKIXNameChoice;
  297. /*
  298.  * RDNSequence
  299.  *
  300.  * This structure contains a sequence of RelativeDistinguishedName
  301.  * objects.
  302.  *
  303.  * From RFC 2459:
  304.  *
  305.  *  RDNSequence     ::=   SEQUENCE OF RelativeDistinguishedName
  306.  *
  307.  */
  308. struct NSSPKIXRDNSequenceStr;
  309. typedef struct NSSPKIXRDNSequenceStr NSSPKIXRDNSequence;
  310. /*
  311.  * DistinguishedName
  312.  *
  313.  * -- fgmr comments --
  314.  *
  315.  * From RFC 2459:
  316.  *
  317.  *  DistinguishedName       ::=   RDNSequence
  318.  *
  319.  */
  320. typedef NSSPKIXRDNSequence NSSPKIXDistinguishedName;
  321. /*
  322.  * RelativeDistinguishedName
  323.  *
  324.  * This structure contains an unordered set of AttributeTypeAndValue 
  325.  * objects.  RDNs are used to distinguish a set of objects underneath 
  326.  * a common object.
  327.  *
  328.  * Often, a single ATAV is sufficient to make a unique distinction.
  329.  * For example, if a company assigns its people unique uid values,
  330.  * then in the Name "uid=smith,ou=People,o=Acme,c=US" the "uid=smith"
  331.  * ATAV by itself forms an RDN.  However, sometimes a set of ATAVs is
  332.  * needed.  For example, if a company needed to distinguish between
  333.  * two Smiths by specifying their corporate divisions, then in the
  334.  * Name "(cn=Smith,ou=Sales),ou=People,o=Acme,c=US" the parenthesised
  335.  * set of ATAVs forms the RDN.
  336.  *
  337.  * From RFC 2459:
  338.  *
  339.  *  RelativeDistinguishedName  ::=
  340.  *                      SET SIZE (1 .. MAX) OF AttributeTypeAndValue
  341.  *
  342.  */
  343. struct NSSPKIXRelativeDistinguishedNameStr;
  344. typedef struct NSSPKIXRelativeDistinguishedNameStr NSSPKIXRelativeDistinguishedName;
  345. /*
  346.  * DirectoryString
  347.  *
  348.  * -- fgmr comments --
  349.  *
  350.  * From RFC 2459:
  351.  *
  352.  *  DirectoryString ::= CHOICE {
  353.  *        teletexString             TeletexString (SIZE (1..MAX)),
  354.  *        printableString           PrintableString (SIZE (1..MAX)),
  355.  *        universalString           UniversalString (SIZE (1..MAX)),
  356.  *        utf8String              UTF8String (SIZE (1..MAX)),
  357.  *        bmpString               BMPString (SIZE(1..MAX))   }
  358.  *
  359.  */
  360. struct NSSPKIXDirectoryStringStr;
  361. typedef struct NSSPKIXDirectoryStringStr NSSPKIXDirectoryString;
  362. /*
  363.  * Certificate
  364.  *
  365.  * -- fgmr comments --
  366.  *
  367.  * From RFC 2459:
  368.  *
  369.  *  Certificate  ::=  SEQUENCE  {
  370.  *       tbsCertificate       TBSCertificate,
  371.  *       signatureAlgorithm   AlgorithmIdentifier,
  372.  *       signature            BIT STRING  }
  373.  *
  374.  */
  375. struct NSSPKIXCertificateStr;
  376. typedef struct NSSPKIXCertificateStr NSSPKIXCertificate;
  377. /*
  378.  * TBSCertificate
  379.  *
  380.  * -- fgmr comments --
  381.  *
  382.  * From RFC 2459:
  383.  *
  384.  *  TBSCertificate  ::=  SEQUENCE  {
  385.  *       version         [0]  Version DEFAULT v1,
  386.  *       serialNumber         CertificateSerialNumber,
  387.  *       signature            AlgorithmIdentifier,
  388.  *       issuer               Name,
  389.  *       validity             Validity,
  390.  *       subject              Name,
  391.  *       subjectPublicKeyInfo SubjectPublicKeyInfo,
  392.  *       issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
  393.  *                            -- If present, version shall be v2 or v3
  394.  *       subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,
  395.  *                            -- If present, version shall be v2 or v3
  396.  *       extensions      [3]  Extensions OPTIONAL
  397.  *                            -- If present, version shall be v3 --  }
  398.  *
  399.  */
  400. struct NSSPKIXTBSCertificateStr;
  401. typedef struct NSSPKIXTBSCertificateStr NSSPKIXTBSCertificate;
  402. /*
  403.  * Version
  404.  *
  405.  * -- fgmr comments --
  406.  *
  407.  * From RFC 2459:
  408.  *
  409.  *  Version  ::=  INTEGER  {  v1(0), v2(1), v3(2)  }
  410.  *
  411.  */
  412. enum NSSPKIXVersionEnum {
  413.   NSSPKIXVersion_NSSinvalid = -1,
  414.   NSSPKIXVersion_v1 = 0,
  415.   NSSPKIXVersion_v2 = 1,
  416.   NSSPKIXVersion_v3 = 2
  417. };
  418. typedef enum NSSPKIXVersionEnum NSSPKIXVersion;
  419. /*
  420.  * CertificateSerialNumber
  421.  *
  422.  * -- fgmr comments --
  423.  *
  424.  * From RFC 2459:
  425.  *
  426.  *  CertificateSerialNumber  ::=  INTEGER
  427.  *
  428.  */
  429. typedef NSSBER NSSPKIXCertificateSerialNumber;
  430. /*
  431.  * Validity
  432.  *
  433.  * -- fgmr comments --
  434.  *
  435.  * From RFC 2459:
  436.  *
  437.  *  Validity ::= SEQUENCE {
  438.  *       notBefore      Time,
  439.  *       notAfter       Time }
  440.  *
  441.  */
  442. struct NSSPKIXValidityStr;
  443. typedef struct NSSPKIXValidityStr NSSPKIXValidity;
  444. /*
  445.  * Time
  446.  *
  447.  * -- fgmr comments --
  448.  *
  449.  * From RFC 2459:
  450.  *
  451.  *  Time ::= CHOICE {
  452.  *       utcTime        UTCTime,
  453.  *       generalTime    GeneralizedTime }
  454.  *
  455.  */
  456. struct NSSPKIXTimeStr;
  457. typedef struct NSSPKIXTimeStr NSSPKIXTime;
  458. /*
  459.  * UniqueIdentifier
  460.  *
  461.  * -- fgmr comments --
  462.  *
  463.  * From RFC 2459:
  464.  *
  465.  *  UniqueIdentifier  ::=  BIT STRING
  466.  *
  467.  */
  468. typedef NSSBitString NSSPKIXUniqueIdentifier;
  469. /*
  470.  * SubjectPublicKeyInfo
  471.  *
  472.  * -- fgmr comments --
  473.  *
  474.  * From RFC 2459:
  475.  *
  476.  *  SubjectPublicKeyInfo  ::=  SEQUENCE  {
  477.  *       algorithm            AlgorithmIdentifier,
  478.  *       subjectPublicKey     BIT STRING  }
  479.  *
  480.  */
  481. struct NSSPKIXSubjectPublicKeyInfoStr;
  482. typedef NSSPKIXSubjectPublicKeyInfoStr NSSPKIXSubjectPublicKeyInfo;
  483. /*
  484.  * Extensions
  485.  *
  486.  * -- fgmr comments --
  487.  *
  488.  * From RFC 2459:
  489.  *
  490.  *  Extensions  ::=  SEQUENCE SIZE (1..MAX) OF Extension
  491.  *
  492.  */
  493. struct NSSPKIXExtensionsStr;
  494. typedef struct NSSPKIXExtensionsStr NSSPKIXExtensions;
  495. /*
  496.  * Extension
  497.  *
  498.  * -- fgmr comments --
  499.  *
  500.  * From RFC 2459:
  501.  *
  502.  *  Extension  ::=  SEQUENCE  {
  503.  *       extnID      OBJECT IDENTIFIER,
  504.  *       critical    BOOLEAN DEFAULT FALSE,
  505.  *       extnValue   OCTET STRING  }
  506.  *
  507.  */
  508. struct NSSPKIXExtensionStr;
  509. typedef struct NSSPKIXExtensionStr NSSPKIXExtension;
  510. /*
  511.  * CertificateList
  512.  *
  513.  * -- fgmr comments --
  514.  *
  515.  * From RFC 2459:
  516.  *
  517.  *  CertificateList  ::=  SEQUENCE  {
  518.  *       tbsCertList          TBSCertList,
  519.  *       signatureAlgorithm   AlgorithmIdentifier,
  520.  *       signature            BIT STRING  }
  521.  *
  522.  */
  523. struct NSSPKIXCertificateListStr;
  524. typedef struct NSSPKIXCertificateListStr NSSPKIXCertificateList;
  525. /*
  526.  * TBSCertList
  527.  *
  528.  * -- fgmr comments --
  529.  *
  530.  * From RFC 2459:
  531.  *
  532.  *  TBSCertList  ::=  SEQUENCE  {
  533.  *       version                 Version OPTIONAL,
  534.  *                                    -- if present, shall be v2
  535.  *       signature               AlgorithmIdentifier,
  536.  *       issuer                  Name,
  537.  *       thisUpdate              Time,
  538.  *       nextUpdate              Time OPTIONAL,
  539.  *       revokedCertificates     SEQUENCE OF SEQUENCE  {
  540.  *            userCertificate         CertificateSerialNumber,
  541.  *            revocationDate          Time,
  542.  *            crlEntryExtensions      Extensions OPTIONAL
  543.  *                                           -- if present, shall be v2
  544.  *                                 }  OPTIONAL,
  545.  *       crlExtensions           [0] Extensions OPTIONAL
  546.  *                                           -- if present, shall be v2 -- }
  547.  *
  548.  */
  549. struct NSSPKIXTBSCertListStr;
  550. typedef struct NSSPKIXTBSCertListStr NSSPKIXTBSCertList;
  551. /*
  552.  * revokedCertificates
  553.  *
  554.  * This is a "helper type" to simplify handling of TBSCertList objects.
  555.  *
  556.  *       revokedCertificates     SEQUENCE OF SEQUENCE  {
  557.  *            userCertificate         CertificateSerialNumber,
  558.  *            revocationDate          Time,
  559.  *            crlEntryExtensions      Extensions OPTIONAL
  560.  *                                           -- if present, shall be v2
  561.  *                                 }  OPTIONAL,
  562.  *
  563.  */
  564. struct NSSPKIXrevokedCertificatesStr;
  565. typedef struct NSSPKIXrevokedCertificatesStr NSSPKIXrevokedCertificates;
  566. /*
  567.  * revokedCertificate
  568.  *
  569.  * This is a "helper type" to simplify handling of TBSCertList objects.
  570.  *
  571.  *                                           SEQUENCE  {
  572.  *            userCertificate         CertificateSerialNumber,
  573.  *            revocationDate          Time,
  574.  *            crlEntryExtensions      Extensions OPTIONAL
  575.  *                                           -- if present, shall be v2
  576.  *                                 }  OPTIONAL,
  577.  *
  578.  */
  579. struct NSSPKIXrevokedCertificateStr;
  580. typedef struct NSSPKIXrevokedCertificateStr NSSPKIXrevokedCertificate;
  581. /*
  582.  * AlgorithmIdentifier
  583.  *
  584.  * -- fgmr comments --
  585.  *
  586.  * From RFC 2459:
  587.  *
  588.  * (1988 syntax)
  589.  *
  590.  *  AlgorithmIdentifier  ::=  SEQUENCE  {
  591.  *       algorithm               OBJECT IDENTIFIER,
  592.  *       parameters              ANY DEFINED BY algorithm OPTIONAL  }
  593.  *                                  -- contains a value of the type
  594.  *                                  -- registered for use with the
  595.  *                                  -- algorithm object identifier value
  596.  *
  597.  *
  598.  */
  599. struct NSSPKIXAlgorithmIdentifierStr;
  600. typedef NSSPKIXAlgorithmIdentifierStr NSSPKIXAlgorithmIdentifier;
  601. /*
  602.  * -- types related to NSSPKIXAlgorithmIdentifiers:
  603.  *
  604.  *  Dss-Sig-Value  ::=  SEQUENCE  {
  605.  *       r       INTEGER,
  606.  *       s       INTEGER  }
  607.  *  
  608.  *  DomainParameters ::= SEQUENCE {
  609.  *       p       INTEGER, -- odd prime, p=jq +1
  610.  *       g       INTEGER, -- generator, g
  611.  *       q       INTEGER, -- factor of p-1
  612.  *       j       INTEGER OPTIONAL, -- subgroup factor, j>= 2
  613.  *       validationParms  ValidationParms OPTIONAL }
  614.  *  
  615.  *  ValidationParms ::= SEQUENCE {
  616.  *       seed             BIT STRING,
  617.  *       pgenCounter      INTEGER }
  618.  *  
  619.  *  Dss-Parms  ::=  SEQUENCE  {
  620.  *       p             INTEGER,
  621.  *       q             INTEGER,
  622.  *       g             INTEGER  }
  623.  *
  624.  */
  625. /*
  626.  * ORAddress
  627.  *
  628.  * -- fgmr comments --
  629.  *
  630.  * From RFC 2459:
  631.  *
  632.  *  ORAddress ::= SEQUENCE {
  633.  *     built-in-standard-attributes BuiltInStandardAttributes,
  634.  *     built-in-domain-defined-attributes
  635.  *                          BuiltInDomainDefinedAttributes OPTIONAL,
  636.  *     -- see also teletex-domain-defined-attributes
  637.  *     extension-attributes ExtensionAttributes OPTIONAL }
  638.  *  --      The OR-address is semantically absent from the OR-name if the
  639.  *  --      built-in-standard-attribute sequence is empty and the
  640.  *  --      built-in-domain-defined-attributes and extension-attributes are
  641.  *  --      both omitted.
  642.  *
  643.  */
  644. struct NSSPKIXORAddressStr;
  645. typedef struct NSSPKIXORAddressStr NSSPKIXORAddress;
  646. /*
  647.  * BuiltInStandardAttributes
  648.  *
  649.  * -- fgmr comments --
  650.  *
  651.  * From RFC 2459:
  652.  *
  653.  *  BuiltInStandardAttributes ::= SEQUENCE {
  654.  *     country-name CountryName OPTIONAL,
  655.  *     administration-domain-name AdministrationDomainName OPTIONAL,
  656.  *     network-address      [0] NetworkAddress OPTIONAL,
  657.  *     -- see also extended-network-address
  658.  *     terminal-identifier  [1] TerminalIdentifier OPTIONAL,
  659.  *     private-domain-name  [2] PrivateDomainName OPTIONAL,
  660.  *     organization-name    [3] OrganizationName OPTIONAL,
  661.  *     -- see also teletex-organization-name
  662.  *     numeric-user-identifier      [4] NumericUserIdentifier OPTIONAL,
  663.  *     personal-name        [5] PersonalName OPTIONAL,
  664.  *     -- see also teletex-personal-name
  665.  *     organizational-unit-names    [6] OrganizationalUnitNames OPTIONAL
  666.  *     -- see also teletex-organizational-unit-names -- }
  667.  *
  668.  */
  669. struct NSSPKIXBuiltInStandardAttributesStr;
  670. typedef struct NSSPKIXBuiltInStandardAttributesStr NSSPKIXBuiltInStandardAttributes;
  671. /*
  672.  * CountryName
  673.  *
  674.  * -- fgmr comments --
  675.  *
  676.  * From RFC 2459:
  677.  *
  678.  *  CountryName ::= [APPLICATION 1] CHOICE {
  679.  *     x121-dcc-code NumericString
  680.  *                  (SIZE (ub-country-name-numeric-length)),
  681.  *     iso-3166-alpha2-code PrintableString
  682.  *                  (SIZE (ub-country-name-alpha-length)) }
  683.  *
  684.  */
  685. struct NSSPKIXCountryNameStr;
  686. typedef struct NSSPKIXCountryNameStr NSSPKIXCountryName;
  687. /*
  688.  * AdministrationDomainName
  689.  *
  690.  * -- fgmr comments --
  691.  *
  692.  * From RFC 2459:
  693.  *
  694.  *  AdministrationDomainName ::= [APPLICATION 2] CHOICE {
  695.  *     numeric NumericString (SIZE (0..ub-domain-name-length)),
  696.  *     printable PrintableString (SIZE (0..ub-domain-name-length)) }
  697.  *
  698.  */
  699. struct NSSPKIXAdministrationDomainNameStr;
  700. typedef struct NSSPKIXAdministrationDomainNameStr NSSPKIXAdministrationDomainName;
  701. /*
  702.  * X121Address
  703.  *
  704.  * -- fgmr comments --
  705.  *
  706.  * From RFC 2459:
  707.  *
  708.  *  X121Address ::= NumericString (SIZE (1..ub-x121-address-length))
  709.  *
  710.  */
  711. struct NSSPKIXX121AddressStr;
  712. typedef struct NSSPKIXX121AddressStr NSSPKIXX121Address;
  713. /*
  714.  * NetworkAddress
  715.  *
  716.  * -- fgmr comments --
  717.  *
  718.  * From RFC 2459:
  719.  *
  720.  *  NetworkAddress ::= X121Address  -- see also extended-network-address
  721.  *
  722.  */
  723. struct NSSPKIXNetworkAddressStr;
  724. typedef struct NSSPKIXNetworkAddressStr NSSPKIXNetworkAddress;
  725. /*
  726.  * TerminalIdentifier
  727.  *
  728.  * -- fgmr comments --
  729.  *
  730.  * From RFC 2459:
  731.  *
  732.  *  TerminalIdentifier ::= PrintableString (SIZE (1..ub-terminal-id-length))
  733.  *
  734.  */
  735. struct NSSPKIXTerminalIdentifierStr;
  736. typedef struct NSSPKIXTerminalIdentifierStr NSSPKIXTerminalIdentifier;
  737. /*
  738.  * PrivateDomainName
  739.  *
  740.  * -- fgmr comments -- 
  741.  *
  742.  *  PrivateDomainName ::= CHOICE {
  743.  *     numeric NumericString (SIZE (1..ub-domain-name-length)),
  744.  *     printable PrintableString (SIZE (1..ub-domain-name-length)) }
  745.  *
  746.  */
  747. struct NSSPKIXPrivateDomainNameStr;
  748. typedef struct NSSPKIXPrivateDomainNameStr NSSPKIXPrivateDomainName;
  749. /*
  750.  * OrganizationName
  751.  *
  752.  * -- fgmr comments --
  753.  *
  754.  *  OrganizationName ::= PrintableString
  755.  *                              (SIZE (1..ub-organization-name-length))
  756.  * 
  757.  */
  758. struct NSSPKIXOrganizationNameStr;
  759. typedef struct NSSPKIXOrganizationNameStr NSSPKIXOrganizationName;
  760. /*
  761.  * NumericUserIdentifier
  762.  *
  763.  * -- fgmr comments --
  764.  *
  765.  * From RFC 2459:
  766.  *
  767.  *  NumericUserIdentifier ::= NumericString
  768.  *                              (SIZE (1..ub-numeric-user-id-length))
  769.  * 
  770.  */
  771. struct NSSPKIXNumericUserIdentifierStr;
  772. typedef struct NSSPKIXNumericUserIdentifierStr NSSPKIXNumericUserIdentifier;
  773. /*
  774.  * PersonalName
  775.  *
  776.  * -- fgmr comments --
  777.  *
  778.  * From RFC 2459:
  779.  *
  780.  *  PersonalName ::= SET {
  781.  *     surname [0] PrintableString (SIZE (1..ub-surname-length)),
  782.  *     given-name [1] PrintableString
  783.  *                          (SIZE (1..ub-given-name-length)) OPTIONAL,
  784.  *     initials [2] PrintableString (SIZE (1..ub-initials-length)) OPTIONAL,
  785.  *     generation-qualifier [3] PrintableString
  786.  *                  (SIZE (1..ub-generation-qualifier-length)) OPTIONAL }
  787.  *
  788.  */
  789. struct NSSPKIXPersonalNameStr;
  790. typedef NSSPKIXPersonalNameStr NSSPKIXPersonalName;
  791. /*
  792.  * OrganizationalUnitNames
  793.  *
  794.  * -- fgmr comments --
  795.  *
  796.  * From RFC 2459:
  797.  *
  798.  *  OrganizationalUnitNames ::= SEQUENCE SIZE (1..ub-organizational-units)
  799.  *                                          OF OrganizationalUnitName
  800.  * 
  801.  */
  802. struct NSSPKIXOrganizationalUnitNamesStr;
  803. typedef NSSPKIXOrganizationalUnitNamesStr NSSPKIXOrganizationalUnitNames;
  804. /*
  805.  * OrganizationalUnitName
  806.  *
  807.  * -- fgmr comments --
  808.  *
  809.  * From RFC 2459:
  810.  *
  811.  *  OrganizationalUnitName ::= PrintableString (SIZE
  812.  *                          (1..ub-organizational-unit-name-length))
  813.  *
  814.  */
  815. struct NSSPKIXOrganizationalUnitNameStr;
  816. typedef struct NSSPKIXOrganizationalUnitNameStr NSSPKIXOrganizationalUnitName;
  817. /*
  818.  * BuiltInDomainDefinedAttributes
  819.  *
  820.  * -- fgmr comments --
  821.  *
  822.  * From RFC 2459:
  823.  *
  824.  *  BuiltInDomainDefinedAttributes ::= SEQUENCE SIZE
  825.  *                                  (1..ub-domain-defined-attributes) OF
  826.  *                                  BuiltInDomainDefinedAttribute
  827.  *
  828.  */
  829. struct NSSPKIXBuiltInDomainDefinedAttributesStr;
  830. typedef struct NSSPKIXBuiltInDomainDefinedAttributesStr NSSPKIXBuiltInDomainDefinedAttributes;
  831. /*
  832.  * BuiltInDomainDefinedAttribute
  833.  *
  834.  * -- fgmr comments --
  835.  *
  836.  * From RFC 2459:
  837.  *
  838.  *  BuiltInDomainDefinedAttribute ::= SEQUENCE {
  839.  *     type PrintableString (SIZE
  840.  *                          (1..ub-domain-defined-attribute-type-length)),
  841.  *     value PrintableString (SIZE
  842.  *                          (1..ub-domain-defined-attribute-value-length))}
  843.  *
  844.  */
  845. struct NSSPKIXBuiltInDomainDefinedAttributeStr;
  846. typedef struct NSSPKIXBuiltInDomainDefinedAttributeStr NSSPKIXBuiltInDomainDefinedAttribute;
  847. /*
  848.  * ExtensionAttributes
  849.  *
  850.  * -- fgmr comments --
  851.  *
  852.  * From RFC 2459:
  853.  *
  854.  *  ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF
  855.  *                          ExtensionAttribute
  856.  *
  857.  */
  858. struct NSSPKIXExtensionAttributesStr;
  859. typedef struct NSSPKIXExtensionAttributesStr NSSPKIXExtensionAttributes;
  860. /*
  861.  * ExtensionAttribute
  862.  *
  863.  * -- fgmr comments --
  864.  *
  865.  * From RFC 2459:
  866.  *
  867.  *  ExtensionAttribute ::=  SEQUENCE {
  868.  *     extension-attribute-type [0] INTEGER (0..ub-extension-attributes),
  869.  *     extension-attribute-value [1]
  870.  *                          ANY DEFINED BY extension-attribute-type }
  871.  *
  872.  */
  873. struct NSSPKIXExtensionAttributeStr;
  874. typedef struct NSSPKIXExtensionAttributeStr NSSPKIXExtensionAttribute;
  875. /*
  876.  * ExtensionAttributeType
  877.  *
  878.  * -- fgmr comments --
  879.  *
  880.  * From RFC 2459:
  881.  *
  882.  *  common-name INTEGER ::= 1
  883.  *  teletex-common-name INTEGER ::= 2
  884.  *  teletex-organization-name INTEGER ::= 3
  885.  *  teletex-personal-name INTEGER ::= 4
  886.  *  teletex-organizational-unit-names INTEGER ::= 5
  887.  *  teletex-domain-defined-attributes INTEGER ::= 6
  888.  *  pds-name INTEGER ::= 7
  889.  *  physical-delivery-country-name INTEGER ::= 8
  890.  *  postal-code INTEGER ::= 9
  891.  *  physical-delivery-office-name INTEGER ::= 10
  892.  *  physical-delivery-office-number INTEGER ::= 11
  893.  *  extension-OR-address-components INTEGER ::= 12
  894.  *  physical-delivery-personal-name INTEGER ::= 13
  895.  *  physical-delivery-organization-name INTEGER ::= 14
  896.  *  extension-physical-delivery-address-components INTEGER ::= 15
  897.  *  unformatted-postal-address INTEGER ::= 16
  898.  *  street-address INTEGER ::= 17
  899.  *  post-office-box-address INTEGER ::= 18
  900.  *  poste-restante-address INTEGER ::= 19
  901.  *  unique-postal-name INTEGER ::= 20
  902.  *  local-postal-attributes INTEGER ::= 21
  903.  *  extended-network-address INTEGER ::= 22
  904.  *  terminal-type  INTEGER ::= 23
  905.  *
  906.  */
  907. enum NSSPKIXExtensionAttributeTypeEnum {
  908.   NSSPKIXExtensionAttributeType_NSSinvalid = -1,
  909.   NSSPKIXExtensionAttributeType_CommonName = 1,
  910.   NSSPKIXExtensionAttributeType_TeletexCommonName = 2,
  911.   NSSPKIXExtensionAttributeType_TeletexOrganizationName = 3,
  912.   NSSPKIXExtensionAttributeType_TeletexPersonalName = 4,
  913.   NSSPKIXExtensionAttributeType_TeletexOrganizationalUnitNames = 5,
  914.   NSSPKIXExtensionAttributeType_TeletexDomainDefinedAttributes = 6,
  915.   NSSPKIXExtensionAttributeType_PdsName = 7,
  916.   NSSPKIXExtensionAttributeType_PhysicalDeliveryCountryName = 8,
  917.   NSSPKIXExtensionAttributeType_PostalCode = 9,
  918.   NSSPKIXExtensionAttributeType_PhysicalDeliveryOfficeName = 10,
  919.   NSSPKIXExtensionAttributeType_PhysicalDeliveryOfficeNumber = 11,
  920.   NSSPKIXExtensionAttributeType_ExtensionOrAddressComponents = 12,
  921.   NSSPKIXExtensionAttributeType_PhysicalDeliveryPersonalName = 13,
  922.   NSSPKIXExtensionAttributeType_PhysicalDeliveryOrganizationName = 14,
  923.   NSSPKIXExtensionAttributeType_ExtensionPhysicalDeliveryAddressComponents = 15,
  924.   NSSPKIXExtensionAttributeType_UnformattedPostalAddress = 16,
  925.   NSSPKIXExtensionAttributeType_StreetAddress = 17,
  926.   NSSPKIXExtensionAttributeType_PostOfficeBoxAddress = 18,
  927.   NSSPKIXExtensionAttributeType_PosteRestanteAddress = 19,
  928.   NSSPKIXExtensionAttributeType_UniquePostalName = 20,
  929.   NSSPKIXExtensionAttributeType_LocalPostalAttributes = 21,
  930.   NSSPKIXExtensionAttributeType_ExtendedNetworkAddress = 22,
  931.   NSSPKIXExtensionAttributeType_TerminalType = 23
  932. };
  933. typedef enum NSSPKIXExtensionAttributeTypeEnum NSSPKIXExtensionAttributeType;
  934. /*
  935.  * CommonName
  936.  *
  937.  * -- fgmr comments --
  938.  *
  939.  * From RFC 2459:
  940.  *
  941.  *  CommonName ::= PrintableString (SIZE (1..ub-common-name-length))
  942.  *
  943.  */
  944. struct NSSPKIXCommonNameStr;
  945. typedef struct NSSPKIXCommonNameStr NSSPKIXCommonName;
  946. /*
  947.  * TeletexCommonName
  948.  *
  949.  * -- fgmr comments --
  950.  *
  951.  * From RFC 2459:
  952.  *
  953.  *  TeletexCommonName ::= TeletexString (SIZE (1..ub-common-name-length))
  954.  *
  955.  */
  956. struct NSSPKIXTeletexCommonNameStr;
  957. typedef struct NSSPKIXTeletexCommonNameStr NSSPKIXTeletexCommonName;
  958. /*
  959.  * TeletexOrganizationName
  960.  *
  961.  * -- fgmr comments --
  962.  *
  963.  * From RFC 2459:
  964.  *
  965.  *  TeletexOrganizationName ::=
  966.  *                  TeletexString (SIZE (1..ub-organization-name-length))
  967.  *
  968.  */
  969. struct NSSPKIXTeletexOrganizationNameStr;
  970. typedef struct NSSPKIXTeletexOrganizationNameStr NSSPKIXTeletexOrganizationName;
  971. /*
  972.  * TeletexPersonalName
  973.  *
  974.  * -- fgmr comments --
  975.  *
  976.  * From RFC 2459:
  977.  *
  978.  *  TeletexPersonalName ::= SET {
  979.  *     surname [0] TeletexString (SIZE (1..ub-surname-length)),
  980.  *     given-name [1] TeletexString
  981.  *                  (SIZE (1..ub-given-name-length)) OPTIONAL,
  982.  *     initials [2] TeletexString (SIZE (1..ub-initials-length)) OPTIONAL,
  983.  *     generation-qualifier [3] TeletexString (SIZE
  984.  *                  (1..ub-generation-qualifier-length)) OPTIONAL }
  985.  *
  986.  */
  987. struct NSSPKIXTeletexPersonalNameStr;
  988. typedef struct NSSPKIXTeletexPersonalNameStr NSSPKIXTeletexPersonalName;
  989. /*
  990.  * TeletexOrganizationalUnitNames
  991.  *
  992.  * -- fgmr comments --
  993.  *
  994.  * From RFC 2459:
  995.  *
  996.  *  TeletexOrganizationalUnitNames ::= SEQUENCE SIZE
  997.  *          (1..ub-organizational-units) OF TeletexOrganizationalUnitName
  998.  *
  999.  */
  1000. struct NSSPKIXTeletexOrganizationalUnitNamesStr;
  1001. typedef struct NSSPKIXTeletexOrganizationalUnitNamesStr NSSPKIXTeletexOrganizationalUnitNames;
  1002. /*
  1003.  * TeletexOrganizationalUnitName
  1004.  *
  1005.  * -- fgmr comments --
  1006.  *
  1007.  * From RFC 2459:
  1008.  *
  1009.  *  TeletexOrganizationalUnitName ::= TeletexString
  1010.  *                          (SIZE (1..ub-organizational-unit-name-length))
  1011.  *  
  1012.  */
  1013. struct NSSPKIXTeletexOrganizationalUnitNameStr;
  1014. typedef struct NSSPKIXTeletexOrganizationalUnitNameStr NSSPKIXTeletexOrganizationalUnitName;
  1015. /*
  1016.  * PDSName
  1017.  *
  1018.  * -- fgmr comments --
  1019.  *
  1020.  * From RFC 2459:
  1021.  *
  1022.  *  PDSName ::= PrintableString (SIZE (1..ub-pds-name-length))
  1023.  *
  1024.  */
  1025. struct NSSPKIXPDSNameStr;
  1026. typedef struct NSSPKIXPDSNameStr NSSPKIXPDSName;
  1027. /*
  1028.  * PhysicalDeliveryCountryName
  1029.  *
  1030.  * -- fgmr comments --
  1031.  *
  1032.  * From RFC 2459:
  1033.  *
  1034.  *  PhysicalDeliveryCountryName ::= CHOICE {
  1035.  *     x121-dcc-code NumericString (SIZE (ub-country-name-numeric-length)),
  1036.  *     iso-3166-alpha2-code PrintableString
  1037.  *                          (SIZE (ub-country-name-alpha-length)) }
  1038.  *
  1039.  */
  1040. struct NSSPKIXPhysicalDeliveryCountryNameStr;
  1041. typedef struct NSSPKIXPhysicalDeliveryCountryNameStr NSSPKIXPhysicalDeliveryCountryName;
  1042. /*
  1043.  * PostalCode
  1044.  *
  1045.  * -- fgmr comments --
  1046.  *
  1047.  * From RFC 2459:
  1048.  *
  1049.  *  PostalCode ::= CHOICE {
  1050.  *     numeric-code NumericString (SIZE (1..ub-postal-code-length)),
  1051.  *     printable-code PrintableString (SIZE (1..ub-postal-code-length)) }
  1052.  *
  1053.  */
  1054. struct NSSPKIXPostalCodeStr;
  1055. typedef struct NSSPKIXPostalCodeStr NSSPKIXPostalCode;
  1056. /*
  1057.  * PDSParameter
  1058.  *
  1059.  * -- fgmr comments --
  1060.  *
  1061.  * From RFC 2459:
  1062.  *
  1063.  *  PDSParameter ::= SET {
  1064.  *     printable-string PrintableString
  1065.  *                  (SIZE(1..ub-pds-parameter-length)) OPTIONAL,
  1066.  *     teletex-string TeletexString
  1067.  *                  (SIZE(1..ub-pds-parameter-length)) OPTIONAL }
  1068.  *
  1069.  */
  1070. struct NSSPKIXPDSParameterStr;
  1071. typedef struct NSSPKIXPDSParameterStr NSSPKIXPDSParameter;
  1072. /*
  1073.  * PhysicalDeliveryOfficeName
  1074.  *
  1075.  * -- fgmr comments --
  1076.  *
  1077.  * From RFC 2459:
  1078.  *
  1079.  *  PhysicalDeliveryOfficeName ::= PDSParameter
  1080.  *
  1081.  */
  1082. typedef NSSPKIXPDSParameter NSSPKIXPhysicalDeliveryOfficeName;
  1083. /*
  1084.  * PhysicalDeliveryOfficeNumber
  1085.  *
  1086.  * -- fgmr comments --
  1087.  *
  1088.  * From RFC 2459:
  1089.  *
  1090.  *  PhysicalDeliveryOfficeNumber ::= PDSParameter
  1091.  *
  1092.  */
  1093. typedef NSSPKIXPDSParameter NSSPKIXPhysicalDeliveryOfficeNumber;
  1094. /*
  1095.  * ExtensionORAddressComponents
  1096.  *
  1097.  * -- fgmr comments --
  1098.  *
  1099.  * From RFC 2459:
  1100.  *
  1101.  *  ExtensionORAddressComponents ::= PDSParameter
  1102.  *
  1103.  */
  1104. typedef NSSPKIXPDSParameter NSSPKIXExtensionORAddressComponents;
  1105. /*
  1106.  * PhysicalDeliveryPersonalName
  1107.  *
  1108.  * -- fgmr comments --
  1109.  *
  1110.  * From RFC 2459:
  1111.  *
  1112.  *  PhysicalDeliveryPersonalName ::= PDSParameter
  1113.  *
  1114.  */
  1115. typedef NSSPKIXPDSParameter NSSPKIXPhysicalDeliveryPersonalName;
  1116. /*
  1117.  * PhysicalDeliveryOrganizationName
  1118.  *
  1119.  * -- fgmr comments --
  1120.  *
  1121.  * From RFC 2459:
  1122.  *
  1123.  *  PhysicalDeliveryOrganizationName ::= PDSParameter
  1124.  *
  1125.  */
  1126. typedef NSSPKIXPDSParameter NSSPKIXPhysicalDeliveryOrganizationName;
  1127. /*
  1128.  * ExtensionPhysicalDeliveryAddressComponents
  1129.  *
  1130.  * -- fgmr comments --
  1131.  *
  1132.  * From RFC 2459:
  1133.  *
  1134.  *  ExtensionPhysicalDeliveryAddressComponents ::= PDSParameter
  1135.  *
  1136.  */
  1137. typedef NSSPKIXPDSParameter NSSPKIXExtensionPhysicalDeliveryAddressComponents;
  1138. /*
  1139.  * UnformattedPostalAddress
  1140.  *
  1141.  * -- fgmr comments --
  1142.  *
  1143.  * From RFC 2459:
  1144.  *
  1145.  *  UnformattedPostalAddress ::= SET {
  1146.  *     printable-address SEQUENCE SIZE (1..ub-pds-physical-address-lines) OF
  1147.  *             PrintableString (SIZE (1..ub-pds-parameter-length)) OPTIONAL,
  1148.  *     teletex-string TeletexString
  1149.  *           (SIZE (1..ub-unformatted-address-length)) OPTIONAL }
  1150.  *
  1151.  */
  1152. struct NSSPKIXUnformattedPostalAddressStr;
  1153. typedef struct NSSPKIXUnformattedPostalAddressStr NSSPKIXUnformattedPostalAddress;
  1154. /*
  1155.  * StreetAddress
  1156.  *
  1157.  * -- fgmr comments --
  1158.  *
  1159.  * From RFC 2459:
  1160.  *
  1161.  *  StreetAddress ::= PDSParameter
  1162.  *
  1163.  */
  1164. typedef NSSPKIXPDSParameter NSSPKIXStreetAddress;
  1165. /*
  1166.  * PostOfficeBoxAddress
  1167.  *
  1168.  * -- fgmr comments --
  1169.  *
  1170.  * From RFC 2459:
  1171.  *
  1172.  *  PostOfficeBoxAddress ::= PDSParameter
  1173.  *
  1174.  */
  1175. typedef NSSPKIXPDSParameter NSSPKIXPostOfficeBoxAddress;
  1176. /*
  1177.  * PosteRestanteAddress
  1178.  *
  1179.  * -- fgmr comments --
  1180.  *
  1181.  * From RFC 2459:
  1182.  *
  1183.  *  PosteRestanteAddress ::= PDSParameter
  1184.  *
  1185.  */
  1186. typedef NSSPKIXPDSParameter NSSPKIXPosteRestanteAddress;
  1187. /*
  1188.  * UniquePostalName
  1189.  *
  1190.  * -- fgmr comments --
  1191.  *
  1192.  * From RFC 2459:
  1193.  *
  1194.  *  UniquePostalName ::= PDSParameter
  1195.  *
  1196.  */
  1197. typedef NSSPKIXPDSParameter NSSPKIXUniquePostalName;
  1198. /*
  1199.  * LocalPostalAttributes
  1200.  *
  1201.  * -- fgmr comments --
  1202.  *
  1203.  * From RFC 2459:
  1204.  *
  1205.  *  LocalPostalAttributes ::= PDSParameter
  1206.  *
  1207.  */
  1208. typedef NSSPKIXPDSParameter NSSPKIXLocalPostalAttributes;
  1209. /*
  1210.  * ExtendedNetworkAddress
  1211.  *
  1212.  * -- fgmr comments --
  1213.  *
  1214.  * From RFC 2459:
  1215.  *
  1216.  *  ExtendedNetworkAddress ::= CHOICE {
  1217.  *     e163-4-address SEQUENCE {
  1218.  *          number [0] NumericString (SIZE (1..ub-e163-4-number-length)),
  1219.  *          sub-address [1] NumericString
  1220.  *                  (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL },
  1221.  *     psap-address [0] PresentationAddress }
  1222.  *
  1223.  */
  1224. struct NSSPKIXExtendedNetworkAddressStr;
  1225. typedef struct NSSPKIXExtendedNetworkAddressStr NSSPKIXExtendedNetworkAddress;
  1226. /*
  1227.  * NSSPKIXExtendedNetworkAddressChoice
  1228.  *
  1229.  * Helper enumeration for ExtendedNetworkAddress
  1230.  * -- fgmr comments --
  1231.  *
  1232.  */
  1233. enum NSSPKIXExtendedNetworkAddressEnum {
  1234.   NSSPKIXExtendedNetworkAddress_NSSinvalid = -1,
  1235.   NSSPKIXExtendedNetworkAddress_e1634Address,
  1236.   NSSPKIXExtendedNetworkAddress_psapAddress
  1237. };
  1238. typedef enum NSSPKIXExtendedNetworkAddressEnum NSSPKIXExtendedNetworkAddressChoice;
  1239. /*
  1240.  * e163-4-address
  1241.  *
  1242.  * Helper structure for ExtendedNetworkAddress.
  1243.  * -- fgmr comments --
  1244.  *
  1245.  * From RFC 2459:
  1246.  * 
  1247.  *     e163-4-address SEQUENCE {
  1248.  *          number [0] NumericString (SIZE (1..ub-e163-4-number-length)),
  1249.  *          sub-address [1] NumericString
  1250.  *                  (SIZE (1..ub-e163-4-sub-address-length)) OPTIONAL },
  1251.  * 
  1252.  */
  1253. struct NSSe1634addressStr;
  1254. typedef struct NSSe1634addressStr NSSe1634address;
  1255. /*
  1256.  * PresentationAddress
  1257.  *
  1258.  * -- fgmr comments --
  1259.  *
  1260.  * From RFC 2459:
  1261.  *
  1262.  *  PresentationAddress ::= SEQUENCE {
  1263.  *          pSelector       [0] EXPLICIT OCTET STRING OPTIONAL,
  1264.  *          sSelector       [1] EXPLICIT OCTET STRING OPTIONAL,
  1265.  *          tSelector       [2] EXPLICIT OCTET STRING OPTIONAL,
  1266.  *          nAddresses      [3] EXPLICIT SET SIZE (1..MAX) OF OCTET STRING }
  1267.  *
  1268.  */
  1269. struct NSSPKIXPresentationAddressStr;
  1270. typedef struct NSSPKIXPresentationAddressStr NSSPKIXPresentationAddress;
  1271. /*
  1272.  * TerminalType
  1273.  *
  1274.  * -- fgmr comments --
  1275.  *
  1276.  * From RFC 2459:
  1277.  *
  1278.  *  TerminalType ::= INTEGER {
  1279.  *     telex (3),
  1280.  *     teletex (4),
  1281.  *     g3-facsimile (5),
  1282.  *     g4-facsimile (6),
  1283.  *     ia5-terminal (7),
  1284.  *     videotex (8) } (0..ub-integer-options)
  1285.  *
  1286.  */
  1287. enum NSSPKIXTerminalTypeEnum {
  1288.   NSSPKIXTerminalType_NSSinvalid = -1,
  1289.   NSSPKIXTerminalType_telex = 3,
  1290.   NSSPKIXTerminalType_teletex = 4,
  1291.   NSSPKIXTerminalType_g3Facsimile = 5,
  1292.   NSSPKIXTerminalType_g4Facsimile = 6,
  1293.   NSSPKIXTerminalType_iA5Terminal = 7,
  1294.   NSSPKIXTerminalType_videotex = 8
  1295. };
  1296. typedef enum NSSPKIXTerminalTypeEnum NSSPKIXTerminalType;
  1297. /*
  1298.  * TeletexDomainDefinedAttributes
  1299.  *
  1300.  * -- fgmr comments --
  1301.  *
  1302.  * From RFC 2459:
  1303.  *
  1304.  *  TeletexDomainDefinedAttributes ::= SEQUENCE SIZE
  1305.  *     (1..ub-domain-defined-attributes) OF TeletexDomainDefinedAttribute
  1306.  * 
  1307.  */
  1308. struct NSSPKIXTeletexDomainDefinedAttributesStr;
  1309. typedef struct NSSPKIXTeletexDomainDefinedAttributesStr NSSPKIXTeletexDomainDefinedAttributes;
  1310. /*
  1311.  * TeletexDomainDefinedAttribute
  1312.  *
  1313.  * -- fgmr comments --
  1314.  *
  1315.  * From RFC 2459:
  1316.  *
  1317.  *  TeletexDomainDefinedAttribute ::= SEQUENCE {
  1318.  *          type TeletexString
  1319.  *                 (SIZE (1..ub-domain-defined-attribute-type-length)),
  1320.  *          value TeletexString
  1321.  *                 (SIZE (1..ub-domain-defined-attribute-value-length)) }
  1322.  * 
  1323.  */
  1324. struct NSSPKIXTeletexDomainDefinedAttributeStr;
  1325. typedef struct NSSPKIXTeletexDomainDefinedAttributeStr NSSPKIXTeletexDomainDefinedAttribute;
  1326. /*
  1327.  * AuthorityKeyIdentifier
  1328.  *
  1329.  * -- fgmr comments --
  1330.  *
  1331.  * From RFC 2459:
  1332.  *
  1333.  *  AuthorityKeyIdentifier ::= SEQUENCE {
  1334.  *        keyIdentifier             [0] KeyIdentifier            OPTIONAL,
  1335.  *        authorityCertIssuer       [1] GeneralNames             OPTIONAL,
  1336.  *        authorityCertSerialNumber [2] CertificateSerialNumber  OPTIONAL }
  1337.  *      -- authorityCertIssuer and authorityCertSerialNumber shall both
  1338.  *      -- be present or both be absent
  1339.  *
  1340.  */
  1341. struct NSSPKIXAuthorityKeyIdentifierStr;
  1342. typedef struct NSSPKIXAuthorityKeyIdentifierStr NSSPKIXAuthorityKeyIdentifier;
  1343. /*
  1344.  * KeyIdentifier
  1345.  *
  1346.  * -- fgmr comments --
  1347.  *
  1348.  * From RFC 2459:
  1349.  *
  1350.  *  KeyIdentifier ::= OCTET STRING
  1351.  *
  1352.  */
  1353. typedef NSSItem NSSPKIXKeyIdentifier;
  1354. /*
  1355.  * SubjectKeyIdentifier
  1356.  *
  1357.  * -- fgmr comments --
  1358.  *
  1359.  * From RFC 2459:
  1360.  *
  1361.  *  SubjectKeyIdentifier ::= KeyIdentifier
  1362.  *
  1363.  */
  1364. typedef NSSPKIXKeyIdentifier NSSPKIXSubjectKeyIdentifier;
  1365. /*
  1366.  * KeyUsage
  1367.  *
  1368.  * -- fgmr comments --
  1369.  *
  1370.  * From RFC 2459:
  1371.  *
  1372.  *  KeyUsage ::= BIT STRING {
  1373.  *       digitalSignature        (0),
  1374.  *       nonRepudiation          (1),
  1375.  *       keyEncipherment         (2),
  1376.  *       dataEncipherment        (3),
  1377.  *       keyAgreement            (4),
  1378.  *       keyCertSign             (5),
  1379.  *       cRLSign                 (6),
  1380.  *       encipherOnly            (7),
  1381.  *       decipherOnly            (8) }
  1382.  *
  1383.  */
  1384. struct NSSPKIXKeyUsageStr;
  1385. typedef struct NSSPKIXKeyUsageStr NSSPKIXKeyUsage;
  1386. /*
  1387.  * KeyUsageValue
  1388.  *
  1389.  * -- helper for testing many key usages at once
  1390.  *
  1391.  */
  1392. enum NSSPKIXKeyUsageValueEnum {
  1393.   NSSPKIXKeyUsage_NSSinvalid = 0,
  1394.   NSSPKIXKeyUsage_DigitalSignature = 0x001,
  1395.   NSSPKIXKeyUsage_NonRepudiation   = 0x002,
  1396.   NSSPKIXKeyUsage_KeyEncipherment  = 0x004,
  1397.   NSSPKIXKeyUsage_DataEncipherment = 0x008,
  1398.   NSSPKIXKeyUsage_KeyAgreement     = 0x010,
  1399.   NSSPKIXKeyUsage_KeyCertSign      = 0x020,
  1400.   NSSPKIXKeyUsage_CRLSign          = 0x040,
  1401.   NSSPKIXKeyUsage_EncipherOnly     = 0x080,
  1402.   NSSPKIXKeyUsage_DecipherOnly     = 0x100
  1403. };
  1404. typedef enum NSSPKIXKeyUsageValueEnum NSSPKIXKeyUsageValue;
  1405. /*
  1406.  * PrivateKeyUsagePeriod
  1407.  *
  1408.  * -- fgmr comments --
  1409.  *
  1410.  * From RFC 2459:
  1411.  *
  1412.  *  PrivateKeyUsagePeriod ::= SEQUENCE {
  1413.  *       notBefore       [0]     GeneralizedTime OPTIONAL,
  1414.  *       notAfter        [1]     GeneralizedTime OPTIONAL }
  1415.  *       -- either notBefore or notAfter shall be present
  1416.  *
  1417.  */
  1418. struct NSSPKIXPrivateKeyUsagePeriodStr;
  1419. typedef struct NSSPKIXPrivateKeyUsagePeriodStr NSSPKIXPrivateKeyUsagePeriod;
  1420. /*
  1421.  * CertificatePolicies
  1422.  *
  1423.  * -- fgmr comments --
  1424.  *
  1425.  * From RFC 2459:
  1426.  *
  1427.  *  CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
  1428.  *
  1429.  */
  1430. struct NSSPKIXCertificatePoliciesStr;
  1431. typedef struct NSSPKIXCertificatePoliciesStr NSSPKIXCertificatePolicies;
  1432. /*
  1433.  * PolicyInformation
  1434.  *
  1435.  * -- fgmr comments --
  1436.  *
  1437.  * From RFC 2459:
  1438.  *
  1439.  *  PolicyInformation ::= SEQUENCE {
  1440.  *       policyIdentifier   CertPolicyId,
  1441.  *       policyQualifiers   SEQUENCE SIZE (1..MAX) OF
  1442.  *               PolicyQualifierInfo OPTIONAL }
  1443.  *
  1444.  */
  1445. struct NSSPKIXPolicyInformationStr;
  1446. typedef struct NSSPKIXPolicyInformationStr NSSPKIXPolicyInformation;
  1447. /*
  1448.  * CertPolicyId
  1449.  *
  1450.  * -- fgmr comments --
  1451.  *
  1452.  * From RFC 2459:
  1453.  *
  1454.  *  CertPolicyId ::= OBJECT IDENTIFIER
  1455.  *
  1456.  */
  1457. typedef NSSOID NSSPKIXCertPolicyId;
  1458. /*
  1459.  * PolicyQualifierInfo
  1460.  *
  1461.  * -- fgmr comments --
  1462.  *
  1463.  * From RFC 2459:
  1464.  *
  1465.  *  PolicyQualifierInfo ::= SEQUENCE {
  1466.  *         policyQualifierId  PolicyQualifierId,
  1467.  *         qualifier        ANY DEFINED BY policyQualifierId }
  1468.  *
  1469.  */
  1470. struct NSSPKIXPolicyQualifierInfoStr;
  1471. typedef NSSPKIXPolicyQualifierInfoStr NSSPKIXPolicyQualifierInfo;
  1472. /*
  1473.  * PolicyQualifierId
  1474.  *
  1475.  * -- fgmr comments --
  1476.  *
  1477.  * From RFC 2459:
  1478.  *
  1479.  *  PolicyQualifierId ::=
  1480.  *      OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
  1481.  *
  1482.  */
  1483. typedef NSSOID NSSPKIXPolicyQualifierId;
  1484. /*
  1485.  * CPSuri
  1486.  *
  1487.  * -- fgmr comments --
  1488.  *
  1489.  * From RFC 2459:
  1490.  *
  1491.  *  CPSuri ::= IA5String
  1492.  *
  1493.  */
  1494. struct NSSPKIXCPSuriStr;
  1495. typedef struct NSSPKIXCPSuriStr NSSPKIXCPSuri;
  1496. /*
  1497.  * UserNotice
  1498.  *
  1499.  * -- fgmr comments --
  1500.  *
  1501.  * From RFC 2459:
  1502.  *
  1503.  *  UserNotice ::= SEQUENCE {
  1504.  *       noticeRef        NoticeReference OPTIONAL,
  1505.  *       explicitText     DisplayText OPTIONAL}
  1506.  *
  1507.  */
  1508. struct NSSPKIXUserNoticeStr;
  1509. typedef struct NSSPKIXUserNoticeStr NSSPKIXUserNotice;
  1510. /*
  1511.  * NoticeReference
  1512.  *
  1513.  * -- fgmr comments --
  1514.  *
  1515.  * From RFC 2459:
  1516.  *
  1517.  *  NoticeReference ::= SEQUENCE {
  1518.  *       organization     DisplayText,
  1519.  *       noticeNumbers    SEQUENCE OF INTEGER }
  1520.  *
  1521.  */
  1522. struct NSSPKIXNoticeReferenceStr;
  1523. typedef struct NSSPKIXNoticeReferenceStr NSSPKIXNoticeReference;
  1524. /*
  1525.  * DisplayText
  1526.  *
  1527.  * -- fgmr comments --
  1528.  *
  1529.  * From RFC 2459:
  1530.  *
  1531.  *  DisplayText ::= CHOICE {
  1532.  *       visibleString    VisibleString  (SIZE (1..200)),
  1533.  *       bmpString        BMPString      (SIZE (1..200)),
  1534.  *       utf8String       UTF8String     (SIZE (1..200)) }
  1535.  * 
  1536.  */
  1537. struct NSSPKIXDisplayTextStr;
  1538. typedef struct NSSPKIXDisplayTextStr NSSPKIXDisplayText;
  1539. /*
  1540.  * PolicyMappings
  1541.  *
  1542.  * -- fgmr comments --
  1543.  *
  1544.  * From RFC 2459:
  1545.  *
  1546.  *  PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {
  1547.  *       issuerDomainPolicy      CertPolicyId,
  1548.  *       subjectDomainPolicy     CertPolicyId }
  1549.  *
  1550.  */
  1551. struct NSSPKIXPolicyMappingsStr;
  1552. typedef struct NSSPKIXPolicyMappingsStr NSSPKIXPolicyMappings;
  1553. /*
  1554.  * policyMapping
  1555.  *
  1556.  * Helper structure for PolicyMappings
  1557.  *
  1558.  *                                               SEQUENCE {
  1559.  *       issuerDomainPolicy      CertPolicyId,
  1560.  *       subjectDomainPolicy     CertPolicyId }
  1561.  *
  1562.  */
  1563. struct NSSPKIXpolicyMappingStr;
  1564. typedef struct NSSPKIXpolicyMappingStr NSSPKIXpolicyMapping;
  1565. /*
  1566.  * GeneralName
  1567.  *
  1568.  * This structure contains a union of the possible general names,
  1569.  * of which there are several.
  1570.  *
  1571.  * From RFC 2459:
  1572.  *
  1573.  *  GeneralName ::= CHOICE {
  1574.  *       otherName                       [0]     AnotherName,
  1575.  *       rfc822Name                      [1]     IA5String,
  1576.  *       dNSName                         [2]     IA5String,
  1577.  *       x400Address                     [3]     ORAddress,
  1578.  *       directoryName                   [4]     Name,
  1579.  *       ediPartyName                    [5]     EDIPartyName,
  1580.  *       uniformResourceIdentifier       [6]     IA5String,
  1581.  *       iPAddress                       [7]     OCTET STRING,
  1582.  *       registeredID                    [8]     OBJECT IDENTIFIER }
  1583.  *
  1584.  */
  1585. struct NSSPKIXGeneralNameStr;
  1586. typedef struct NSSPKIXGeneralNameStr NSSPKIXGeneralName;
  1587. /*
  1588.  * GeneralNameChoice
  1589.  *
  1590.  * This enumerates the possible general name types.
  1591.  */
  1592. enum NSSPKIXGeneralNameChoiceEnum {
  1593.   NSSPKIXGeneralNameChoice_NSSinvalid = -1,
  1594.   NSSPKIXGeneralNameChoice_otherName = 0,
  1595.   NSSPKIXGeneralNameChoice_rfc822Name = 1,
  1596.   NSSPKIXGeneralNameChoice_dNSName = 2,
  1597.   NSSPKIXGeneralNameChoice_x400Address = 3,
  1598.   NSSPKIXGeneralNameChoice_directoryName = 4,
  1599.   NSSPKIXGeneralNameChoice_ediPartyName = 5,
  1600.   NSSPKIXGeneralNameChoice_uniformResourceIdentifier = 6,
  1601.   NSSPKIXGeneralNameChoice_iPAddress = 7,
  1602.   NSSPKIXGeneralNameChoice_registeredID = 8
  1603. };
  1604. typedef enum NSSPKIXGeneralNameChoiceEnum NSSPKIXGeneralNameChoice;
  1605. /*
  1606.  * GeneralNames
  1607.  *
  1608.  * This structure contains a sequence of GeneralName objects.
  1609.  *
  1610.  * From RFC 2459:
  1611.  *
  1612.  *  GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
  1613.  *
  1614.  */
  1615. struct NSSPKIXGeneralNamesStr;
  1616. typedef struct NSSPKIXGeneralNamesStr NSSPKIXGeneralNames;
  1617. /*
  1618.  * SubjectAltName
  1619.  *
  1620.  * -- fgmr comments --
  1621.  *
  1622.  * From RFC 2459:
  1623.  *
  1624.  *  SubjectAltName ::= GeneralNames
  1625.  *
  1626.  */
  1627. typedef NSSPKIXGeneralNames NSSPKIXSubjectAltName;
  1628. /*
  1629.  * AnotherName
  1630.  *
  1631.  * -- fgmr comments --
  1632.  *
  1633.  * From RFC 2459:
  1634.  *
  1635.  *  AnotherName ::= SEQUENCE {
  1636.  *       type-id    OBJECT IDENTIFIER,
  1637.  *       value      [0] EXPLICIT ANY DEFINED BY type-id }
  1638.  *
  1639.  */
  1640. struct NSSPKIXAnotherNameStr;
  1641. typedef struct NSSPKIXAnotherNameStr NSSPKIXAnotherName;
  1642. /*
  1643.  * EDIPartyName
  1644.  *
  1645.  * -- fgmr comments --
  1646.  *
  1647.  * From RFC 2459:
  1648.  *
  1649.  *
  1650.  *  EDIPartyName ::= SEQUENCE {
  1651.  *       nameAssigner            [0]     DirectoryString OPTIONAL,
  1652.  *       partyName               [1]     DirectoryString }
  1653.  *
  1654.  */
  1655. struct NSSPKIXEDIPartyNameStr;
  1656. typedef struct NSSPKIXEDIPartyNameStr NSSPKIXEDIPartyName;
  1657. /*
  1658.  * IssuerAltName
  1659.  *
  1660.  * -- fgmr comments --
  1661.  *
  1662.  * From RFC 2459:
  1663.  *
  1664.  *  IssuerAltName ::= GeneralNames
  1665.  *
  1666.  */
  1667. typedef NSSPKIXGeneralNames NSSPKIXIssuerAltName;
  1668. /*
  1669.  * SubjectDirectoryAttributes
  1670.  *
  1671.  * -- fgmr comments --
  1672.  *
  1673.  * From RFC 2459:
  1674.  *
  1675.  *  SubjectDirectoryAttributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
  1676.  *
  1677.  */
  1678. struct NSSPKIXSubjectDirectoryAttributesStr;
  1679. typedef struct NSSPKIXSubjectDirectoryAttributesStr NSSPKIXSubjectDirectoryAttributes;
  1680. /*
  1681.  * BasicConstraints
  1682.  *
  1683.  * -- fgmr comments --
  1684.  *
  1685.  * From RFC 2459:
  1686.  *
  1687.  *  BasicConstraints ::= SEQUENCE {
  1688.  *       cA                      BOOLEAN DEFAULT FALSE,
  1689.  *       pathLenConstraint       INTEGER (0..MAX) OPTIONAL }
  1690.  *
  1691.  */
  1692. struct NSSPKIXBasicConstraintsStr;
  1693. typedef struct NSSPKIXBasicConstraintsStr NSSPKIXBasicConstraints;
  1694. /*
  1695.  * NameConstraints
  1696.  *
  1697.  * -- fgmr comments --
  1698.  *
  1699.  * From RFC 2459:
  1700.  *
  1701.  *  NameConstraints ::= SEQUENCE {
  1702.  *       permittedSubtrees       [0]     GeneralSubtrees OPTIONAL,
  1703.  *       excludedSubtrees        [1]     GeneralSubtrees OPTIONAL }
  1704.  *
  1705.  */
  1706. struct NSSPKIXNameConstraintsStr;
  1707. typedef struct NSSPKIXNameConstraintsStr NSSPKIXNameConstraints;
  1708. /*
  1709.  * GeneralSubtrees
  1710.  *
  1711.  * -- fgmr comments --
  1712.  *
  1713.  * From RFC 2459:
  1714.  *
  1715.  *  GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
  1716.  *
  1717.  */
  1718. struct NSSPKIXGeneralSubtreesStr;
  1719. typedef struct NSSPKIXGeneralSubtreesStr NSSPKIXGeneralSubtrees;
  1720. /*
  1721.  * GeneralSubtree
  1722.  *
  1723.  * -- fgmr comments --
  1724.  *
  1725.  * From RFC 2459:
  1726.  *
  1727.  *  GeneralSubtree ::= SEQUENCE {
  1728.  *       base                    GeneralName,
  1729.  *       minimum         [0]     BaseDistance DEFAULT 0,
  1730.  *       maximum         [1]     BaseDistance OPTIONAL }
  1731.  *
  1732.  */
  1733. struct NSSPKIXGeneralSubtreeStr;
  1734. typedef struct NSSPKIXGeneralSubtreeStr NSSPKIXGeneralSubtree;
  1735. /*
  1736.  * BaseDistance
  1737.  *
  1738.  * -- fgmr comments --
  1739.  *
  1740.  * From RFC 2459:
  1741.  *
  1742.  *  BaseDistance ::= INTEGER (0..MAX)
  1743.  *
  1744.  */
  1745. typedef PRInt32 NSSPKIXBaseDistance;
  1746. /*
  1747.  * PolicyConstraints
  1748.  *
  1749.  * -- fgmr comments --
  1750.  *
  1751.  * From RFC 2459:
  1752.  *
  1753.  *  PolicyConstraints ::= SEQUENCE {
  1754.  *       requireExplicitPolicy           [0] SkipCerts OPTIONAL,
  1755.  *       inhibitPolicyMapping            [1] SkipCerts OPTIONAL }
  1756.  * 
  1757.  */
  1758. struct NSSPKIXPolicyConstraintsStr;
  1759. typedef NSSPKIXPolicyConstraintsStr NSSPKIXPolicyConstraints;
  1760. /*
  1761.  * SkipCerts
  1762.  *
  1763.  * -- fgmr comments --
  1764.  *
  1765.  * From RFC 2459:
  1766.  *
  1767.  *  SkipCerts ::= INTEGER (0..MAX)
  1768.  *
  1769.  */
  1770. typedef NSSItem NSSPKIXSkipCerts;
  1771. /*
  1772.  * CRLDistPointsSyntax
  1773.  *
  1774.  * -- fgmr comments --
  1775.  *
  1776.  * From RFC 2459:
  1777.  *
  1778.  *  CRLDistPointsSyntax ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
  1779.  *
  1780.  */
  1781. struct NSSPKIXCRLDistPointsSyntaxStr;
  1782. typedef struct NSSPKIXCRLDistPointsSyntaxStr NSSPKIXCRLDistPointsSyntax;
  1783. /*
  1784.  * DistributionPoint
  1785.  *
  1786.  * -- fgmr comments --
  1787.  *
  1788.  * From RFC 2459:
  1789.  *
  1790.  *  DistributionPoint ::= SEQUENCE {
  1791.  *       distributionPoint       [0]     DistributionPointName OPTIONAL,
  1792.  *       reasons                 [1]     ReasonFlags OPTIONAL,
  1793.  *       cRLIssuer               [2]     GeneralNames OPTIONAL }
  1794.  *
  1795.  */
  1796. struct NSSPKIXDistributionPointStr;
  1797. typedef struct NSSPKIXDistributionPointStr NSSPKIXDistributionPoint;
  1798. /*
  1799.  * DistributionPointName
  1800.  *
  1801.  * -- fgmr comments --
  1802.  *
  1803.  * From RFC 2459:
  1804.  *
  1805.  *  DistributionPointName ::= CHOICE {
  1806.  *       fullName                [0]     GeneralNames,
  1807.  *       nameRelativeToCRLIssuer [1]     RelativeDistinguishedName }
  1808.  *
  1809.  */
  1810. struct NSSPKIXDistributionPointNameStr;
  1811. typedef struct NSSPKIXDistributionPointNameStr NSSPKIXDistributionPointName;
  1812. /*
  1813.  * DistributionPointNameChoice
  1814.  *
  1815.  * -- fgmr comments --
  1816.  *
  1817.  */
  1818. enum NSSPKIXDistributionPointNameChoiceEnum {
  1819.   NSSDistributionPointNameChoice_NSSinvalid = -1,
  1820.   NSSDistributionPointNameChoice_FullName = 0,
  1821.   NSSDistributionPointNameChoice_NameRelativeToCRLIssuer = 1
  1822. };
  1823. typedef enum NSSPKIXDistributionPointNameChoiceEnum NSSPKIXDistributionPointNameChoice;
  1824. /*
  1825.  * ReasonFlags
  1826.  *
  1827.  * -- fgmr comments --
  1828.  *
  1829.  * From RFC 2459:
  1830.  *
  1831.  *  ReasonFlags ::= BIT STRING {
  1832.  *       unused                  (0),
  1833.  *       keyCompromise           (1),
  1834.  *       cACompromise            (2),
  1835.  *       affiliationChanged      (3),
  1836.  *       superseded              (4),
  1837.  *       cessationOfOperation    (5),
  1838.  *       certificateHold         (6) }
  1839.  *
  1840.  */
  1841. struct NSSPKIXReasonFlagsStr;
  1842. typedef struct NSSPKIXReasonFlagsStr NSSPKIXReasonFlags;
  1843. /*
  1844.  * ReasonFlagsMask
  1845.  *
  1846.  * -- fgmr comments --
  1847.  *
  1848.  */
  1849. typedef PRInt32 NSSPKIXReasonFlagsMask;
  1850. const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_NSSinvalid          =  -1;
  1851. const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_KeyCompromise       =  0x02;
  1852. const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_CACompromise        =  0x04;
  1853. const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_AffiliationChanged  =  0x08;
  1854. const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_Superseded          =  0x10;
  1855. const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_CessationOfOperation=  0x20;
  1856. const NSSPKIXReasonFlagsMask NSSPKIXReasonFlagsMask_CertificateHold     =  0x40;
  1857. /*
  1858.  * ExtKeyUsageSyntax
  1859.  *
  1860.  * -- fgmr comments --
  1861.  *
  1862.  * From RFC 2459:
  1863.  *
  1864.  *  ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
  1865.  *
  1866.  */
  1867. struct NSSPKIXExtKeyUsageSyntaxStr;
  1868. typedef struct NSSPKIXExtKeyUsageSyntaxStr NSSPKIXExtKeyUsageSyntax;
  1869. /*
  1870.  * KeyPurposeId
  1871.  *
  1872.  * -- fgmr comments --
  1873.  *
  1874.  * From RFC 2459:
  1875.  *
  1876.  *  KeyPurposeId ::= OBJECT IDENTIFIER
  1877.  *
  1878.  */
  1879. typedef NSSOID NSSPKIXKeyPurposeId;
  1880. /*
  1881.  * AuthorityInfoAccessSyntax
  1882.  *
  1883.  * -- fgmr comments --
  1884.  *
  1885.  * From RFC 2459:
  1886.  *
  1887.  *  AuthorityInfoAccessSyntax  ::=
  1888.  *          SEQUENCE SIZE (1..MAX) OF AccessDescription
  1889.  *
  1890.  */
  1891. struct NSSPKIXAuthorityInfoAccessSyntaxStr;
  1892. typedef struct NSSPKIXAuthorityInfoAccessSyntaxStr NSSPKIXAuthorityInfoAccessSyntax;
  1893. /*
  1894.  * AccessDescription
  1895.  *
  1896.  * -- fgmr comments --
  1897.  *
  1898.  * From RFC 2459:
  1899.  *
  1900.  *  AccessDescription  ::=  SEQUENCE {
  1901.  *          accessMethod          OBJECT IDENTIFIER,
  1902.  *          accessLocation        GeneralName  }
  1903.  *
  1904.  */
  1905. struct NSSPKIXAccessDescriptionStr;
  1906. typedef struct NSSPKIXAccessDescriptionStr NSSPKIXAccessDescription;
  1907. /*
  1908.  * CRLNumber
  1909.  *
  1910.  * -- fgmr comments --
  1911.  *
  1912.  * From RFC 2459:
  1913.  *
  1914.  *  CRLNumber ::= INTEGER (0..MAX)
  1915.  *
  1916.  */
  1917. typedef NSSItem NSSPKIXCRLNumber;
  1918. /*
  1919.  * IssuingDistributionPoint
  1920.  *
  1921.  * -- fgmr comments --
  1922.  *
  1923.  * From RFC 2459:
  1924.  *
  1925.  *  IssuingDistributionPoint ::= SEQUENCE {
  1926.  *       distributionPoint       [0] DistributionPointName OPTIONAL,
  1927.  *       onlyContainsUserCerts   [1] BOOLEAN DEFAULT FALSE,
  1928.  *       onlyContainsCACerts     [2] BOOLEAN DEFAULT FALSE,
  1929.  *       onlySomeReasons         [3] ReasonFlags OPTIONAL,
  1930.  *       indirectCRL             [4] BOOLEAN DEFAULT FALSE }
  1931.  *
  1932.  */
  1933. struct NSSPKIXIssuingDistributionPointStr;
  1934. typedef struct NSSPKIXIssuingDistributionPointStr NSSPKIXIssuingDistributionPoint;
  1935. /*
  1936.  * BaseCRLNumber
  1937.  *
  1938.  * -- fgmr comments --
  1939.  *
  1940.  * From RFC 2459:
  1941.  *
  1942.  *  BaseCRLNumber ::= CRLNumber
  1943.  *
  1944.  */
  1945. typedef NSSPKIXCRLNumber NSSPKIXBaseCRLNumber;
  1946. /*
  1947.  * CRLReason
  1948.  *
  1949.  * -- fgmr comments --
  1950.  *
  1951.  * From RFC 2459:
  1952.  *
  1953.  *  CRLReason ::= ENUMERATED {
  1954.  *       unspecified             (0),
  1955.  *       keyCompromise           (1),
  1956.  *       cACompromise            (2),
  1957.  *       affiliationChanged      (3),
  1958.  *       superseded              (4),
  1959.  *       cessationOfOperation    (5),
  1960.  *       certificateHold         (6),
  1961.  *       removeFromCRL           (8) }
  1962.  * 
  1963.  */
  1964. enum NSSPKIXCRLReasonEnum {
  1965.   NSSPKIXCRLReasonEnum_NSSinvalid = -1,
  1966.   NSSPKIXCRLReasonEnum_unspecified = 0,
  1967.   NSSPKIXCRLReasonEnum_keyCompromise = 1,
  1968.   NSSPKIXCRLReasonEnum_cACompromise = 2,
  1969.   NSSPKIXCRLReasonEnum_affiliationChanged = 3,
  1970.   NSSPKIXCRLReasonEnum_superseded = 4,
  1971.   NSSPKIXCRLReasonEnum_cessationOfOperation = 5,
  1972.   NSSPKIXCRLReasonEnum_certificateHold = 6,
  1973.   NSSPKIXCRLReasonEnum_removeFromCRL = 8
  1974. };
  1975. typedef enum NSSPKIXCRLReasonEnum NSSPKIXCRLReason;
  1976. /*
  1977.  * CertificateIssuer
  1978.  *
  1979.  * -- fgmr comments --
  1980.  *
  1981.  * From RFC 2459:
  1982.  *
  1983.  *  CertificateIssuer ::= GeneralNames
  1984.  *
  1985.  */
  1986. typedef NSSPKIXGeneralNames NSSPKIXCertificateIssuer;
  1987. /*
  1988.  * HoldInstructionCode
  1989.  *
  1990.  * -- fgmr comments --
  1991.  *
  1992.  * From RFC 2459:
  1993.  *
  1994.  *  HoldInstructionCode ::= OBJECT IDENTIFIER
  1995.  *
  1996.  */
  1997. typedef NSSOID NSSPKIXHoldInstructionCode;
  1998. /*
  1999.  * InvalidityDate
  2000.  *
  2001.  * -- fgmr comments --
  2002.  *
  2003.  * From RFC 2459:
  2004.  *
  2005.  *  InvalidityDate ::=  GeneralizedTime
  2006.  *
  2007.  */
  2008. typedef PRTime NSSPKIXInvalidityDate;
  2009. PR_END_EXTERN_C
  2010. #endif /* NSSPKIXT_H */