asn1t.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 ASN1T_H
  34. #define ASN1T_H
  35. #ifdef DEBUG
  36. static const char ASN1T_CVS_ID[] = "@(#) $RCSfile: asn1t.h,v $ $Revision: 1.1 $ $Date: 2000/03/31 19:55:30 $ $Name: NSS_3_1_1_RTM $";
  37. #endif /* DEBUG */
  38. /*
  39.  * asn1t.h
  40.  *
  41.  * This file contains the ASN.1 encoder/decoder types available 
  42.  * internally within NSS.  It's not clear right now if this file
  43.  * will be folded into baset.h or something, I just needed to
  44.  * get this going.  At the moment, these types are wrappers for
  45.  * the old types.
  46.  */
  47. #ifndef BASET_H
  48. #include "baset.h"
  49. #endif /* BASET_H */
  50. #ifndef NSSASN1T_H
  51. #include "nssasn1t.h"
  52. #endif /* NSSASN1T_H */
  53. #include "seccomon.h"
  54. #include "secasn1t.h"
  55. PR_BEGIN_EXTERN_C
  56. /*
  57.  * XXX fgmr
  58.  *
  59.  * This sort of bites.  Let's keep an eye on this, to make sure
  60.  * we aren't stuck with it forever.
  61.  */
  62. struct nssASN1ItemStr {
  63.   PRUint32 reserved;
  64.   PRUint8 *data;
  65.   PRUint32 size;
  66. };
  67. typedef struct nssASN1ItemStr nssASN1Item;
  68. /*
  69.  * I'm not documenting these here, since this'll require another
  70.  * pass anyway.
  71.  */
  72. typedef SEC_ASN1Template nssASN1Template;
  73. #define nssASN1_TAG_MASK               SEC_ASN1_TAG_MASK
  74. #define nssASN1_TAGNUM_MASK            SEC_ASN1_TAGNUM_MASK
  75. #define nssASN1_BOOLEAN                SEC_ASN1_BOOLEAN
  76. #define nssASN1_INTEGER                SEC_ASN1_INTEGER
  77. #define nssASN1_BIT_STRING             SEC_ASN1_BIT_STRING
  78. #define nssASN1_OCTET_STRING           SEC_ASN1_OCTET_STRING
  79. #define nssASN1_NULL                   SEC_ASN1_NULL
  80. #define nssASN1_OBJECT_ID              SEC_ASN1_OBJECT_ID
  81. #define nssASN1_OBJECT_DESCRIPTOR      SEC_ASN1_OBJECT_DESCRIPTOR
  82. /* External type and instance-of type   0x08 */
  83. #define nssASN1_REAL                   SEC_ASN1_REAL
  84. #define nssASN1_ENUMERATED             SEC_ASN1_ENUMERATED
  85. #define nssASN1_EMBEDDED_PDV           SEC_ASN1_EMBEDDED_PDV
  86. #define nssASN1_UTF8_STRING            SEC_ASN1_UTF8_STRING
  87. #define nssASN1_SEQUENCE               SEC_ASN1_SEQUENCE
  88. #define nssASN1_SET                    SEC_ASN1_SET
  89. #define nssASN1_NUMERIC_STRING         SEC_ASN1_NUMERIC_STRING
  90. #define nssASN1_PRINTABLE_STRING       SEC_ASN1_PRINTABLE_STRING
  91. #define nssASN1_T61_STRING             SEC_ASN1_T61_STRING
  92. #define nssASN1_TELETEX_STRING         nssASN1_T61_STRING
  93. #define nssASN1_VIDEOTEX_STRING        SEC_ASN1_VIDEOTEX_STRING
  94. #define nssASN1_IA5_STRING             SEC_ASN1_IA5_STRING
  95. #define nssASN1_UTC_TIME               SEC_ASN1_UTC_TIME
  96. #define nssASN1_GENERALIZED_TIME       SEC_ASN1_GENERALIZED_TIME
  97. #define nssASN1_GRAPHIC_STRING         SEC_ASN1_GRAPHIC_STRING
  98. #define nssASN1_VISIBLE_STRING         SEC_ASN1_VISIBLE_STRING
  99. #define nssASN1_GENERAL_STRING         SEC_ASN1_GENERAL_STRING
  100. #define nssASN1_UNIVERSAL_STRING       SEC_ASN1_UNIVERSAL_STRING
  101. /*                                      0x1d */
  102. #define nssASN1_BMP_STRING             SEC_ASN1_BMP_STRING
  103. #define nssASN1_HIGH_TAG_NUMBER        SEC_ASN1_HIGH_TAG_NUMBER
  104. #define nssASN1_METHOD_MASK            SEC_ASN1_METHOD_MASK
  105. #define nssASN1_PRIMITIVE              SEC_ASN1_PRIMITIVE
  106. #define nssASN1_CONSTRUCTED            SEC_ASN1_CONSTRUCTED
  107.                                                                 
  108. #define nssASN1_CLASS_MASK             SEC_ASN1_CLASS_MASK
  109. #define nssASN1_UNIVERSAL              SEC_ASN1_UNIVERSAL
  110. #define nssASN1_APPLICATION            SEC_ASN1_APPLICATION
  111. #define nssASN1_CONTEXT_SPECIFIC       SEC_ASN1_CONTEXT_SPECIFIC
  112. #define nssASN1_PRIVATE                SEC_ASN1_PRIVATE
  113. #define nssASN1_OPTIONAL               SEC_ASN1_OPTIONAL 
  114. #define nssASN1_EXPLICIT               SEC_ASN1_EXPLICIT 
  115. #define nssASN1_ANY                    SEC_ASN1_ANY      
  116. #define nssASN1_INLINE                 SEC_ASN1_INLINE   
  117. #define nssASN1_POINTER                SEC_ASN1_POINTER  
  118. #define nssASN1_GROUP                  SEC_ASN1_GROUP    
  119. #define nssASN1_DYNAMIC                SEC_ASN1_DYNAMIC  
  120. #define nssASN1_SKIP                   SEC_ASN1_SKIP     
  121. #define nssASN1_INNER                  SEC_ASN1_INNER    
  122. #define nssASN1_SAVE                   SEC_ASN1_SAVE     
  123. #define nssASN1_MAY_STREAM             SEC_ASN1_MAY_STREAM
  124. #define nssASN1_SKIP_REST              SEC_ASN1_SKIP_REST
  125. #define nssASN1_CHOICE                 SEC_ASN1_CHOICE
  126. #define nssASN1_SEQUENCE_OF            SEC_ASN1_SEQUENCE_OF 
  127. #define nssASN1_SET_OF                 SEC_ASN1_SET_OF      
  128. #define nssASN1_ANY_CONTENTS           SEC_ASN1_ANY_CONTENTS
  129. typedef SEC_ChooseASN1TemplateFunc nssASN1ChooseTemplateFunction;
  130. typedef SEC_ASN1DecoderContext nssASN1Decoder;
  131. typedef SEC_ASN1EncoderContext nssASN1Encoder;
  132. typedef enum {
  133.   nssASN1EncodingPartIdentifier    = SEC_ASN1_Identifier,
  134.   nssASN1EncodingPartLength        = SEC_ASN1_Length,
  135.   nssASN1EncodingPartContents      = SEC_ASN1_Contents,
  136.   nssASN1EncodingPartEndOfContents = SEC_ASN1_EndOfContents
  137. } nssASN1EncodingPart;
  138. typedef SEC_ASN1NotifyProc nssASN1NotifyFunction;
  139. typedef SEC_ASN1WriteProc nssASN1EncoderWriteFunction;
  140. typedef SEC_ASN1WriteProc nssASN1DecoderFilterFunction;
  141. PR_END_EXTERN_C
  142. #endif /* ASN1T_H */