ASN1.H
上传用户:sunrenlu
上传日期:2022-06-13
资源大小:1419k
文件大小:5k
源码类别:

操作系统开发

开发平台:

DOS

  1. /* see ASN1.H for copyright */
  2. #ifndef _ASN1_H_
  3. #define _ASN1_H_
  4.                              /* Class       */
  5. #define ASN1_UNI       0     /* Universal   */
  6. #define ASN1_APL       1     /* Application */
  7. #define ASN1_CTX       2     /* Context     */
  8. #define ASN1_PRV       3     /* Private     */
  9.                              /* Tag                */
  10. #define ASN1_EOC       0     /* End Of Contents    */
  11. #define ASN1_BOL       1     /* Boolean            */
  12. #define ASN1_INT       2     /* Integer            */
  13. #define ASN1_BTS       3     /* Bit String         */
  14. #define ASN1_OTS       4     /* Octet String       */
  15. #define ASN1_NUL       5     /* Null               */
  16. #define ASN1_OJI       6     /* Object Identifier  */
  17. #define ASN1_OJD       7     /* Object Description */
  18. #define ASN1_EXT       8     /* External           */
  19. #define ASN1_SEQ       16    /* Sequence           */
  20. #define ASN1_SET       17    /* Set                */
  21. #define ASN1_NUMSTR    18    /* Numerical String   */
  22. #define ASN1_PRNSTR    19    /* Printable String   */
  23. #define ASN1_TEXSTR    20    /* Teletext String    */
  24. #define ASN1_VIDSTR    21    /* Video String       */
  25. #define ASN1_IA5STR    22    /* IA5 String         */
  26. #define ASN1_UNITIM    23    /* Universal Time     */
  27. #define ASN1_GENTIM    24    /* General Time       */
  28. #define ASN1_GRASTR    25    /* Graphical String   */
  29. #define ASN1_VISSTR    26    /* Visible String     */
  30. #define ASN1_GENSTR    27    /* General String     */
  31.                              /* Primitie / Constructed */
  32. #define ASN1_PRI     0       /* Primitive              */
  33. #define ASN1_CON     1       /* Constructed            */
  34.                              /* Mode to open ASN11 */
  35. #define ASN1_ENC     0       /* Encoding          */
  36. #define ASN1_DEC     1       /* Decoding          */
  37.  
  38. typedef struct _ASN1_SCK ASN1_SCK;
  39. struct _ASN1_SCK
  40. {                            /* ASN1 socket                         */
  41.     BYTE    *Pointer;        /* Octet just encoded or to be decoded */
  42.     BYTE    *Begin;          /* First octet                         */
  43.     BYTE    *End;            /* Octet after last octet              */
  44. };
  45. void Asn1Opn __((ASN1_SCK *Asn1, BYTE *Buf, unsigned Len, unsigned Mde));
  46. void Asn1Cls __((ASN1_SCK *Asn1, BYTE **Buf, unsigned *Len));
  47. BOOLEAN Asn1OctEnc __((ASN1_SCK *Asn1, BYTE Chr));
  48. BOOLEAN Asn1OctDec __((ASN1_SCK *Asn1, BYTE *Chr));
  49. BOOLEAN Asn1TagEnc __((ASN1_SCK *Asn1, unsigned Tag));
  50. BOOLEAN Asn1TagDec __((ASN1_SCK *Asn1, unsigned *Tag));
  51. BOOLEAN Asn1IdrEnc __((ASN1_SCK *Asn1, unsigned Cls, unsigned Con, unsigned Tag));
  52. BOOLEAN Asn1IdrDec __((ASN1_SCK *Asn1, unsigned *Cls, unsigned *Con, unsigned *Tag));
  53. BOOLEAN Asn1LenEnc __((ASN1_SCK *Asn1, unsigned Def, unsigned Len));
  54. BOOLEAN Asn1LenDec __((ASN1_SCK *Asn1, unsigned *Def, unsigned *Len));
  55. BOOLEAN Asn1HdrEnc __((ASN1_SCK *Asn1, BYTE *Eoc, unsigned Cls, unsigned Con, unsigned Tag));
  56. BOOLEAN Asn1HdrDec __((ASN1_SCK *Asn1, BYTE **Eoc, unsigned *Cls, unsigned *Con, unsigned *Tag));
  57. BOOLEAN Asn1Eoc __((ASN1_SCK *Asn1, BYTE *Eoc));
  58. BOOLEAN Asn1EocEnc __((ASN1_SCK *Asn1, BYTE **Eoc));
  59. BOOLEAN Asn1EocDec __((ASN1_SCK *Asn1, BYTE *Eoc));
  60. BOOLEAN Asn1NulEnc __((ASN1_SCK *Asn1, BYTE **Eoc));
  61. BOOLEAN Asn1NulDec __((ASN1_SCK *Asn1, BYTE *Eoc));
  62. BOOLEAN Asn1BolEnc __((ASN1_SCK *Asn1, BYTE **Eoc, BOOLEAN Bol));
  63. BOOLEAN Asn1BolDec __((ASN1_SCK *Asn1, BYTE *Eoc, BOOLEAN *Bol));
  64. BOOLEAN Asn1IntEnc __((ASN1_SCK *Asn1, BYTE **Eoc, int Int));
  65. BOOLEAN Asn1IntDec __((ASN1_SCK *Asn1, BYTE *Eoc, int *Int));
  66. BOOLEAN Asn1IntEncLng __((ASN1_SCK *Asn1, BYTE **Eoc, long Int));
  67. BOOLEAN Asn1IntDecLng __((ASN1_SCK *Asn1, BYTE *Eoc, long *Int));
  68. BOOLEAN Asn1IntEncUns __((ASN1_SCK *Asn1, BYTE **Eoc, unsigned Int));
  69. BOOLEAN Asn1IntDecUns __((ASN1_SCK *Asn1, BYTE *Eoc, unsigned *Int));
  70. BOOLEAN Asn1IntEncLngUns __((ASN1_SCK *Asn1, BYTE **Eoc, unsigned long Int));
  71. BOOLEAN Asn1IntDecLngUns __((ASN1_SCK *Asn1, BYTE *Eoc, unsigned long *Int));
  72. BOOLEAN Asn1BtsEnc __((ASN1_SCK *Asn1, BYTE **Eoc, BYTE *Bts, unsigned BtsLen, BYTE BtsUnu));
  73. BOOLEAN Asn1BtsDec __((ASN1_SCK *Asn1, BYTE *Eoc, BYTE *Bts, unsigned BtsSze, unsigned *BtsLen, BYTE *BtsUnu));
  74. BOOLEAN Asn1OtsEnc __((ASN1_SCK *Asn1, BYTE **Eoc, BYTE *Ots, unsigned OtsLen));
  75. BOOLEAN Asn1OtsDec __((ASN1_SCK *Asn1, BYTE *Eoc, BYTE *Ots, unsigned OtsSze, unsigned *OtsLen));
  76. BOOLEAN Asn1SbiEnc __((ASN1_SCK *Asn1, unsigned long Sbi));
  77. BOOLEAN Asn1SbiDec __((ASN1_SCK *Asn1, unsigned long *Sbi));
  78. BOOLEAN Asn1OjiEnc __((ASN1_SCK *Asn1, BYTE **Eoc, unsigned long *Oji, unsigned OjiLen));
  79. BOOLEAN Asn1OjiDec __((ASN1_SCK *Asn1, BYTE *Eoc, unsigned long *Oji, unsigned OjiSze, unsigned *OjiLen));
  80. #endif