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

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 NSSBASET_H
  34. #define NSSBASET_H
  35. #ifdef DEBUG
  36. static const char NSSBASET_CVS_ID[] = "@(#) $RCSfile: nssbaset.h,v $ $Revision: 1.2 $ $Date: 2000/09/06 22:11:57 $ $Name: NSS_3_1_1_RTM $";
  37. #endif /* DEBUG */
  38. /*
  39.  * nssbaset.h
  40.  *
  41.  * This file contains the most low-level, fundamental public types.
  42.  */
  43. #include "nspr.h"
  44. /*
  45.  * NSS_EXTERN, NSS_IMPLEMENT, NSS_EXTERN_DATA, NSS_IMPLEMENT_DATA
  46.  *
  47.  * NSS has its own versions of these NSPR macros, in a form which
  48.  * does not confuse ctags and other related utilities.  NSPR 
  49.  * defines these macros to take the type as an argument, because
  50.  * of a requirement to support win16 dlls.  We do not have that
  51.  * requirement, so we can drop that restriction.
  52.  */
  53. #define DUMMY /* dummy */
  54. #define NSS_EXTERN         PR_EXTERN(DUMMY)
  55. #define NSS_IMPLEMENT      PR_IMPLEMENT(DUMMY)
  56. #define NSS_EXTERN_DATA    PR_EXTERN_DATA(DUMMY)
  57. #define NSS_IMPLEMENT_DATA PR_IMPLEMENT_DATA(DUMMY)
  58. PR_BEGIN_EXTERN_C
  59. /*
  60.  * NSSError
  61.  *
  62.  * Calls to NSS routines may result in one or more errors being placed
  63.  * on the calling thread's "error stack."  Every possible error that
  64.  * may be returned from a function is declared where the function is 
  65.  * prototyped.  All errors are of the following type.
  66.  */
  67. typedef PRInt32 NSSError;
  68. /*
  69.  * NSSArena
  70.  *
  71.  * Arenas are logical sets of heap memory, from which memory may be
  72.  * allocated.  When an arena is destroyed, all memory allocated within
  73.  * that arena is implicitly freed.  These arenas are thread-safe: 
  74.  * an arena pointer may be used by multiple threads simultaneously.
  75.  * However, as they are not backed by shared memory, they may only be
  76.  * used within one process.
  77.  */
  78. struct NSSArenaStr;
  79. typedef struct NSSArenaStr NSSArena;
  80. /*
  81.  * NSSItem
  82.  *
  83.  * This is the basic type used to refer to an unconstrained datum of
  84.  * arbitrary size.
  85.  */
  86. struct NSSItemStr {
  87.   void *data;
  88.   PRUint32 size;
  89. };
  90. typedef struct NSSItemStr NSSItem;
  91. /*
  92.  * NSSBER
  93.  *
  94.  * Data packed according to the Basic Encoding Rules of ASN.1.
  95.  */
  96. typedef NSSItem NSSBER;
  97. /*
  98.  * NSSDER
  99.  *
  100.  * Data packed according to the Distinguished Encoding Rules of ASN.1;
  101.  * this form is also known as the Canonical Encoding Rules form (CER).
  102.  */
  103. typedef NSSBER NSSDER;
  104. /*
  105.  * NSSBitString
  106.  *
  107.  * Some ASN.1 types use "bit strings," which are passed around as
  108.  * octet strings but whose length is counted in bits.  We use this
  109.  * typedef of NSSItem to point out the occasions when the length
  110.  * is counted in bits, not octets.
  111.  */
  112. typedef NSSItem NSSBitString;
  113. /*
  114.  * NSSUTF8
  115.  *
  116.  * Character strings encoded in UTF-8, as defined by RFC 2279.
  117.  */
  118. typedef PRUint8 NSSUTF8;
  119. /*
  120.  * NSSASCII7
  121.  *
  122.  * Character strings guaranteed to be 7-bit ASCII.
  123.  */
  124. typedef PRUint8 NSSASCII7;
  125. PR_END_EXTERN_C
  126. #endif /* NSSBASET_H */