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 14extern "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