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

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 NSSPKI1T_H
  34. #define NSSPKI1T_H
  35. #ifdef DEBUG
  36. static const char NSSPKI1T_CVS_ID[] = "@(#) $RCSfile: nsspki1t.h,v $ $Revision: 1.1 $ $Date: 2000/03/31 19:16:21 $ $Name: NSS_3_1_1_RTM $";
  37. #endif /* DEBUG */
  38. /*
  39.  * nsspki1t.h
  40.  *
  41.  * This file contains the public type definitions for the PKIX part-1
  42.  * objects.
  43.  */
  44. #ifndef NSSBASET_H
  45. #include "nssbaset.h"
  46. #endif /* NSSBASET_H */
  47. PR_BEGIN_EXTERN_C
  48. /*
  49.  * OBJECT IDENTIFIER
  50.  *
  51.  * This is the basic OID that crops up everywhere.
  52.  */
  53. struct NSSOIDStr;
  54. typedef struct NSSOIDStr NSSOID;
  55. /*
  56.  * AttributeTypeAndValue
  57.  *
  58.  * This structure contains an attribute type (indicated by an OID), 
  59.  * and the type-specific value.  RelativeDistinguishedNamess consist
  60.  * of a set of these.  These are distinct from Attributes (which have
  61.  * SET of values), from AttributeDescriptions (which have qualifiers
  62.  * on the types), and from AttributeValueAssertions (which assert a
  63.  * a value comparison under some matching rule).
  64.  */
  65. struct NSSATAVStr;
  66. typedef struct NSSATAVStr NSSATAV;
  67. /*
  68.  * RelativeDistinguishedName
  69.  *
  70.  * This structure contains an unordered set of AttributeTypeAndValue 
  71.  * objects.  RDNs are used to distinguish a set of objects underneath 
  72.  * a common object.
  73.  *
  74.  * Often, a single ATAV is sufficient to make a unique distinction.
  75.  * For example, if a company assigns its people unique uid values,
  76.  * then in the Name "uid=smith,ou=People,o=Acme,c=US" the "uid=smith"
  77.  * ATAV by itself forms an RDN.  However, sometimes a set of ATAVs is
  78.  * needed.  For example, if a company needed to distinguish between
  79.  * two Smiths by specifying their corporate divisions, then in the
  80.  * Name "(cn=Smith,ou=Sales),ou=People,o=Acme,c=US" the parenthesised
  81.  * set of ATAVs forms the RDN.
  82.  */
  83. struct NSSRDNStr;
  84. typedef struct NSSRDNStr NSSRDN;
  85. /*
  86.  * RDNSequence
  87.  *
  88.  * This structure contains a sequence of RelativeDistinguishedName
  89.  * objects.
  90.  */
  91. struct NSSRDNSeqStr;
  92. typedef struct NSSRDNSeqStr NSSRDNSeq;
  93. /*
  94.  * Name
  95.  *
  96.  * This structure contains a union of the possible name formats,
  97.  * which at the moment is limited to an RDNSequence.
  98.  */
  99. struct NSSNameStr;
  100. typedef struct NSSNameStr NSSName;
  101. /*
  102.  * NameChoice
  103.  *
  104.  * This enumeration is used to specify choice within a name.
  105.  */
  106. enum NSSNameChoiceEnum {
  107.   NSSNameChoiceInvalid = -1,
  108.   NSSNameChoiceRdnSequence
  109. };
  110. typedef enum NSSNameChoiceEnum NSSNameChoice;
  111. /*
  112.  * GeneralName
  113.  *
  114.  * This structure contains a union of the possible general names,
  115.  * of which there are several.
  116.  */
  117. struct NSSGeneralNameStr;
  118. typedef struct NSSGeneralNameStr NSSGeneralName;
  119. /*
  120.  * GeneralNameChoice
  121.  *
  122.  * This enumerates the possible general name types.
  123.  */
  124. enum NSSGeneralNameChoiceEnum {
  125.   NSSGeneralNameChoiceInvalid = -1,
  126.   NSSGeneralNameChoiceOtherName = 0,
  127.   NSSGeneralNameChoiceRfc822Name = 1,
  128.   NSSGeneralNameChoiceDNSName = 2,
  129.   NSSGeneralNameChoiceX400Address = 3,
  130.   NSSGeneralNameChoiceDirectoryName = 4,
  131.   NSSGeneralNameChoiceEdiPartyName = 5,
  132.   NSSGeneralNameChoiceUniformResourceIdentifier = 6,
  133.   NSSGeneralNameChoiceIPAddress = 7,
  134.   NSSGeneralNameChoiceRegisteredID = 8
  135. };
  136. typedef enum NSSGeneralNameChoiceEnum NSSGeneralNameChoice;
  137. /*
  138.  * The "other" types of general names.
  139.  */
  140. struct NSSOtherNameStr;
  141. typedef struct NSSOtherNameStr NSSOtherName;
  142. struct NSSRFC822NameStr;
  143. typedef struct NSSRFC822NameStr NSSRFC822Name;
  144. struct NSSDNSNameStr;
  145. typedef struct NSSDNSNameStr NSSDNSName;
  146. struct NSSX400AddressStr;
  147. typedef struct NSSX400AddressStr NSSX400Address;
  148. struct NSSEdiPartyNameStr;
  149. typedef struct NSSEdiPartyNameStr NSSEdiPartyName;
  150. struct NSSURIStr;
  151. typedef struct NSSURIStr NSSURI;
  152. struct NSSIPAddressStr;
  153. typedef struct NSSIPAddressStr NSSIPAddress;
  154. struct NSSRegisteredIDStr;
  155. typedef struct NSSRegisteredIDStr NSSRegisteredID;
  156. /*
  157.  * GeneralNameSeq
  158.  *
  159.  * This structure contains a sequence of GeneralName objects.
  160.  * Note that the PKIX documents refer to this as "GeneralNames,"
  161.  * which differs from "GeneralName" by only one letter.  To
  162.  * try to reduce confusion, we expand the name slightly to
  163.  * "GeneralNameSeq."
  164.  */
  165. struct NSSGeneralNameSeqStr;
  166. typedef struct NSSGeneralNameSeqStr NSSGeneralNameSeq;
  167. PR_END_EXTERN_C
  168. #endif /* NSSPKI1T_H */