Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef __MS_BER_H__
      7 #define __MS_BER_H__
      8 
      9 #include <msasn1.h>
     10 
     11 #include <pshpack8.h>
     12 
     13 #ifdef __cplusplus
     14 extern "C" {
     15 #endif
     16 
     17   extern ASN1_PUBLIC int WINAPI ASN1BEREncCharString(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t,ASN1char_t *);
     18   extern ASN1_PUBLIC int WINAPI ASN1BEREncChar16String(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t,ASN1char16_t *);
     19   extern ASN1_PUBLIC int WINAPI ASN1BEREncChar32String(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t,ASN1char32_t *);
     20   extern ASN1_PUBLIC int WINAPI ASN1BEREncOctetString(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t len,ASN1octet_t *val);
     21   extern ASN1_PUBLIC int WINAPI ASN1BEREncBitString(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t,ASN1octet_t *);
     22   extern ASN1_PUBLIC int WINAPI ASN1BEREncDouble(ASN1encoding_t enc,ASN1uint32_t tag,double);
     23   extern ASN1_PUBLIC int WINAPI ASN1BEREncGeneralizedTime(ASN1encoding_t enc,ASN1uint32_t tag,ASN1generalizedtime_t *);
     24   extern ASN1_PUBLIC int WINAPI ASN1BEREncS32(ASN1encoding_t enc,ASN1uint32_t tag,ASN1int32_t);
     25   extern ASN1_PUBLIC int WINAPI ASN1BEREncSX(ASN1encoding_t enc,ASN1uint32_t tag,ASN1intx_t *);
     26   extern ASN1_PUBLIC int WINAPI ASN1BEREncZeroMultibyteString(ASN1encoding_t enc,ASN1uint32_t tag,ASN1ztcharstring_t);
     27   extern ASN1_PUBLIC int WINAPI ASN1BEREncMultibyteString(ASN1encoding_t enc,ASN1uint32_t tag,ASN1charstring_t *);
     28   extern ASN1_PUBLIC int WINAPI ASN1BEREncNull(ASN1encoding_t enc,ASN1uint32_t tag);
     29   extern ASN1_PUBLIC int WINAPI ASN1BEREncObjectIdentifier(ASN1encoding_t enc,ASN1uint32_t tag,ASN1objectidentifier_t *);
     30   extern ASN1_PUBLIC int WINAPI ASN1BEREncObjectIdentifier2(ASN1encoding_t enc,ASN1uint32_t tag,ASN1objectidentifier2_t *val);
     31   extern ASN1_PUBLIC int WINAPI ASN1BEREncRemoveZeroBits(ASN1uint32_t *,ASN1octet_t *);
     32   extern ASN1_PUBLIC int WINAPI ASN1BEREncUTCTime(ASN1encoding_t enc,ASN1uint32_t tag,ASN1utctime_t *);
     33   extern ASN1_PUBLIC int WINAPI ASN1BEREncFlush(ASN1encoding_t enc);
     34   extern ASN1_PUBLIC int WINAPI ASN1BEREncOpenType(ASN1encoding_t enc,ASN1open_t *);
     35   extern ASN1_PUBLIC int WINAPI ASN1BERDecExplicitTag(ASN1decoding_t dec,ASN1uint32_t tag,ASN1decoding_t *dd,ASN1octet_t **di);
     36   extern ASN1_PUBLIC int WINAPI ASN1BERDecEndOfContents(ASN1decoding_t dec,ASN1decoding_t dd,ASN1octet_t *di);
     37   extern ASN1_PUBLIC int WINAPI ASN1BERDecOctetString(ASN1decoding_t dec,ASN1uint32_t tag,ASN1octetstring_t *val);
     38   extern ASN1_PUBLIC int WINAPI ASN1BERDecOctetString2(ASN1decoding_t dec,ASN1uint32_t tag,ASN1octetstring_t *val);
     39   extern ASN1_PUBLIC int WINAPI ASN1BERDecBitString(ASN1decoding_t dec,ASN1uint32_t tag,ASN1bitstring_t *);
     40   extern ASN1_PUBLIC int WINAPI ASN1BERDecBitString2(ASN1decoding_t dec,ASN1uint32_t tag,ASN1bitstring_t *);
     41   extern ASN1_PUBLIC int WINAPI ASN1BERDecChar16String(ASN1decoding_t dec,ASN1uint32_t tag,ASN1char16string_t *);
     42   extern ASN1_PUBLIC int WINAPI ASN1BERDecChar32String(ASN1decoding_t dec,ASN1uint32_t tag,ASN1char32string_t *);
     43   extern ASN1_PUBLIC int WINAPI ASN1BERDecCharString(ASN1decoding_t dec,ASN1uint32_t tag,ASN1charstring_t *);
     44   extern ASN1_PUBLIC int WINAPI ASN1BERDecDouble(ASN1decoding_t dec,ASN1uint32_t tag,double *);
     45   extern ASN1_PUBLIC int WINAPI ASN1BERDecGeneralizedTime(ASN1decoding_t dec,ASN1uint32_t tag,ASN1generalizedtime_t *);
     46   extern ASN1_PUBLIC int WINAPI ASN1BERDecZeroMultibyteString(ASN1decoding_t dec,ASN1uint32_t tag,ASN1ztcharstring_t *);
     47   extern ASN1_PUBLIC int WINAPI ASN1BERDecMultibyteString(ASN1decoding_t dec,ASN1uint32_t tag,ASN1charstring_t *);
     48   extern ASN1_PUBLIC int WINAPI ASN1BERDecNull(ASN1decoding_t dec,ASN1uint32_t tag);
     49   extern ASN1_PUBLIC int WINAPI ASN1BERDecObjectIdentifier(ASN1decoding_t dec,ASN1uint32_t tag,ASN1objectidentifier_t *);
     50   extern ASN1_PUBLIC int WINAPI ASN1BERDecObjectIdentifier2(ASN1decoding_t dec,ASN1uint32_t tag,ASN1objectidentifier2_t *);
     51   extern ASN1_PUBLIC int WINAPI ASN1BERDecS8Val(ASN1decoding_t dec,ASN1uint32_t tag,ASN1int8_t *);
     52   extern ASN1_PUBLIC int WINAPI ASN1BERDecS16Val(ASN1decoding_t dec,ASN1uint32_t tag,ASN1int16_t *);
     53   extern ASN1_PUBLIC int WINAPI ASN1BERDecS32Val(ASN1decoding_t dec,ASN1uint32_t tag,ASN1int32_t *);
     54   extern ASN1_PUBLIC int WINAPI ASN1BERDecSXVal(ASN1decoding_t dec,ASN1uint32_t tag,ASN1intx_t *);
     55   extern ASN1_PUBLIC int WINAPI ASN1BERDecU8Val(ASN1decoding_t dec,ASN1uint32_t tag,ASN1uint8_t *);
     56   extern ASN1_PUBLIC int WINAPI ASN1BERDecU16Val(ASN1decoding_t dec,ASN1uint32_t tag,ASN1uint16_t *);
     57   extern ASN1_PUBLIC int WINAPI ASN1BERDecUTCTime(ASN1decoding_t dec,ASN1uint32_t tag,ASN1utctime_t *);
     58   extern ASN1_PUBLIC int WINAPI ASN1BERDecZeroChar16String(ASN1decoding_t dec,ASN1uint32_t tag,ASN1ztchar16string_t *);
     59   extern ASN1_PUBLIC int WINAPI ASN1BERDecZeroChar32String(ASN1decoding_t dec,ASN1uint32_t tag,ASN1ztchar32string_t *);
     60   extern ASN1_PUBLIC int WINAPI ASN1BERDecZeroCharString(ASN1decoding_t dec,ASN1uint32_t tag,ASN1ztcharstring_t *);
     61   extern ASN1_PUBLIC int WINAPI ASN1BERDecSkip(ASN1decoding_t dec);
     62   extern ASN1_PUBLIC int WINAPI ASN1BERDecFlush(ASN1decoding_t dec);
     63   extern ASN1_PUBLIC int WINAPI ASN1BERDecOpenType(ASN1decoding_t dec,ASN1open_t *);
     64   extern ASN1_PUBLIC int WINAPI ASN1BERDecOpenType2(ASN1decoding_t dec,ASN1open_t *);
     65   extern ASN1_PUBLIC int WINAPI ASN1BEREncCheck(ASN1encoding_t enc,ASN1uint32_t noctets);
     66   extern ASN1_PUBLIC int WINAPI ASN1BEREncTag(ASN1encoding_t enc,ASN1uint32_t tag);
     67   extern ASN1_PUBLIC int WINAPI ASN1BEREncExplicitTag(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t *pLengthOffset);
     68   extern ASN1_PUBLIC int WINAPI ASN1BEREncEndOfContents(ASN1encoding_t enc,ASN1uint32_t LengthOffset);
     69   extern ASN1_PUBLIC int WINAPI ASN1BEREncLength(ASN1encoding_t enc,ASN1uint32_t len);
     70   extern ASN1_PUBLIC int WINAPI ASN1BERDecCheck(ASN1decoding_t dec,ASN1uint32_t len);
     71   extern ASN1_PUBLIC int WINAPI ASN1BERDecTag(ASN1decoding_t dec,ASN1uint32_t tag,ASN1uint32_t *constructed);
     72   extern ASN1_PUBLIC int WINAPI ASN1BERDecLength(ASN1decoding_t dec,ASN1uint32_t *len,ASN1uint32_t *infinite);
     73   extern ASN1_PUBLIC int WINAPI ASN1BERDecNotEndOfContents(ASN1decoding_t dec,ASN1octet_t *di);
     74   extern ASN1_PUBLIC int WINAPI ASN1BERDecPeekTag(ASN1decoding_t dec,ASN1uint32_t *tag);
     75   extern ASN1_PUBLIC int WINAPI ASN1BEREncU32(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t);
     76   extern ASN1_PUBLIC int WINAPI ASN1BERDecU32Val(ASN1decoding_t dec,ASN1uint32_t tag,ASN1uint32_t *val);
     77   extern ASN1_PUBLIC int WINAPI ASN1BEREncBool(ASN1encoding_t enc,ASN1uint32_t tag,ASN1bool_t);
     78   extern ASN1_PUBLIC int WINAPI ASN1BERDecBool(ASN1decoding_t dec,ASN1uint32_t tag,ASN1bool_t *);
     79   extern ASN1_PUBLIC int WINAPI ASN1BEREncEoid(ASN1encoding_t enc,ASN1uint32_t tag,ASN1encodedOID_t *);
     80   extern ASN1_PUBLIC int WINAPI ASN1BERDecEoid(ASN1decoding_t dec,ASN1uint32_t tag,ASN1encodedOID_t *);
     81   extern ASN1_PUBLIC int WINAPI ASN1BERDotVal2Eoid(ASN1encoding_t enc,char *pszDotVal,ASN1encodedOID_t *pOut);
     82   extern ASN1_PUBLIC int WINAPI ASN1BEREoid2DotVal(ASN1decoding_t dec,ASN1encodedOID_t *pIn,char **ppszDotVal);
     83   extern ASN1_PUBLIC void WINAPI ASN1BEREoid_free(ASN1encodedOID_t *);
     84   extern ASN1_PUBLIC int WINAPI ASN1BEREncUTF8String(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t length,WCHAR *value);
     85   extern ASN1_PUBLIC int WINAPI ASN1BERDecUTF8String(ASN1decoding_t dec,ASN1uint32_t tag,ASN1wstring_t *val);
     86   extern ASN1_PUBLIC int WINAPI ASN1CEREncCharString(ASN1encoding_t enc,ASN1uint32_t,ASN1uint32_t,ASN1char_t *);
     87   extern ASN1_PUBLIC int WINAPI ASN1CEREncChar16String(ASN1encoding_t enc,ASN1uint32_t,ASN1uint32_t,ASN1char16_t *);
     88   extern ASN1_PUBLIC int WINAPI ASN1CEREncChar32String(ASN1encoding_t enc,ASN1uint32_t,ASN1uint32_t,ASN1char32_t *);
     89   extern ASN1_PUBLIC int WINAPI ASN1CEREncBitString(ASN1encoding_t enc,ASN1uint32_t,ASN1uint32_t,ASN1octet_t *);
     90   extern ASN1_PUBLIC int WINAPI ASN1CEREncGeneralizedTime(ASN1encoding_t enc,ASN1uint32_t,ASN1generalizedtime_t *);
     91   extern ASN1_PUBLIC int WINAPI ASN1CEREncZeroMultibyteString(ASN1encoding_t enc,ASN1uint32_t,ASN1ztcharstring_t);
     92   extern ASN1_PUBLIC int WINAPI ASN1CEREncMultibyteString(ASN1encoding_t enc,ASN1uint32_t,ASN1charstring_t *);
     93   extern ASN1_PUBLIC int WINAPI ASN1CEREncOctetString(ASN1encoding_t enc,ASN1uint32_t,ASN1uint32_t,ASN1octet_t *);
     94   extern ASN1_PUBLIC int WINAPI ASN1CEREncUTCTime(ASN1encoding_t enc,ASN1uint32_t,ASN1utctime_t *);
     95   extern ASN1_PUBLIC int WINAPI ASN1CEREncBeginBlk(ASN1encoding_t enc,ASN1blocktype_e eBlkType,void **ppBlk);
     96   extern ASN1_PUBLIC int WINAPI ASN1CEREncNewBlkElement(void *pBlk,ASN1encoding_t *enc2);
     97   extern ASN1_PUBLIC int WINAPI ASN1CEREncFlushBlkElement(void *pBlk);
     98   extern ASN1_PUBLIC int WINAPI ASN1CEREncEndBlk(void *pBlk);
     99 
    100 #ifndef __CRT__NO_INLINE
    101   __CRT_INLINE int WINAPI ASN1DEREncGeneralizedTime(ASN1encoding_t enc,ASN1uint32_t tag,ASN1generalizedtime_t *val) { return ASN1CEREncGeneralizedTime(enc,tag,val); }
    102   __CRT_INLINE int WINAPI ASN1DEREncUTCTime(ASN1encoding_t enc,ASN1uint32_t tag,ASN1utctime_t *val) { return ASN1CEREncUTCTime(enc,tag,val); }
    103   __CRT_INLINE int WINAPI ASN1DEREncBeginBlk(ASN1encoding_t enc,ASN1blocktype_e eBlkType,void **ppBlk) { return ASN1CEREncBeginBlk(enc,eBlkType,ppBlk); }
    104   __CRT_INLINE int WINAPI ASN1DEREncNewBlkElement(void *pBlk,ASN1encoding_t *enc2) { return ASN1CEREncNewBlkElement(pBlk,enc2); }
    105   __CRT_INLINE int WINAPI ASN1DEREncFlushBlkElement(void *pBlk) { return ASN1CEREncFlushBlkElement(pBlk); }
    106   __CRT_INLINE int WINAPI ASN1DEREncEndBlk(void *pBlk) { return ASN1CEREncEndBlk(pBlk); }
    107   __CRT_INLINE int WINAPI ASN1DEREncCharString(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t len,ASN1char_t *val) { return ASN1BEREncCharString(enc,tag,len,val); }
    108   __CRT_INLINE int WINAPI ASN1DEREncChar16String(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t len,ASN1char16_t *val) { return ASN1BEREncChar16String(enc,tag,len,val); }
    109   __CRT_INLINE int WINAPI ASN1DEREncChar32String(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t len,ASN1char32_t *val) { return ASN1BEREncChar32String(enc,tag,len,val); }
    110   __CRT_INLINE int WINAPI ASN1DEREncBitString(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t len,ASN1octet_t *val) { return ASN1BEREncBitString(enc,tag,len,val); }
    111   __CRT_INLINE int WINAPI ASN1DEREncZeroMultibyteString(ASN1encoding_t enc,ASN1uint32_t tag,ASN1ztcharstring_t val) { return ASN1BEREncZeroMultibyteString(enc,tag,val); }
    112   __CRT_INLINE int WINAPI ASN1DEREncMultibyteString(ASN1encoding_t enc,ASN1uint32_t tag,ASN1charstring_t *val) { return ASN1BEREncMultibyteString(enc,tag,val); }
    113   __CRT_INLINE int WINAPI ASN1DEREncOctetString(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t len,ASN1octet_t *val) { return ASN1BEREncOctetString(enc,tag,len,val); }
    114   __CRT_INLINE int WINAPI ASN1DEREncUTF8String(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t length,WCHAR *value) { return ASN1BEREncUTF8String(enc,tag,length,value); }
    115   __CRT_INLINE int WINAPI ASN1CEREncUTF8String(ASN1encoding_t enc,ASN1uint32_t tag,ASN1uint32_t length,WCHAR *value) { return ASN1BEREncUTF8String(enc,tag,length,value); }
    116 #endif /* !__CRT__NO_INLINE */
    117 
    118   extern ASN1_PUBLIC int WINAPI ASN1BEREncEmbeddedPdv(ASN1encoding_t enc,ASN1uint32_t tag,ASN1embeddedpdv_t *);
    119   extern ASN1_PUBLIC int WINAPI ASN1BEREncExternal(ASN1encoding_t enc,ASN1uint32_t tag,ASN1external_t *);
    120   extern ASN1_PUBLIC int WINAPI ASN1BEREncCharacterString(ASN1encoding_t enc,ASN1uint32_t tag,ASN1characterstring_t *);
    121   extern ASN1_PUBLIC int WINAPI ASN1BERDecEmbeddedPdv(ASN1decoding_t dec,ASN1uint32_t tag,ASN1embeddedpdv_t *);
    122   extern ASN1_PUBLIC int WINAPI ASN1BERDecExternal(ASN1decoding_t dec,ASN1uint32_t tag,ASN1external_t *);
    123   extern ASN1_PUBLIC int WINAPI ASN1BERDecCharacterString(ASN1decoding_t dec,ASN1uint32_t tag,ASN1characterstring_t *);
    124 
    125 #ifdef __cplusplus
    126 }
    127 #endif
    128 
    129 #include <poppack.h>
    130 #endif
    131