1233294Sstas/* $Id$ */ 272445Sassar 372445Sassar#include <stddef.h> 472445Sassar#include <time.h> 5233294Sstas#include <krb5-types.h> 672445Sassar 772445Sassar#ifndef __asn1_common_definitions__ 872445Sassar#define __asn1_common_definitions__ 972445Sassar 10178825Sdfrtypedef struct heim_integer { 1172445Sassar size_t length; 1272445Sassar void *data; 13178825Sdfr int negative; 14178825Sdfr} heim_integer; 1572445Sassar 16178825Sdfrtypedef struct heim_octet_string { 17178825Sdfr size_t length; 18178825Sdfr void *data; 19178825Sdfr} heim_octet_string; 2072445Sassar 21178825Sdfrtypedef char *heim_general_string; 22178825Sdfrtypedef char *heim_utf8_string; 23233294Sstastypedef struct heim_octet_string heim_printable_string; 24233294Sstastypedef struct heim_octet_string heim_ia5_string; 25178825Sdfr 26178825Sdfrtypedef struct heim_bmp_string { 2790926Snectar size_t length; 28178825Sdfr uint16_t *data; 29178825Sdfr} heim_bmp_string; 30178825Sdfr 31178825Sdfrtypedef struct heim_universal_string { 32178825Sdfr size_t length; 33178825Sdfr uint32_t *data; 34178825Sdfr} heim_universal_string; 35178825Sdfr 36178825Sdfrtypedef char *heim_visible_string; 37178825Sdfr 38178825Sdfrtypedef struct heim_oid { 39178825Sdfr size_t length; 4090926Snectar unsigned *components; 41178825Sdfr} heim_oid; 4290926Snectar 43178825Sdfrtypedef struct heim_bit_string { 44178825Sdfr size_t length; 45178825Sdfr void *data; 46178825Sdfr} heim_bit_string; 47178825Sdfr 48178825Sdfrtypedef struct heim_octet_string heim_any; 49178825Sdfrtypedef struct heim_octet_string heim_any_set; 50178825Sdfr 51178825Sdfr#define ASN1_MALLOC_ENCODE(T, B, BL, S, L, R) \ 52178825Sdfr do { \ 53178825Sdfr (BL) = length_##T((S)); \ 54178825Sdfr (B) = malloc((BL)); \ 55178825Sdfr if((B) == NULL) { \ 56178825Sdfr (R) = ENOMEM; \ 57178825Sdfr } else { \ 58178825Sdfr (R) = encode_##T(((unsigned char*)(B)) + (BL) - 1, (BL), \ 59178825Sdfr (S), (L)); \ 60178825Sdfr if((R) != 0) { \ 61178825Sdfr free((B)); \ 62178825Sdfr (B) = NULL; \ 63178825Sdfr } \ 64178825Sdfr } \ 65178825Sdfr } while (0) 66178825Sdfr 67233294Sstas#ifdef _WIN32 68233294Sstas#ifndef ASN1_LIB 69233294Sstas#define ASN1EXP __declspec(dllimport) 70233294Sstas#else 71233294Sstas#define ASN1EXP 7272445Sassar#endif 73233294Sstas#define ASN1CALL __stdcall 74233294Sstas#else 75233294Sstas#define ASN1EXP 76233294Sstas#define ASN1CALL 77233294Sstas#endif 78233294Sstas 79233294Sstas#endif 80