/usr/x86_64-w64-mingw32/include/msasn1.h is in mingw-w64-x86-64-dev 2.0.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 | /**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the w64 mingw-runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef __MS_ASN1_H__
#define __MS_ASN1_H__
#include <pshpack8.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef unsigned char ASN1uint8_t;
typedef signed char ASN1int8_t;
typedef unsigned short ASN1uint16_t;
typedef signed short ASN1int16_t;
typedef unsigned long ASN1uint32_t;
typedef signed long ASN1int32_t;
#ifndef WINAPI
#define WINAPI __stdcall
#endif
#define ASN1_PUBLIC __declspec(dllimport)
#define ASN1API WINAPI
#define ASN1CALL WINAPI
#define ASN1API_INLINE WINAPI
typedef ASN1uint8_t ASN1octet_t;
typedef ASN1uint8_t ASN1bool_t;
typedef struct tagASN1intx_t {
ASN1uint32_t length;
ASN1octet_t *value;
} ASN1intx_t;
typedef struct tagASN1octetstring_t {
ASN1uint32_t length;
ASN1octet_t *value;
} ASN1octetstring_t;
typedef struct tagASN1octetstring2_t {
ASN1uint32_t length;
ASN1octet_t value[1];
} ASN1octetstring2_t;
typedef struct ASN1iterator_s {
struct ASN1iterator_s *next;
void *value;
} ASN1iterator_t;
typedef struct tagASN1bitstring_t {
ASN1uint32_t length;
ASN1octet_t *value;
} ASN1bitstring_t;
typedef char ASN1char_t;
typedef struct tagASN1charstring_t {
ASN1uint32_t length;
ASN1char_t *value;
} ASN1charstring_t;
typedef ASN1uint16_t ASN1char16_t;
typedef struct tagASN1char16string_t {
ASN1uint32_t length;
ASN1char16_t *value;
} ASN1char16string_t;
typedef ASN1uint32_t ASN1char32_t;
typedef struct tagASN1char32string_t {
ASN1uint32_t length;
ASN1char32_t *value;
} ASN1char32string_t;
typedef ASN1char_t *ASN1ztcharstring_t;
typedef ASN1char16_t *ASN1ztchar16string_t;
typedef ASN1char32_t *ASN1ztchar32string_t;
typedef struct tagASN1wstring_t {
ASN1uint32_t length;
WCHAR *value;
} ASN1wstring_t;
typedef struct ASN1objectidentifier_s {
struct ASN1objectidentifier_s *next;
ASN1uint32_t value;
} *ASN1objectidentifier_t;
typedef struct tagASN1objectidentifier2_t {
ASN1uint16_t count;
ASN1uint32_t value[16];
} ASN1objectidentifier2_t;
typedef struct tagASN1encodedOID_t {
ASN1uint16_t length;
ASN1octet_t *value;
} ASN1encodedOID_t;
typedef struct tagASN1stringtableentry_t {
ASN1char32_t lower;
ASN1char32_t upper;
ASN1uint32_t value;
} ASN1stringtableentry_t;
typedef struct tagASN1stringtable_t {
ASN1uint32_t length;
ASN1stringtableentry_t *values;
} ASN1stringtable_t;
typedef ASN1ztcharstring_t ASN1objectdescriptor_t;
typedef struct tagASN1generalizedtime_t {
ASN1uint16_t year;
ASN1uint8_t month;
ASN1uint8_t day;
ASN1uint8_t hour;
ASN1uint8_t minute;
ASN1uint8_t second;
ASN1uint16_t millisecond;
ASN1bool_t universal;
ASN1int16_t diff;
} ASN1generalizedtime_t;
typedef struct tagASN1utctime_t {
ASN1uint8_t year;
ASN1uint8_t month;
ASN1uint8_t day;
ASN1uint8_t hour;
ASN1uint8_t minute;
ASN1uint8_t second;
ASN1bool_t universal;
ASN1int16_t diff;
} ASN1utctime_t;
typedef struct tagASN1open_t {
ASN1uint32_t length;
__C89_NAMELESS union {
void *encoded;
void *value;
};
} ASN1open_t;
typedef enum tagASN1blocktype_e {
ASN1_DER_SET_OF_BLOCK
} ASN1blocktype_e;
typedef ASN1int32_t ASN1enum_t;
typedef ASN1uint16_t ASN1choice_t;
typedef ASN1uint32_t ASN1magic_t;
#define ASN1_MAKE_VERSION(major,minor) (((major) << 16) | (minor))
#define ASN1_THIS_VERSION ASN1_MAKE_VERSION(1,0)
enum {
ASN1_CHOICE_BASE = 1,ASN1_CHOICE_INVALID = -1,ASN1_CHOICE_EXTENSION = 0
};
typedef enum tagASN1error_e {
ASN1_SUCCESS = 0,ASN1_ERR_INTERNAL = (-1001),ASN1_ERR_EOD = (-1002),ASN1_ERR_CORRUPT = (-1003),ASN1_ERR_LARGE = (-1004),
ASN1_ERR_CONSTRAINT = (-1005),ASN1_ERR_MEMORY = (-1006),ASN1_ERR_OVERFLOW = (-1007),ASN1_ERR_BADPDU = (-1008),ASN1_ERR_BADARGS = (-1009),
ASN1_ERR_BADREAL = (-1010),ASN1_ERR_BADTAG = (-1011),ASN1_ERR_CHOICE = (-1012),ASN1_ERR_RULE = (-1013),ASN1_ERR_UTF8 = (-1014),
ASN1_ERR_PDU_TYPE = (-1051),ASN1_ERR_NYI = (-1052),ASN1_WRN_EXTENDED = 1001,ASN1_WRN_NOEOD = 1002
} ASN1error_e;
#define ASN1_SUCCEEDED(ret) (((int) (ret)) >= 0)
#define ASN1_FAILED(ret) (((int) (ret)) < 0)
typedef enum {
ASN1_PER_RULE_ALIGNED = 0x0001,ASN1_PER_RULE_UNALIGNED = 0x0002,ASN1_PER_RULE = ASN1_PER_RULE_ALIGNED | ASN1_PER_RULE_UNALIGNED,
ASN1_BER_RULE_BER = 0x0100,ASN1_BER_RULE_CER = 0x0200,ASN1_BER_RULE_DER = 0x0400,
ASN1_BER_RULE = ASN1_BER_RULE_BER | ASN1_BER_RULE_CER | ASN1_BER_RULE_DER
} ASN1encodingrule_e;
typedef struct ASN1encoding_s *ASN1encoding_t;
typedef struct ASN1decoding_s *ASN1decoding_t;
typedef ASN1int32_t (WINAPI *ASN1PerEncFun_t)(ASN1encoding_t enc,void *data);
typedef ASN1int32_t (WINAPI *ASN1PerDecFun_t)(ASN1decoding_t enc,void *data);
typedef struct tagASN1PerFunArr_t {
const ASN1PerEncFun_t *apfnEncoder;
const ASN1PerDecFun_t *apfnDecoder;
} ASN1PerFunArr_t;
typedef ASN1int32_t (WINAPI *ASN1BerEncFun_t)(ASN1encoding_t enc,ASN1uint32_t tag,void *data);
typedef ASN1int32_t (WINAPI *ASN1BerDecFun_t)(ASN1decoding_t enc,ASN1uint32_t tag,void *data);
typedef struct tagASN1BerFunArr_t {
const ASN1BerEncFun_t *apfnEncoder;
const ASN1BerDecFun_t *apfnDecoder;
} ASN1BerFunArr_t;
typedef void (WINAPI *ASN1GenericFun_t)(void);
typedef void (WINAPI *ASN1FreeFun_t)(void *data);
typedef struct tagASN1module_t {
ASN1magic_t nModuleName;
ASN1encodingrule_e eRule;
ASN1uint32_t dwFlags;
ASN1uint32_t cPDUs;
const ASN1FreeFun_t *apfnFreeMemory;
const ASN1uint32_t *acbStructSize;
__C89_NAMELESS union {
ASN1PerFunArr_t PER;
ASN1BerFunArr_t BER;
};
} *ASN1module_t;
struct ASN1encoding_s {
ASN1magic_t magic;
ASN1uint32_t version;
ASN1module_t module;
ASN1octet_t *buf;
ASN1uint32_t size;
ASN1uint32_t len;
ASN1error_e err;
ASN1uint32_t bit;
ASN1octet_t *pos;
ASN1uint32_t cbExtraHeader;
ASN1encodingrule_e eRule;
ASN1uint32_t dwFlags;
};
struct ASN1decoding_s {
ASN1magic_t magic;
ASN1uint32_t version;
ASN1module_t module;
ASN1octet_t *buf;
ASN1uint32_t size;
ASN1uint32_t len;
ASN1error_e err;
ASN1uint32_t bit;
ASN1octet_t *pos;
ASN1encodingrule_e eRule;
ASN1uint32_t dwFlags;
};
#define ASN1DECFREE_NON_PDU_ID ((ASN1uint32_t) -1)
enum {
ASN1FLAGS_NONE = 0x00000000L,ASN1FLAGS_NOASSERT = 0x00001000L
};
enum {
ASN1ENCODE_APPEND = 0x00000001L,ASN1ENCODE_REUSEBUFFER = 0x00000004L,ASN1ENCODE_SETBUFFER = 0x00000008L,ASN1ENCODE_ALLOCATEBUFFER = 0x00000010L,
ASN1ENCODE_NOASSERT = ASN1FLAGS_NOASSERT
};
enum {
ASN1DECODE_APPENDED = 0x00000001L,ASN1DECODE_REWINDBUFFER = 0x00000004L,ASN1DECODE_SETBUFFER = 0x00000008L,ASN1DECODE_AUTOFREEBUFFER = 0x00000010L,
ASN1DECODE_NOASSERT = ASN1FLAGS_NOASSERT
};
extern ASN1_PUBLIC ASN1module_t WINAPI ASN1_CreateModule(ASN1uint32_t nVersion,ASN1encodingrule_e eRule,ASN1uint32_t dwFlags,ASN1uint32_t cPDU,const ASN1GenericFun_t apfnEncoder[],const ASN1GenericFun_t apfnDecoder[],const ASN1FreeFun_t apfnFreeMemory[],const ASN1uint32_t acbStructSize[],ASN1magic_t nModuleName);
extern ASN1_PUBLIC void WINAPI ASN1_CloseModule(ASN1module_t pModule);
extern ASN1_PUBLIC ASN1error_e WINAPI ASN1_CreateEncoder(ASN1module_t pModule,ASN1encoding_t *ppEncoderInfo,ASN1octet_t *pbBuf,ASN1uint32_t cbBufSize,ASN1encoding_t pParent);
extern ASN1_PUBLIC ASN1error_e WINAPI ASN1_Encode(ASN1encoding_t pEncoderInfo,void *pDataStruct,ASN1uint32_t nPduNum,ASN1uint32_t dwFlags,ASN1octet_t *pbBuf,ASN1uint32_t cbBufSize);
extern ASN1_PUBLIC void WINAPI ASN1_CloseEncoder(ASN1encoding_t pEncoderInfo);
extern ASN1_PUBLIC void WINAPI ASN1_CloseEncoder2(ASN1encoding_t pEncoderInfo);
extern ASN1_PUBLIC ASN1error_e WINAPI ASN1_CreateDecoder(ASN1module_t pModule,ASN1decoding_t *ppDecoderInfo,ASN1octet_t *pbBuf,ASN1uint32_t cbBufSize,ASN1decoding_t pParent);
extern ASN1_PUBLIC ASN1error_e WINAPI ASN1_CreateDecoderEx(ASN1module_t pModule,ASN1decoding_t *ppDecoderInfo,ASN1octet_t *pbBuf,ASN1uint32_t cbBufSize,ASN1decoding_t pParent,ASN1uint32_t dwFlags);
extern ASN1_PUBLIC ASN1error_e WINAPI ASN1_Decode(ASN1decoding_t pDecoderInfo,void **ppDataStruct,ASN1uint32_t nPduNum,ASN1uint32_t dwFlags,ASN1octet_t *pbBuf,ASN1uint32_t cbBufSize);
extern ASN1_PUBLIC void WINAPI ASN1_CloseDecoder(ASN1decoding_t pDecoderInfo);
extern ASN1_PUBLIC void WINAPI ASN1_FreeEncoded(ASN1encoding_t pEncoderInfo,void *pBuf);
extern ASN1_PUBLIC void WINAPI ASN1_FreeDecoded(ASN1decoding_t pDecoderInfo,void *pDataStruct,ASN1uint32_t nPduNum);
typedef enum {
ASN1OPT_CHANGE_RULE = 0x101,ASN1OPT_GET_RULE = 0x201,ASN1OPT_NOT_REUSE_BUFFER = 0x301,ASN1OPT_REWIND_BUFFER = 0x302,
ASN1OPT_SET_DECODED_BUFFER = 0x501,ASN1OPT_DEL_DECODED_BUFFER = 0x502,ASN1OPT_GET_DECODED_BUFFER_SIZE = 0x601
} ASN1option_e;
typedef struct tagASN1optionparam_t {
ASN1option_e eOption;
__C89_NAMELESS union {
ASN1encodingrule_e eRule;
ASN1uint32_t cbRequiredDecodedBufSize;
struct {
ASN1octet_t *pbBuf;
ASN1uint32_t cbBufSize;
} Buffer;
};
} ASN1optionparam_t,ASN1optionparam_s;
extern ASN1_PUBLIC ASN1error_e WINAPI ASN1_SetEncoderOption(ASN1encoding_t pEncoderInfo,ASN1optionparam_t *pOptParam);
extern ASN1_PUBLIC ASN1error_e WINAPI ASN1_GetEncoderOption(ASN1encoding_t pEncoderInfo,ASN1optionparam_t *pOptParam);
extern ASN1_PUBLIC ASN1error_e WINAPI ASN1_SetDecoderOption(ASN1decoding_t pDecoderInfo,ASN1optionparam_t *pOptParam);
extern ASN1_PUBLIC ASN1error_e WINAPI ASN1_GetDecoderOption(ASN1decoding_t pDecoderInfo,ASN1optionparam_t *pOptParam);
extern ASN1_PUBLIC void WINAPI ASN1bitstring_free(ASN1bitstring_t *);
extern ASN1_PUBLIC void WINAPI ASN1octetstring_free(ASN1octetstring_t *);
extern ASN1_PUBLIC void WINAPI ASN1objectidentifier_free(ASN1objectidentifier_t *);
extern ASN1_PUBLIC void WINAPI ASN1charstring_free(ASN1charstring_t *);
extern ASN1_PUBLIC void WINAPI ASN1char16string_free(ASN1char16string_t *);
extern ASN1_PUBLIC void WINAPI ASN1char32string_free(ASN1char32string_t *);
extern ASN1_PUBLIC void WINAPI ASN1ztcharstring_free(ASN1ztcharstring_t);
extern ASN1_PUBLIC void WINAPI ASN1ztchar16string_free(ASN1ztchar16string_t);
extern ASN1_PUBLIC void WINAPI ASN1ztchar32string_free(ASN1ztchar32string_t);
extern ASN1_PUBLIC void WINAPI ASN1open_free(ASN1open_t *);
extern ASN1_PUBLIC void WINAPI ASN1utf8string_free(ASN1wstring_t *);
extern ASN1_PUBLIC void *WINAPI ASN1DecAlloc(ASN1decoding_t dec,ASN1uint32_t size);
extern ASN1_PUBLIC void *WINAPI ASN1DecRealloc(ASN1decoding_t dec,void *ptr,ASN1uint32_t size);
extern ASN1_PUBLIC void WINAPI ASN1Free(void *ptr);
extern ASN1_PUBLIC ASN1error_e WINAPI ASN1EncSetError(ASN1encoding_t enc,ASN1error_e err);
extern ASN1_PUBLIC ASN1error_e WINAPI ASN1DecSetError(ASN1decoding_t dec,ASN1error_e err);
extern ASN1_PUBLIC void WINAPI ASN1intx_sub(ASN1intx_t *,ASN1intx_t *,ASN1intx_t *);
extern ASN1_PUBLIC ASN1uint32_t WINAPI ASN1intx_uoctets(ASN1intx_t *);
extern ASN1_PUBLIC void WINAPI ASN1intx_free(ASN1intx_t *);
extern ASN1_PUBLIC void WINAPI ASN1intx_add(ASN1intx_t *,ASN1intx_t *,ASN1intx_t *);
extern ASN1_PUBLIC ASN1int32_t WINAPI ASN1intx2int32(ASN1intx_t *val);
extern ASN1_PUBLIC ASN1uint32_t WINAPI ASN1intx2uint32(ASN1intx_t *val);
extern ASN1_PUBLIC int WINAPI ASN1intxisuint32(ASN1intx_t *val);
extern ASN1_PUBLIC void WINAPI ASN1intx_setuint32(ASN1intx_t *dst,ASN1uint32_t val);
extern ASN1_PUBLIC void WINAPI ASN1DbgMemTrackDumpCurrent (ASN1uint32_t nModuleName);
extern ASN1_PUBLIC ASN1uint32_t WINAPI ASN1uint32_uoctets(ASN1uint32_t);
extern ASN1_PUBLIC int WINAPI ASN1objectidentifier_cmp(ASN1objectidentifier_t *v1,ASN1objectidentifier_t *v2);
extern ASN1_PUBLIC int WINAPI ASN1objectidentifier2_cmp(ASN1objectidentifier2_t *v1,ASN1objectidentifier2_t *v2);
extern ASN1_PUBLIC int WINAPI ASN1bitstring_cmp(ASN1bitstring_t *,ASN1bitstring_t *,int);
extern ASN1_PUBLIC int WINAPI ASN1octetstring_cmp(ASN1octetstring_t *,ASN1octetstring_t *);
extern ASN1_PUBLIC int WINAPI ASN1objectidentifier_cmp(ASN1objectidentifier_t *,ASN1objectidentifier_t *);
extern ASN1_PUBLIC int WINAPI ASN1charstring_cmp(ASN1charstring_t *,ASN1charstring_t *);
extern ASN1_PUBLIC int WINAPI ASN1char16string_cmp(ASN1char16string_t *,ASN1char16string_t *);
extern ASN1_PUBLIC int WINAPI ASN1char32string_cmp(ASN1char32string_t *,ASN1char32string_t *);
extern ASN1_PUBLIC int WINAPI ASN1ztcharstring_cmp(ASN1ztcharstring_t,ASN1ztcharstring_t);
extern ASN1_PUBLIC int WINAPI ASN1ztchar16string_cmp(ASN1ztchar16string_t,ASN1ztchar16string_t);
extern ASN1_PUBLIC int WINAPI ASN1open_cmp(ASN1open_t *,ASN1open_t *);
extern ASN1_PUBLIC int WINAPI ASN1generalizedtime_cmp(ASN1generalizedtime_t *,ASN1generalizedtime_t *);
extern ASN1_PUBLIC int WINAPI ASN1utctime_cmp(ASN1utctime_t *,ASN1utctime_t *);
typedef enum tagASN1real_e {
eReal_Normal,eReal_PlusInfinity,eReal_MinusInfinity
} ASN1real_e;
typedef struct tagASN1real_t {
ASN1real_e type;
ASN1intx_t mantissa;
ASN1uint32_t base;
ASN1intx_t exponent;
} ASN1real_t;
typedef struct tagASN1external_t {
#define ASN1external_data_value_descriptor_o 0
ASN1octet_t o[1];
struct ASN1external_identification_s {
ASN1uint8_t o;
union {
#define ASN1external_identification_syntax_o 1
ASN1objectidentifier_t syntax;
#define ASN1external_identification_presentation_context_id_o 2
ASN1uint32_t presentation_context_id;
#define ASN1external_identification_context_negotiation_o 3
struct ASN1external_identification_context_negotiation_s {
ASN1uint32_t presentation_context_id;
ASN1objectidentifier_t transfer_syntax;
} context_negotiation;
} u;
} identification;
ASN1objectdescriptor_t data_value_descriptor;
struct ASN1external_data_value_s {
ASN1uint8_t o;
union {
#define ASN1external_data_value_notation_o 0
ASN1open_t notation;
#define ASN1external_data_value_encoded_o 1
ASN1bitstring_t encoded;
} u;
} data_value;
} ASN1external_t;
typedef struct ASN1external_identification_s ASN1external_identification_t;
typedef struct ASN1external_identification_context_negotiation_s ASN1external_identification_context_negotiation_t;
typedef struct ASN1external_data_value_s ASN1external_data_value_t;
typedef struct tagASN1embeddedpdv_t {
struct ASN1embeddedpdv_identification_s {
ASN1uint8_t o;
union {
#define ASN1embeddedpdv_identification_syntaxes_o 0
struct ASN1embeddedpdv_identification_syntaxes_s {
ASN1objectidentifier_t abstract;
ASN1objectidentifier_t transfer;
} syntaxes;
#define ASN1embeddedpdv_identification_syntax_o 1
ASN1objectidentifier_t syntax;
#define ASN1embeddedpdv_identification_presentation_context_id_o 2
ASN1uint32_t presentation_context_id;
#define ASN1embeddedpdv_identification_context_negotiation_o 3
struct ASN1embeddedpdv_identification_context_negotiation_s {
ASN1uint32_t presentation_context_id;
ASN1objectidentifier_t transfer_syntax;
} context_negotiation;
#define ASN1embeddedpdv_identification_transfer_syntax_o 4
ASN1objectidentifier_t transfer_syntax;
#define ASN1embeddedpdv_identification_fixed_o 5
} u;
} identification;
struct ASN1embeddedpdv_data_value_s {
ASN1uint8_t o;
union {
#define ASN1embeddedpdv_data_value_notation_o 0
ASN1open_t notation;
#define ASN1embeddedpdv_data_value_encoded_o 1
ASN1bitstring_t encoded;
} u;
} data_value;
} ASN1embeddedpdv_t;
typedef struct ASN1embeddedpdv_identification_s ASN1embeddedpdv_identification_t;
typedef struct ASN1embeddedpdv_identification_syntaxes_s ASN1embeddedpdv_identification_syntaxes_t;
typedef struct ASN1embeddedpdv_identification_context_negotiation_s ASN1embeddedpdv_identification_context_negotiation_t;
typedef struct ASN1embeddedpdv_data_value_s ASN1embeddedpdv_data_value_t;
typedef struct tagASN1characterstring_t {
struct ASN1characterstring_identification_s {
ASN1uint8_t o;
union {
#define ASN1characterstring_identification_syntaxes_o 0
struct ASN1characterstring_identification_syntaxes_s {
ASN1objectidentifier_t abstract;
ASN1objectidentifier_t transfer;
} syntaxes;
#define ASN1characterstring_identification_syntax_o 1
ASN1objectidentifier_t syntax;
#define ASN1characterstring_identification_presentation_context_id_o 2
ASN1uint32_t presentation_context_id;
#define ASN1characterstring_identification_context_negotiation_o 3
struct ASN1characterstring_identification_context_negotiation_s {
ASN1uint32_t presentation_context_id;
ASN1objectidentifier_t transfer_syntax;
} context_negotiation;
#define ASN1characterstring_identification_transfer_syntax_o 4
ASN1objectidentifier_t transfer_syntax;
#define ASN1characterstring_identification_fixed_o 5
} u;
} identification;
struct ASN1characterstring_data_value_s {
ASN1uint8_t o;
union {
#define ASN1characterstring_data_value_notation_o 0
ASN1open_t notation;
#define ASN1characterstring_data_value_encoded_o 1
ASN1octetstring_t encoded;
} u;
} data_value;
} ASN1characterstring_t;
typedef struct ASN1characterstring_identification_s ASN1characterstring_identification_t;
typedef struct ASN1characterstring_identification_syntaxes_s ASN1characterstring_identification_syntaxes_t;
typedef struct ASN1characterstring_identification_context_negotiation_s ASN1characterstring_identification_context_negotiation_t;
typedef struct ASN1characterstring_data_value_s ASN1characterstring_data_value_t;
extern ASN1_PUBLIC void WINAPI ASN1real_free(ASN1real_t *);
extern ASN1_PUBLIC void WINAPI ASN1external_free(ASN1external_t *);
extern ASN1_PUBLIC void WINAPI ASN1embeddedpdv_free(ASN1embeddedpdv_t *);
extern ASN1_PUBLIC void WINAPI ASN1characterstring_free(ASN1characterstring_t *);
#ifdef __cplusplus
}
#endif
#include <poppack.h>
#endif
|