diff --git a/libcrypto.lua b/libcrypto.lua new file mode 100644 index 0000000..8a52376 --- /dev/null +++ b/libcrypto.lua @@ -0,0 +1,12 @@ + +--OpenSSL libcrypto binding. +--Written by Cosmin Apreutesei. Public Domain. + +require'libcrypto_h' +local ffi = require'ffi' +--TODO: rename libcrypto.dll to crypto.dll on Windows. +local C = pcall(ffi.load, 'crypto') or ffi.load'libcrypto' +local M = {C = C} +setmetatable(M, {__index = C}) + +return M diff --git a/libcrypto_asn1_h.lua b/libcrypto_asn1_h.lua new file mode 100644 index 0000000..98e1750 --- /dev/null +++ b/libcrypto_asn1_h.lua @@ -0,0 +1,688 @@ +// csrc/openssl/src/include/openssl/asn1.h +enum { + V_ASN1_UNIVERSAL = 0x00, + V_ASN1_APPLICATION = 0x40, + V_ASN1_CONTEXT_SPECIFIC = 0x80, + V_ASN1_PRIVATE = 0xc0, + V_ASN1_CONSTRUCTED = 0x20, + V_ASN1_PRIMITIVE_TAG = 0x1f, + V_ASN1_PRIMATIVE_TAG = V_ASN1_PRIMITIVE_TAG, + V_ASN1_APP_CHOOSE = -2, + V_ASN1_OTHER = -3, + V_ASN1_ANY = -4, + V_ASN1_UNDEF = -1, + V_ASN1_EOC = 0, + V_ASN1_BOOLEAN = 1, + V_ASN1_INTEGER = 2, + V_ASN1_BIT_STRING = 3, + V_ASN1_OCTET_STRING = 4, + V_ASN1_NULL = 5, + V_ASN1_OBJECT = 6, + V_ASN1_OBJECT_DESCRIPTOR = 7, + V_ASN1_EXTERNAL = 8, + V_ASN1_REAL = 9, + V_ASN1_ENUMERATED = 10, + V_ASN1_UTF8STRING = 12, + V_ASN1_SEQUENCE = 16, + V_ASN1_SET = 17, + V_ASN1_NUMERICSTRING = 18, + V_ASN1_PRINTABLESTRING = 19, + V_ASN1_T61STRING = 20, + V_ASN1_TELETEXSTRING = 20, + V_ASN1_VIDEOTEXSTRING = 21, + V_ASN1_IA5STRING = 22, + V_ASN1_UTCTIME = 23, + V_ASN1_GENERALIZEDTIME = 24, + V_ASN1_GRAPHICSTRING = 25, + V_ASN1_ISO64STRING = 26, + V_ASN1_VISIBLESTRING = 26, + V_ASN1_GENERALSTRING = 27, + V_ASN1_UNIVERSALSTRING = 28, + V_ASN1_BMPSTRING = 30, + V_ASN1_NEG = 0x100, + V_ASN1_NEG_INTEGER = (2 | V_ASN1_NEG), + V_ASN1_NEG_ENUMERATED = (10 | V_ASN1_NEG), + B_ASN1_NUMERICSTRING = 0x0001, + B_ASN1_PRINTABLESTRING = 0x0002, + B_ASN1_T61STRING = 0x0004, + B_ASN1_TELETEXSTRING = 0x0004, + B_ASN1_VIDEOTEXSTRING = 0x0008, + B_ASN1_IA5STRING = 0x0010, + B_ASN1_GRAPHICSTRING = 0x0020, + B_ASN1_ISO64STRING = 0x0040, + B_ASN1_VISIBLESTRING = 0x0040, + B_ASN1_GENERALSTRING = 0x0080, + B_ASN1_UNIVERSALSTRING = 0x0100, + B_ASN1_OCTET_STRING = 0x0200, + B_ASN1_BIT_STRING = 0x0400, + B_ASN1_BMPSTRING = 0x0800, + B_ASN1_UNKNOWN = 0x1000, + B_ASN1_UTF8STRING = 0x2000, + B_ASN1_UTCTIME = 0x4000, + B_ASN1_GENERALIZEDTIME = 0x8000, + B_ASN1_SEQUENCE = 0x10000, + MBSTRING_FLAG = 0x1000, + MBSTRING_UTF8 = (MBSTRING_FLAG), + MBSTRING_ASC = (MBSTRING_FLAG|1), + MBSTRING_BMP = (MBSTRING_FLAG|2), + MBSTRING_UNIV = (MBSTRING_FLAG|4), + SMIME_OLDMIME = 0x400, + SMIME_CRLFEOL = 0x800, + SMIME_STREAM = 0x1000, +}; + struct X509_algor_st; +struct stack_st_X509_ALGOR; typedef int (*sk_X509_ALGOR_compfunc)(const X509_ALGOR * const *a, const X509_ALGOR *const *b); typedef void (*sk_X509_ALGOR_freefunc)(X509_ALGOR *a); typedef X509_ALGOR * (*sk_X509_ALGOR_copyfunc)(const X509_ALGOR *a); static __attribute__((unused)) inline int sk_X509_ALGOR_num(const struct stack_st_X509_ALGOR *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_ALGOR *sk_X509_ALGOR_value(const struct stack_st_X509_ALGOR *sk, int idx) { return (X509_ALGOR *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509_ALGOR *sk_X509_ALGOR_new(sk_X509_ALGOR_compfunc compare) { return (struct stack_st_X509_ALGOR *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509_ALGOR *sk_X509_ALGOR_new_null(void) { return (struct stack_st_X509_ALGOR *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509_ALGOR *sk_X509_ALGOR_new_reserve(sk_X509_ALGOR_compfunc compare, int n) { return (struct stack_st_X509_ALGOR *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_ALGOR_reserve(struct stack_st_X509_ALGOR *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_ALGOR_free(struct stack_st_X509_ALGOR *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_ALGOR_zero(struct stack_st_X509_ALGOR *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_ALGOR *sk_X509_ALGOR_delete(struct stack_st_X509_ALGOR *sk, int i) { return (X509_ALGOR *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509_ALGOR *sk_X509_ALGOR_delete_ptr(struct stack_st_X509_ALGOR *sk, X509_ALGOR *ptr) { return (X509_ALGOR *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_ALGOR_push(struct stack_st_X509_ALGOR *sk, X509_ALGOR *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_ALGOR_unshift(struct stack_st_X509_ALGOR *sk, X509_ALGOR *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509_ALGOR *sk_X509_ALGOR_pop(struct stack_st_X509_ALGOR *sk) { return (X509_ALGOR *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_ALGOR *sk_X509_ALGOR_shift(struct stack_st_X509_ALGOR *sk) { return (X509_ALGOR *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_ALGOR_pop_free(struct stack_st_X509_ALGOR *sk, sk_X509_ALGOR_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_ALGOR_insert(struct stack_st_X509_ALGOR *sk, X509_ALGOR *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509_ALGOR *sk_X509_ALGOR_set(struct stack_st_X509_ALGOR *sk, int idx, X509_ALGOR *ptr) { return (X509_ALGOR *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_ALGOR_find(struct stack_st_X509_ALGOR *sk, X509_ALGOR *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_ALGOR_find_ex(struct stack_st_X509_ALGOR *sk, X509_ALGOR *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_ALGOR_sort(struct stack_st_X509_ALGOR *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_ALGOR_is_sorted(const struct stack_st_X509_ALGOR *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_ALGOR * sk_X509_ALGOR_dup(const struct stack_st_X509_ALGOR *sk) { return (struct stack_st_X509_ALGOR *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_ALGOR *sk_X509_ALGOR_deep_copy(const struct stack_st_X509_ALGOR *sk, sk_X509_ALGOR_copyfunc copyfunc, sk_X509_ALGOR_freefunc freefunc) { return (struct stack_st_X509_ALGOR *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_ALGOR_compfunc sk_X509_ALGOR_set_cmp_func(struct stack_st_X509_ALGOR *sk, sk_X509_ALGOR_compfunc compare) { return (sk_X509_ALGOR_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +enum { + ASN1_STRING_FLAG_BITS_LEFT = 0x08, + ASN1_STRING_FLAG_NDEF = 0x010, + ASN1_STRING_FLAG_CONT = 0x020, + ASN1_STRING_FLAG_MSTRING = 0x040, + ASN1_STRING_FLAG_EMBED = 0x080, + ASN1_STRING_FLAG_X509_TIME = 0x100, +}; +struct asn1_string_st { + int length; + int type; + unsigned char *data; + long flags; +}; +typedef struct ASN1_ENCODING_st { + unsigned char *enc; + long len; + int modified; +} ASN1_ENCODING; +enum { + ASN1_LONG_UNDEF = 0x7fffffffL, + STABLE_FLAGS_MALLOC = 0x01, + STABLE_FLAGS_CLEAR = STABLE_FLAGS_MALLOC, + STABLE_NO_MASK = 0x02, + DIRSTRING_TYPE = (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING), + PKCS9STRING_TYPE = (DIRSTRING_TYPE|B_ASN1_IA5STRING), +}; +typedef struct asn1_string_table_st { + int nid; + long minsize; + long maxsize; + unsigned long mask; + unsigned long flags; +} ASN1_STRING_TABLE; +struct stack_st_ASN1_STRING_TABLE; typedef int (*sk_ASN1_STRING_TABLE_compfunc)(const ASN1_STRING_TABLE * const *a, const ASN1_STRING_TABLE *const *b); typedef void (*sk_ASN1_STRING_TABLE_freefunc)(ASN1_STRING_TABLE *a); typedef ASN1_STRING_TABLE * (*sk_ASN1_STRING_TABLE_copyfunc)(const ASN1_STRING_TABLE *a); static __attribute__((unused)) inline int sk_ASN1_STRING_TABLE_num(const struct stack_st_ASN1_STRING_TABLE *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_STRING_TABLE *sk_ASN1_STRING_TABLE_value(const struct stack_st_ASN1_STRING_TABLE *sk, int idx) { return (ASN1_STRING_TABLE *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_ASN1_STRING_TABLE *sk_ASN1_STRING_TABLE_new(sk_ASN1_STRING_TABLE_compfunc compare) { return (struct stack_st_ASN1_STRING_TABLE *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_ASN1_STRING_TABLE *sk_ASN1_STRING_TABLE_new_null(void) { return (struct stack_st_ASN1_STRING_TABLE *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_ASN1_STRING_TABLE *sk_ASN1_STRING_TABLE_new_reserve(sk_ASN1_STRING_TABLE_compfunc compare, int n) { return (struct stack_st_ASN1_STRING_TABLE *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_ASN1_STRING_TABLE_reserve(struct stack_st_ASN1_STRING_TABLE *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_ASN1_STRING_TABLE_free(struct stack_st_ASN1_STRING_TABLE *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_ASN1_STRING_TABLE_zero(struct stack_st_ASN1_STRING_TABLE *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_STRING_TABLE *sk_ASN1_STRING_TABLE_delete(struct stack_st_ASN1_STRING_TABLE *sk, int i) { return (ASN1_STRING_TABLE *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline ASN1_STRING_TABLE *sk_ASN1_STRING_TABLE_delete_ptr(struct stack_st_ASN1_STRING_TABLE *sk, ASN1_STRING_TABLE *ptr) { return (ASN1_STRING_TABLE *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_STRING_TABLE_push(struct stack_st_ASN1_STRING_TABLE *sk, ASN1_STRING_TABLE *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_STRING_TABLE_unshift(struct stack_st_ASN1_STRING_TABLE *sk, ASN1_STRING_TABLE *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline ASN1_STRING_TABLE *sk_ASN1_STRING_TABLE_pop(struct stack_st_ASN1_STRING_TABLE *sk) { return (ASN1_STRING_TABLE *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_STRING_TABLE *sk_ASN1_STRING_TABLE_shift(struct stack_st_ASN1_STRING_TABLE *sk) { return (ASN1_STRING_TABLE *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_ASN1_STRING_TABLE_pop_free(struct stack_st_ASN1_STRING_TABLE *sk, sk_ASN1_STRING_TABLE_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_ASN1_STRING_TABLE_insert(struct stack_st_ASN1_STRING_TABLE *sk, ASN1_STRING_TABLE *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline ASN1_STRING_TABLE *sk_ASN1_STRING_TABLE_set(struct stack_st_ASN1_STRING_TABLE *sk, int idx, ASN1_STRING_TABLE *ptr) { return (ASN1_STRING_TABLE *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_STRING_TABLE_find(struct stack_st_ASN1_STRING_TABLE *sk, ASN1_STRING_TABLE *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_STRING_TABLE_find_ex(struct stack_st_ASN1_STRING_TABLE *sk, ASN1_STRING_TABLE *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_ASN1_STRING_TABLE_sort(struct stack_st_ASN1_STRING_TABLE *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_ASN1_STRING_TABLE_is_sorted(const struct stack_st_ASN1_STRING_TABLE *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_ASN1_STRING_TABLE * sk_ASN1_STRING_TABLE_dup(const struct stack_st_ASN1_STRING_TABLE *sk) { return (struct stack_st_ASN1_STRING_TABLE *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_ASN1_STRING_TABLE *sk_ASN1_STRING_TABLE_deep_copy(const struct stack_st_ASN1_STRING_TABLE *sk, sk_ASN1_STRING_TABLE_copyfunc copyfunc, sk_ASN1_STRING_TABLE_freefunc freefunc) { return (struct stack_st_ASN1_STRING_TABLE *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_ASN1_STRING_TABLE_compfunc sk_ASN1_STRING_TABLE_set_cmp_func(struct stack_st_ASN1_STRING_TABLE *sk, sk_ASN1_STRING_TABLE_compfunc compare) { return (sk_ASN1_STRING_TABLE_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +enum { + ub_name = 32768, + ub_common_name = 64, + ub_locality_name = 128, + ub_state_name = 128, + ub_organization_name = 64, + ub_organization_unit_name = 64, + ub_title = 64, + ub_email_address = 128, +}; +typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; +typedef struct ASN1_TLC_st ASN1_TLC; +typedef struct ASN1_VALUE_st ASN1_VALUE; +#define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type) +#define DECLARE_ASN1_ALLOC_FUNCTIONS(type) DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type) +#define DECLARE_ASN1_FUNCTIONS_name(type,name) DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) +#define DECLARE_ASN1_FUNCTIONS_fname(type,itname,name) DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) +#define DECLARE_ASN1_ENCODE_FUNCTIONS(type,itname,name) type *d2i_ ##name(type **a, const unsigned char **in, long len); int i2d_ ##name(type *a, unsigned char **out); DECLARE_ASN1_ITEM(itname) +#define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type,name) type *d2i_ ##name(type **a, const unsigned char **in, long len); int i2d_ ##name(const type *a, unsigned char **out); DECLARE_ASN1_ITEM(name) +#define DECLARE_ASN1_NDEF_FUNCTION(name) int i2d_ ##name ##_NDEF(name *a, unsigned char **out); +#define DECLARE_ASN1_FUNCTIONS_const(name) DECLARE_ASN1_ALLOC_FUNCTIONS(name) DECLARE_ASN1_ENCODE_FUNCTIONS_const(name, name) +#define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type,name) type *name ##_new(void); void name ##_free(type *a); +#define DECLARE_ASN1_PRINT_FUNCTION(stname) DECLARE_ASN1_PRINT_FUNCTION_fname(stname, stname) +#define DECLARE_ASN1_PRINT_FUNCTION_fname(stname,fname) int fname ##_print_ctx(BIO *out, stname *x, int indent, const ASN1_PCTX *pctx); +#define D2I_OF(type) type *(*)(type **,const unsigned char **,long) +#define I2D_OF(type) int (*)(type *,unsigned char **) +#define I2D_OF_const(type) int (*)(const type *,unsigned char **) +#define CHECKED_D2I_OF(type,d2i) ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) +#define CHECKED_I2D_OF(type,i2d) ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) +#define CHECKED_NEW_OF(type,xnew) ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) +#define CHECKED_PTR_OF(type,p) ((void*) (1 ? p : (type*)0)) +#define CHECKED_PPTR_OF(type,p) ((void**) (1 ? p : (type**)0)) +#define TYPEDEF_D2I_OF(type) typedef type *d2i_of_ ##type(type **,const unsigned char **,long) +#define TYPEDEF_I2D_OF(type) typedef int i2d_of_ ##type(type *,unsigned char **) +#define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) +typedef void *d2i_of_void(void **,const unsigned char **,long); typedef int i2d_of_void(void *,unsigned char **); +typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); +#define ASN1_ITEM_ptr(iptr) (iptr()) +#define ASN1_ITEM_ref(iptr) (iptr ##_it) +#define ASN1_ITEM_rptr(ref) (ref ##_it()) +#define DECLARE_ASN1_ITEM(name) const ASN1_ITEM * name ##_it(void); +enum { + ASN1_STRFLGS_ESC_2253 = 1, + ASN1_STRFLGS_ESC_CTRL = 2, + ASN1_STRFLGS_ESC_MSB = 4, + ASN1_STRFLGS_ESC_QUOTE = 8, + CHARTYPE_PRINTABLESTRING = 0x10, + CHARTYPE_FIRST_ESC_2253 = 0x20, + CHARTYPE_LAST_ESC_2253 = 0x40, + ASN1_STRFLGS_UTF8_CONVERT = 0x10, + ASN1_STRFLGS_IGNORE_TYPE = 0x20, + ASN1_STRFLGS_SHOW_TYPE = 0x40, + ASN1_STRFLGS_DUMP_ALL = 0x80, + ASN1_STRFLGS_DUMP_UNKNOWN = 0x100, + ASN1_STRFLGS_DUMP_DER = 0x200, + ASN1_STRFLGS_ESC_2254 = 0x400, + ASN1_STRFLGS_RFC2253 = (ASN1_STRFLGS_ESC_2253 | ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB | ASN1_STRFLGS_UTF8_CONVERT | ASN1_STRFLGS_DUMP_UNKNOWN | ASN1_STRFLGS_DUMP_DER), +}; +struct stack_st_ASN1_INTEGER; typedef int (*sk_ASN1_INTEGER_compfunc)(const ASN1_INTEGER * const *a, const ASN1_INTEGER *const *b); typedef void (*sk_ASN1_INTEGER_freefunc)(ASN1_INTEGER *a); typedef ASN1_INTEGER * (*sk_ASN1_INTEGER_copyfunc)(const ASN1_INTEGER *a); static __attribute__((unused)) inline int sk_ASN1_INTEGER_num(const struct stack_st_ASN1_INTEGER *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_INTEGER *sk_ASN1_INTEGER_value(const struct stack_st_ASN1_INTEGER *sk, int idx) { return (ASN1_INTEGER *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_ASN1_INTEGER *sk_ASN1_INTEGER_new(sk_ASN1_INTEGER_compfunc compare) { return (struct stack_st_ASN1_INTEGER *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_ASN1_INTEGER *sk_ASN1_INTEGER_new_null(void) { return (struct stack_st_ASN1_INTEGER *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_ASN1_INTEGER *sk_ASN1_INTEGER_new_reserve(sk_ASN1_INTEGER_compfunc compare, int n) { return (struct stack_st_ASN1_INTEGER *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_ASN1_INTEGER_reserve(struct stack_st_ASN1_INTEGER *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_ASN1_INTEGER_free(struct stack_st_ASN1_INTEGER *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_ASN1_INTEGER_zero(struct stack_st_ASN1_INTEGER *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_INTEGER *sk_ASN1_INTEGER_delete(struct stack_st_ASN1_INTEGER *sk, int i) { return (ASN1_INTEGER *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline ASN1_INTEGER *sk_ASN1_INTEGER_delete_ptr(struct stack_st_ASN1_INTEGER *sk, ASN1_INTEGER *ptr) { return (ASN1_INTEGER *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_INTEGER_push(struct stack_st_ASN1_INTEGER *sk, ASN1_INTEGER *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_INTEGER_unshift(struct stack_st_ASN1_INTEGER *sk, ASN1_INTEGER *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline ASN1_INTEGER *sk_ASN1_INTEGER_pop(struct stack_st_ASN1_INTEGER *sk) { return (ASN1_INTEGER *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_INTEGER *sk_ASN1_INTEGER_shift(struct stack_st_ASN1_INTEGER *sk) { return (ASN1_INTEGER *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_ASN1_INTEGER_pop_free(struct stack_st_ASN1_INTEGER *sk, sk_ASN1_INTEGER_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_ASN1_INTEGER_insert(struct stack_st_ASN1_INTEGER *sk, ASN1_INTEGER *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline ASN1_INTEGER *sk_ASN1_INTEGER_set(struct stack_st_ASN1_INTEGER *sk, int idx, ASN1_INTEGER *ptr) { return (ASN1_INTEGER *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_INTEGER_find(struct stack_st_ASN1_INTEGER *sk, ASN1_INTEGER *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_INTEGER_find_ex(struct stack_st_ASN1_INTEGER *sk, ASN1_INTEGER *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_ASN1_INTEGER_sort(struct stack_st_ASN1_INTEGER *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_ASN1_INTEGER_is_sorted(const struct stack_st_ASN1_INTEGER *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_ASN1_INTEGER * sk_ASN1_INTEGER_dup(const struct stack_st_ASN1_INTEGER *sk) { return (struct stack_st_ASN1_INTEGER *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_ASN1_INTEGER *sk_ASN1_INTEGER_deep_copy(const struct stack_st_ASN1_INTEGER *sk, sk_ASN1_INTEGER_copyfunc copyfunc, sk_ASN1_INTEGER_freefunc freefunc) { return (struct stack_st_ASN1_INTEGER *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_ASN1_INTEGER_compfunc sk_ASN1_INTEGER_set_cmp_func(struct stack_st_ASN1_INTEGER *sk, sk_ASN1_INTEGER_compfunc compare) { return (sk_ASN1_INTEGER_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +struct stack_st_ASN1_GENERALSTRING; typedef int (*sk_ASN1_GENERALSTRING_compfunc)(const ASN1_GENERALSTRING * const *a, const ASN1_GENERALSTRING *const *b); typedef void (*sk_ASN1_GENERALSTRING_freefunc)(ASN1_GENERALSTRING *a); typedef ASN1_GENERALSTRING * (*sk_ASN1_GENERALSTRING_copyfunc)(const ASN1_GENERALSTRING *a); static __attribute__((unused)) inline int sk_ASN1_GENERALSTRING_num(const struct stack_st_ASN1_GENERALSTRING *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_GENERALSTRING *sk_ASN1_GENERALSTRING_value(const struct stack_st_ASN1_GENERALSTRING *sk, int idx) { return (ASN1_GENERALSTRING *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_ASN1_GENERALSTRING *sk_ASN1_GENERALSTRING_new(sk_ASN1_GENERALSTRING_compfunc compare) { return (struct stack_st_ASN1_GENERALSTRING *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_ASN1_GENERALSTRING *sk_ASN1_GENERALSTRING_new_null(void) { return (struct stack_st_ASN1_GENERALSTRING *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_ASN1_GENERALSTRING *sk_ASN1_GENERALSTRING_new_reserve(sk_ASN1_GENERALSTRING_compfunc compare, int n) { return (struct stack_st_ASN1_GENERALSTRING *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_ASN1_GENERALSTRING_reserve(struct stack_st_ASN1_GENERALSTRING *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_ASN1_GENERALSTRING_free(struct stack_st_ASN1_GENERALSTRING *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_ASN1_GENERALSTRING_zero(struct stack_st_ASN1_GENERALSTRING *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_GENERALSTRING *sk_ASN1_GENERALSTRING_delete(struct stack_st_ASN1_GENERALSTRING *sk, int i) { return (ASN1_GENERALSTRING *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline ASN1_GENERALSTRING *sk_ASN1_GENERALSTRING_delete_ptr(struct stack_st_ASN1_GENERALSTRING *sk, ASN1_GENERALSTRING *ptr) { return (ASN1_GENERALSTRING *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_GENERALSTRING_push(struct stack_st_ASN1_GENERALSTRING *sk, ASN1_GENERALSTRING *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_GENERALSTRING_unshift(struct stack_st_ASN1_GENERALSTRING *sk, ASN1_GENERALSTRING *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline ASN1_GENERALSTRING *sk_ASN1_GENERALSTRING_pop(struct stack_st_ASN1_GENERALSTRING *sk) { return (ASN1_GENERALSTRING *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_GENERALSTRING *sk_ASN1_GENERALSTRING_shift(struct stack_st_ASN1_GENERALSTRING *sk) { return (ASN1_GENERALSTRING *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_ASN1_GENERALSTRING_pop_free(struct stack_st_ASN1_GENERALSTRING *sk, sk_ASN1_GENERALSTRING_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_ASN1_GENERALSTRING_insert(struct stack_st_ASN1_GENERALSTRING *sk, ASN1_GENERALSTRING *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline ASN1_GENERALSTRING *sk_ASN1_GENERALSTRING_set(struct stack_st_ASN1_GENERALSTRING *sk, int idx, ASN1_GENERALSTRING *ptr) { return (ASN1_GENERALSTRING *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_GENERALSTRING_find(struct stack_st_ASN1_GENERALSTRING *sk, ASN1_GENERALSTRING *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_GENERALSTRING_find_ex(struct stack_st_ASN1_GENERALSTRING *sk, ASN1_GENERALSTRING *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_ASN1_GENERALSTRING_sort(struct stack_st_ASN1_GENERALSTRING *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_ASN1_GENERALSTRING_is_sorted(const struct stack_st_ASN1_GENERALSTRING *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_ASN1_GENERALSTRING * sk_ASN1_GENERALSTRING_dup(const struct stack_st_ASN1_GENERALSTRING *sk) { return (struct stack_st_ASN1_GENERALSTRING *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_ASN1_GENERALSTRING *sk_ASN1_GENERALSTRING_deep_copy(const struct stack_st_ASN1_GENERALSTRING *sk, sk_ASN1_GENERALSTRING_copyfunc copyfunc, sk_ASN1_GENERALSTRING_freefunc freefunc) { return (struct stack_st_ASN1_GENERALSTRING *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_ASN1_GENERALSTRING_compfunc sk_ASN1_GENERALSTRING_set_cmp_func(struct stack_st_ASN1_GENERALSTRING *sk, sk_ASN1_GENERALSTRING_compfunc compare) { return (sk_ASN1_GENERALSTRING_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +struct stack_st_ASN1_UTF8STRING; typedef int (*sk_ASN1_UTF8STRING_compfunc)(const ASN1_UTF8STRING * const *a, const ASN1_UTF8STRING *const *b); typedef void (*sk_ASN1_UTF8STRING_freefunc)(ASN1_UTF8STRING *a); typedef ASN1_UTF8STRING * (*sk_ASN1_UTF8STRING_copyfunc)(const ASN1_UTF8STRING *a); static __attribute__((unused)) inline int sk_ASN1_UTF8STRING_num(const struct stack_st_ASN1_UTF8STRING *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_UTF8STRING *sk_ASN1_UTF8STRING_value(const struct stack_st_ASN1_UTF8STRING *sk, int idx) { return (ASN1_UTF8STRING *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_ASN1_UTF8STRING *sk_ASN1_UTF8STRING_new(sk_ASN1_UTF8STRING_compfunc compare) { return (struct stack_st_ASN1_UTF8STRING *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_ASN1_UTF8STRING *sk_ASN1_UTF8STRING_new_null(void) { return (struct stack_st_ASN1_UTF8STRING *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_ASN1_UTF8STRING *sk_ASN1_UTF8STRING_new_reserve(sk_ASN1_UTF8STRING_compfunc compare, int n) { return (struct stack_st_ASN1_UTF8STRING *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_ASN1_UTF8STRING_reserve(struct stack_st_ASN1_UTF8STRING *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_ASN1_UTF8STRING_free(struct stack_st_ASN1_UTF8STRING *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_ASN1_UTF8STRING_zero(struct stack_st_ASN1_UTF8STRING *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_UTF8STRING *sk_ASN1_UTF8STRING_delete(struct stack_st_ASN1_UTF8STRING *sk, int i) { return (ASN1_UTF8STRING *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline ASN1_UTF8STRING *sk_ASN1_UTF8STRING_delete_ptr(struct stack_st_ASN1_UTF8STRING *sk, ASN1_UTF8STRING *ptr) { return (ASN1_UTF8STRING *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_UTF8STRING_push(struct stack_st_ASN1_UTF8STRING *sk, ASN1_UTF8STRING *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_UTF8STRING_unshift(struct stack_st_ASN1_UTF8STRING *sk, ASN1_UTF8STRING *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline ASN1_UTF8STRING *sk_ASN1_UTF8STRING_pop(struct stack_st_ASN1_UTF8STRING *sk) { return (ASN1_UTF8STRING *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_UTF8STRING *sk_ASN1_UTF8STRING_shift(struct stack_st_ASN1_UTF8STRING *sk) { return (ASN1_UTF8STRING *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_ASN1_UTF8STRING_pop_free(struct stack_st_ASN1_UTF8STRING *sk, sk_ASN1_UTF8STRING_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_ASN1_UTF8STRING_insert(struct stack_st_ASN1_UTF8STRING *sk, ASN1_UTF8STRING *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline ASN1_UTF8STRING *sk_ASN1_UTF8STRING_set(struct stack_st_ASN1_UTF8STRING *sk, int idx, ASN1_UTF8STRING *ptr) { return (ASN1_UTF8STRING *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_UTF8STRING_find(struct stack_st_ASN1_UTF8STRING *sk, ASN1_UTF8STRING *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_UTF8STRING_find_ex(struct stack_st_ASN1_UTF8STRING *sk, ASN1_UTF8STRING *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_ASN1_UTF8STRING_sort(struct stack_st_ASN1_UTF8STRING *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_ASN1_UTF8STRING_is_sorted(const struct stack_st_ASN1_UTF8STRING *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_ASN1_UTF8STRING * sk_ASN1_UTF8STRING_dup(const struct stack_st_ASN1_UTF8STRING *sk) { return (struct stack_st_ASN1_UTF8STRING *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_ASN1_UTF8STRING *sk_ASN1_UTF8STRING_deep_copy(const struct stack_st_ASN1_UTF8STRING *sk, sk_ASN1_UTF8STRING_copyfunc copyfunc, sk_ASN1_UTF8STRING_freefunc freefunc) { return (struct stack_st_ASN1_UTF8STRING *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_ASN1_UTF8STRING_compfunc sk_ASN1_UTF8STRING_set_cmp_func(struct stack_st_ASN1_UTF8STRING *sk, sk_ASN1_UTF8STRING_compfunc compare) { return (sk_ASN1_UTF8STRING_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +typedef struct asn1_type_st { + int type; + union { + char *ptr; + ASN1_BOOLEAN boolean; + ASN1_STRING *asn1_string; + ASN1_OBJECT *object; + ASN1_INTEGER *integer; + ASN1_ENUMERATED *enumerated; + ASN1_BIT_STRING *bit_string; + ASN1_OCTET_STRING *octet_string; + ASN1_PRINTABLESTRING *printablestring; + ASN1_T61STRING *t61string; + ASN1_IA5STRING *ia5string; + ASN1_GENERALSTRING *generalstring; + ASN1_BMPSTRING *bmpstring; + ASN1_UNIVERSALSTRING *universalstring; + ASN1_UTCTIME *utctime; + ASN1_GENERALIZEDTIME *generalizedtime; + ASN1_VISIBLESTRING *visiblestring; + ASN1_UTF8STRING *utf8string; + ASN1_STRING *set; + ASN1_STRING *sequence; + ASN1_VALUE *asn1_value; + } value; +} ASN1_TYPE; +struct stack_st_ASN1_TYPE; typedef int (*sk_ASN1_TYPE_compfunc)(const ASN1_TYPE * const *a, const ASN1_TYPE *const *b); typedef void (*sk_ASN1_TYPE_freefunc)(ASN1_TYPE *a); typedef ASN1_TYPE * (*sk_ASN1_TYPE_copyfunc)(const ASN1_TYPE *a); static __attribute__((unused)) inline int sk_ASN1_TYPE_num(const struct stack_st_ASN1_TYPE *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_TYPE *sk_ASN1_TYPE_value(const struct stack_st_ASN1_TYPE *sk, int idx) { return (ASN1_TYPE *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_ASN1_TYPE *sk_ASN1_TYPE_new(sk_ASN1_TYPE_compfunc compare) { return (struct stack_st_ASN1_TYPE *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_ASN1_TYPE *sk_ASN1_TYPE_new_null(void) { return (struct stack_st_ASN1_TYPE *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_ASN1_TYPE *sk_ASN1_TYPE_new_reserve(sk_ASN1_TYPE_compfunc compare, int n) { return (struct stack_st_ASN1_TYPE *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_ASN1_TYPE_reserve(struct stack_st_ASN1_TYPE *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_ASN1_TYPE_free(struct stack_st_ASN1_TYPE *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_ASN1_TYPE_zero(struct stack_st_ASN1_TYPE *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_TYPE *sk_ASN1_TYPE_delete(struct stack_st_ASN1_TYPE *sk, int i) { return (ASN1_TYPE *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline ASN1_TYPE *sk_ASN1_TYPE_delete_ptr(struct stack_st_ASN1_TYPE *sk, ASN1_TYPE *ptr) { return (ASN1_TYPE *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_TYPE_push(struct stack_st_ASN1_TYPE *sk, ASN1_TYPE *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_TYPE_unshift(struct stack_st_ASN1_TYPE *sk, ASN1_TYPE *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline ASN1_TYPE *sk_ASN1_TYPE_pop(struct stack_st_ASN1_TYPE *sk) { return (ASN1_TYPE *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_TYPE *sk_ASN1_TYPE_shift(struct stack_st_ASN1_TYPE *sk) { return (ASN1_TYPE *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_ASN1_TYPE_pop_free(struct stack_st_ASN1_TYPE *sk, sk_ASN1_TYPE_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_ASN1_TYPE_insert(struct stack_st_ASN1_TYPE *sk, ASN1_TYPE *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline ASN1_TYPE *sk_ASN1_TYPE_set(struct stack_st_ASN1_TYPE *sk, int idx, ASN1_TYPE *ptr) { return (ASN1_TYPE *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_TYPE_find(struct stack_st_ASN1_TYPE *sk, ASN1_TYPE *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_TYPE_find_ex(struct stack_st_ASN1_TYPE *sk, ASN1_TYPE *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_ASN1_TYPE_sort(struct stack_st_ASN1_TYPE *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_ASN1_TYPE_is_sorted(const struct stack_st_ASN1_TYPE *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_ASN1_TYPE * sk_ASN1_TYPE_dup(const struct stack_st_ASN1_TYPE *sk) { return (struct stack_st_ASN1_TYPE *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_ASN1_TYPE *sk_ASN1_TYPE_deep_copy(const struct stack_st_ASN1_TYPE *sk, sk_ASN1_TYPE_copyfunc copyfunc, sk_ASN1_TYPE_freefunc freefunc) { return (struct stack_st_ASN1_TYPE *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_ASN1_TYPE_compfunc sk_ASN1_TYPE_set_cmp_func(struct stack_st_ASN1_TYPE *sk, sk_ASN1_TYPE_compfunc compare) { return (sk_ASN1_TYPE_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +typedef struct stack_st_ASN1_TYPE ASN1_SEQUENCE_ANY; +ASN1_SEQUENCE_ANY *d2i_ASN1_SEQUENCE_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len); int i2d_ASN1_SEQUENCE_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out); const ASN1_ITEM * ASN1_SEQUENCE_ANY_it(void); +ASN1_SEQUENCE_ANY *d2i_ASN1_SET_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len); int i2d_ASN1_SET_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out); const ASN1_ITEM * ASN1_SET_ANY_it(void); +typedef struct BIT_STRING_BITNAME_st { + int bitnum; + const char *lname; + const char *sname; +} BIT_STRING_BITNAME; +enum { + B_ASN1_TIME = B_ASN1_UTCTIME | B_ASN1_GENERALIZEDTIME, + B_ASN1_PRINTABLE = B_ASN1_NUMERICSTRING| B_ASN1_PRINTABLESTRING| B_ASN1_T61STRING| B_ASN1_IA5STRING| B_ASN1_BIT_STRING| B_ASN1_UNIVERSALSTRING| B_ASN1_BMPSTRING| B_ASN1_UTF8STRING| B_ASN1_SEQUENCE| B_ASN1_UNKNOWN, + B_ASN1_DIRECTORYSTRING = B_ASN1_PRINTABLESTRING| B_ASN1_TELETEXSTRING| B_ASN1_BMPSTRING| B_ASN1_UNIVERSALSTRING| B_ASN1_UTF8STRING, + B_ASN1_DISPLAYTEXT = B_ASN1_IA5STRING| B_ASN1_VISIBLESTRING| B_ASN1_BMPSTRING| B_ASN1_UTF8STRING, +}; +ASN1_TYPE *ASN1_TYPE_new(void); void ASN1_TYPE_free(ASN1_TYPE *a); ASN1_TYPE *d2i_ASN1_TYPE(ASN1_TYPE **a, const unsigned char **in, long len); int i2d_ASN1_TYPE(ASN1_TYPE *a, unsigned char **out); const ASN1_ITEM * ASN1_ANY_it(void); +int ASN1_TYPE_get(const ASN1_TYPE *a); +void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); +int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); +int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); +ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t); +void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t); +ASN1_OBJECT *ASN1_OBJECT_new(void); +void ASN1_OBJECT_free(ASN1_OBJECT *a); +int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp); +ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, + long length); +const ASN1_ITEM * ASN1_OBJECT_it(void); +struct stack_st_ASN1_OBJECT; typedef int (*sk_ASN1_OBJECT_compfunc)(const ASN1_OBJECT * const *a, const ASN1_OBJECT *const *b); typedef void (*sk_ASN1_OBJECT_freefunc)(ASN1_OBJECT *a); typedef ASN1_OBJECT * (*sk_ASN1_OBJECT_copyfunc)(const ASN1_OBJECT *a); static __attribute__((unused)) inline int sk_ASN1_OBJECT_num(const struct stack_st_ASN1_OBJECT *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_OBJECT *sk_ASN1_OBJECT_value(const struct stack_st_ASN1_OBJECT *sk, int idx) { return (ASN1_OBJECT *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_ASN1_OBJECT *sk_ASN1_OBJECT_new(sk_ASN1_OBJECT_compfunc compare) { return (struct stack_st_ASN1_OBJECT *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_ASN1_OBJECT *sk_ASN1_OBJECT_new_null(void) { return (struct stack_st_ASN1_OBJECT *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_ASN1_OBJECT *sk_ASN1_OBJECT_new_reserve(sk_ASN1_OBJECT_compfunc compare, int n) { return (struct stack_st_ASN1_OBJECT *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_ASN1_OBJECT_reserve(struct stack_st_ASN1_OBJECT *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_ASN1_OBJECT_free(struct stack_st_ASN1_OBJECT *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_ASN1_OBJECT_zero(struct stack_st_ASN1_OBJECT *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_OBJECT *sk_ASN1_OBJECT_delete(struct stack_st_ASN1_OBJECT *sk, int i) { return (ASN1_OBJECT *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline ASN1_OBJECT *sk_ASN1_OBJECT_delete_ptr(struct stack_st_ASN1_OBJECT *sk, ASN1_OBJECT *ptr) { return (ASN1_OBJECT *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_OBJECT_push(struct stack_st_ASN1_OBJECT *sk, ASN1_OBJECT *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_OBJECT_unshift(struct stack_st_ASN1_OBJECT *sk, ASN1_OBJECT *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline ASN1_OBJECT *sk_ASN1_OBJECT_pop(struct stack_st_ASN1_OBJECT *sk) { return (ASN1_OBJECT *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline ASN1_OBJECT *sk_ASN1_OBJECT_shift(struct stack_st_ASN1_OBJECT *sk) { return (ASN1_OBJECT *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_ASN1_OBJECT_pop_free(struct stack_st_ASN1_OBJECT *sk, sk_ASN1_OBJECT_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_ASN1_OBJECT_insert(struct stack_st_ASN1_OBJECT *sk, ASN1_OBJECT *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline ASN1_OBJECT *sk_ASN1_OBJECT_set(struct stack_st_ASN1_OBJECT *sk, int idx, ASN1_OBJECT *ptr) { return (ASN1_OBJECT *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_OBJECT_find(struct stack_st_ASN1_OBJECT *sk, ASN1_OBJECT *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_ASN1_OBJECT_find_ex(struct stack_st_ASN1_OBJECT *sk, ASN1_OBJECT *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_ASN1_OBJECT_sort(struct stack_st_ASN1_OBJECT *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_ASN1_OBJECT_is_sorted(const struct stack_st_ASN1_OBJECT *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_ASN1_OBJECT * sk_ASN1_OBJECT_dup(const struct stack_st_ASN1_OBJECT *sk) { return (struct stack_st_ASN1_OBJECT *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_ASN1_OBJECT *sk_ASN1_OBJECT_deep_copy(const struct stack_st_ASN1_OBJECT *sk, sk_ASN1_OBJECT_copyfunc copyfunc, sk_ASN1_OBJECT_freefunc freefunc) { return (struct stack_st_ASN1_OBJECT *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_ASN1_OBJECT_compfunc sk_ASN1_OBJECT_set_cmp_func(struct stack_st_ASN1_OBJECT *sk, sk_ASN1_OBJECT_compfunc compare) { return (sk_ASN1_OBJECT_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +ASN1_STRING *ASN1_STRING_new(void); +void ASN1_STRING_free(ASN1_STRING *a); +void ASN1_STRING_clear_free(ASN1_STRING *a); +int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); +ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a); +ASN1_STRING *ASN1_STRING_type_new(int type); +int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); +int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); +void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); +int ASN1_STRING_length(const ASN1_STRING *x); +void ASN1_STRING_length_set(ASN1_STRING *x, int n); +int ASN1_STRING_type(const ASN1_STRING *x); +unsigned char *ASN1_STRING_data(ASN1_STRING *x) __attribute__ ((deprecated)); +const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x); +ASN1_BIT_STRING *ASN1_BIT_STRING_new(void); void ASN1_BIT_STRING_free(ASN1_BIT_STRING *a); ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len); int i2d_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **out); const ASN1_ITEM * ASN1_BIT_STRING_it(void); +int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); +int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); +int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n); +int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, + const unsigned char *flags, int flags_len); +int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, + BIT_STRING_BITNAME *tbl, int indent); +int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl); +int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, + BIT_STRING_BITNAME *tbl); +ASN1_INTEGER *ASN1_INTEGER_new(void); void ASN1_INTEGER_free(ASN1_INTEGER *a); ASN1_INTEGER *d2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **in, long len); int i2d_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **out); const ASN1_ITEM * ASN1_INTEGER_it(void); +ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, + long length); +ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x); +int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); +ASN1_ENUMERATED *ASN1_ENUMERATED_new(void); void ASN1_ENUMERATED_free(ASN1_ENUMERATED *a); ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, const unsigned char **in, long len); int i2d_ASN1_ENUMERATED(ASN1_ENUMERATED *a, unsigned char **out); const ASN1_ITEM * ASN1_ENUMERATED_it(void); +int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); +ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); +ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, + int offset_day, long offset_sec); +int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); +int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); +int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); +ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, + time_t t); +ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, + time_t t, int offset_day, + long offset_sec); +int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); +int ASN1_TIME_diff(int *pday, int *psec, + const ASN1_TIME *from, const ASN1_TIME *to); +ASN1_OCTET_STRING *ASN1_OCTET_STRING_new(void); void ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *a); ASN1_OCTET_STRING *d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a, const unsigned char **in, long len); int i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a, unsigned char **out); const ASN1_ITEM * ASN1_OCTET_STRING_it(void); +ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); +int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, + const ASN1_OCTET_STRING *b); +int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, + int len); +ASN1_VISIBLESTRING *ASN1_VISIBLESTRING_new(void); void ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a); ASN1_VISIBLESTRING *d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, long len); int i2d_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING *a, unsigned char **out); const ASN1_ITEM * ASN1_VISIBLESTRING_it(void); +ASN1_UNIVERSALSTRING *ASN1_UNIVERSALSTRING_new(void); void ASN1_UNIVERSALSTRING_free(ASN1_UNIVERSALSTRING *a); ASN1_UNIVERSALSTRING *d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, long len); int i2d_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING *a, unsigned char **out); const ASN1_ITEM * ASN1_UNIVERSALSTRING_it(void); +ASN1_UTF8STRING *ASN1_UTF8STRING_new(void); void ASN1_UTF8STRING_free(ASN1_UTF8STRING *a); ASN1_UTF8STRING *d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len); int i2d_ASN1_UTF8STRING(ASN1_UTF8STRING *a, unsigned char **out); const ASN1_ITEM * ASN1_UTF8STRING_it(void); +ASN1_NULL *ASN1_NULL_new(void); void ASN1_NULL_free(ASN1_NULL *a); ASN1_NULL *d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len); int i2d_ASN1_NULL(ASN1_NULL *a, unsigned char **out); const ASN1_ITEM * ASN1_NULL_it(void); +ASN1_BMPSTRING *ASN1_BMPSTRING_new(void); void ASN1_BMPSTRING_free(ASN1_BMPSTRING *a); ASN1_BMPSTRING *d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len); int i2d_ASN1_BMPSTRING(ASN1_BMPSTRING *a, unsigned char **out); const ASN1_ITEM * ASN1_BMPSTRING_it(void); +int UTF8_getc(const unsigned char *str, int len, unsigned long *val); +int UTF8_putc(unsigned char *str, int len, unsigned long value); +ASN1_STRING *ASN1_PRINTABLE_new(void); void ASN1_PRINTABLE_free(ASN1_STRING *a); ASN1_STRING *d2i_ASN1_PRINTABLE(ASN1_STRING **a, const unsigned char **in, long len); int i2d_ASN1_PRINTABLE(ASN1_STRING *a, unsigned char **out); const ASN1_ITEM * ASN1_PRINTABLE_it(void); +ASN1_STRING *DIRECTORYSTRING_new(void); void DIRECTORYSTRING_free(ASN1_STRING *a); ASN1_STRING *d2i_DIRECTORYSTRING(ASN1_STRING **a, const unsigned char **in, long len); int i2d_DIRECTORYSTRING(ASN1_STRING *a, unsigned char **out); const ASN1_ITEM * DIRECTORYSTRING_it(void); +ASN1_STRING *DISPLAYTEXT_new(void); void DISPLAYTEXT_free(ASN1_STRING *a); ASN1_STRING *d2i_DISPLAYTEXT(ASN1_STRING **a, const unsigned char **in, long len); int i2d_DISPLAYTEXT(ASN1_STRING *a, unsigned char **out); const ASN1_ITEM * DISPLAYTEXT_it(void); +ASN1_PRINTABLESTRING *ASN1_PRINTABLESTRING_new(void); void ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a); ASN1_PRINTABLESTRING *d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, long len); int i2d_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING *a, unsigned char **out); const ASN1_ITEM * ASN1_PRINTABLESTRING_it(void); +ASN1_T61STRING *ASN1_T61STRING_new(void); void ASN1_T61STRING_free(ASN1_T61STRING *a); ASN1_T61STRING *d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len); int i2d_ASN1_T61STRING(ASN1_T61STRING *a, unsigned char **out); const ASN1_ITEM * ASN1_T61STRING_it(void); +ASN1_IA5STRING *ASN1_IA5STRING_new(void); void ASN1_IA5STRING_free(ASN1_IA5STRING *a); ASN1_IA5STRING *d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len); int i2d_ASN1_IA5STRING(ASN1_IA5STRING *a, unsigned char **out); const ASN1_ITEM * ASN1_IA5STRING_it(void); +ASN1_GENERALSTRING *ASN1_GENERALSTRING_new(void); void ASN1_GENERALSTRING_free(ASN1_GENERALSTRING *a); ASN1_GENERALSTRING *d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, long len); int i2d_ASN1_GENERALSTRING(ASN1_GENERALSTRING *a, unsigned char **out); const ASN1_ITEM * ASN1_GENERALSTRING_it(void); +ASN1_UTCTIME *ASN1_UTCTIME_new(void); void ASN1_UTCTIME_free(ASN1_UTCTIME *a); ASN1_UTCTIME *d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len); int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **out); const ASN1_ITEM * ASN1_UTCTIME_it(void); +ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_new(void); void ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a); ASN1_GENERALIZEDTIME *d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, long len); int i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **out); const ASN1_ITEM * ASN1_GENERALIZEDTIME_it(void); +ASN1_TIME *ASN1_TIME_new(void); void ASN1_TIME_free(ASN1_TIME *a); ASN1_TIME *d2i_ASN1_TIME(ASN1_TIME **a, const unsigned char **in, long len); int i2d_ASN1_TIME(ASN1_TIME *a, unsigned char **out); const ASN1_ITEM * ASN1_TIME_it(void); +const ASN1_ITEM * ASN1_OCTET_STRING_NDEF_it(void); +ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); +ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, + int offset_day, long offset_sec); +int ASN1_TIME_check(const ASN1_TIME *t); +ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, + ASN1_GENERALIZEDTIME **out); +int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); +int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str); +int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm); +int ASN1_TIME_normalize(ASN1_TIME *s); +int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t); +int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b); +int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a); +int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); +int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a); +int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); +int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a); +int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); +int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type); +int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a); +int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); +ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, + const char *sn, const char *ln); +int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a); +int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r); +int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a); +int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r); +int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); +long ASN1_INTEGER_get(const ASN1_INTEGER *a); +ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); +BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); +int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a); +int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r); +int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); +long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a); +ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai); +BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn); +int ASN1_PRINTABLE_type(const unsigned char *s, int max); +unsigned long ASN1_tag2bit(int tag); +int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, + int *pclass, long omax); +int ASN1_check_infinite_end(unsigned char **p, long len); +int ASN1_const_check_infinite_end(const unsigned char **p, long len); +void ASN1_put_object(unsigned char **pp, int constructed, int length, + int tag, int xclass); +int ASN1_put_eoc(unsigned char **pp); +int ASN1_object_size(int constructed, int length, int tag); +void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x); +#define ASN1_dup_of(type,i2d,d2i,x) ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), CHECKED_D2I_OF(type, d2i), CHECKED_PTR_OF(type, x))) +#define ASN1_dup_of_const(type,i2d,d2i,x) ((type*)ASN1_dup(CHECKED_I2D_OF(const type, i2d), CHECKED_D2I_OF(type, d2i), CHECKED_PTR_OF(const type, x))) +void *ASN1_item_dup(const ASN1_ITEM *it, void *x); +#define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type)) +#define M_ASN1_free_of(x,type) ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) +void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); +#define ASN1_d2i_fp_of(type,xnew,d2i,in,x) ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), CHECKED_D2I_OF(type, d2i), in, CHECKED_PPTR_OF(type, x))) +void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); +int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x); +#define ASN1_i2d_fp_of(type,i2d,out,x) (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), out, CHECKED_PTR_OF(type, x))) +#define ASN1_i2d_fp_of_const(type,i2d,out,x) (ASN1_i2d_fp(CHECKED_I2D_OF(const type, i2d), out, CHECKED_PTR_OF(const type, x))) +int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); +int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags); +int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in); +void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); +#define ASN1_d2i_bio_of(type,xnew,d2i,in,x) ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), CHECKED_D2I_OF(type, d2i), in, CHECKED_PPTR_OF(type, x))) +void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); +int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x); +#define ASN1_i2d_bio_of(type,i2d,out,x) (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), out, CHECKED_PTR_OF(type, x))) +#define ASN1_i2d_bio_of_const(type,i2d,out,x) (ASN1_i2d_bio(CHECKED_I2D_OF(const type, i2d), out, CHECKED_PTR_OF(const type, x))) +int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); +int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); +int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); +int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a); +int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); +int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags); +int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off); +int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, + unsigned char *buf, int off); +int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); +int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, + int dump); +const char *ASN1_tag2str(int tag); +int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); +int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); +int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len); +int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, + unsigned char *data, int len); +int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, + unsigned char *data, int max_len); +void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); +ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, + ASN1_OCTET_STRING **oct); +void ASN1_STRING_set_default_mask(unsigned long mask); +int ASN1_STRING_set_default_mask_asc(const char *p); +unsigned long ASN1_STRING_get_default_mask(void); +int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, + int inform, unsigned long mask); +int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, + int inform, unsigned long mask, + long minsize, long maxsize); +ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, + const unsigned char *in, int inlen, + int inform, int nid); +ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); +int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); +void ASN1_STRING_TABLE_cleanup(void); +ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); +void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); +ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, + long len, const ASN1_ITEM *it); +int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); +int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, + const ASN1_ITEM *it); +void ASN1_add_oid_module(void); +void ASN1_add_stable_module(void); +ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf); +ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf); +int ASN1_str2mask(const char *str, unsigned long *pmask); +enum { + ASN1_PCTX_FLAGS_SHOW_ABSENT = 0x001, + ASN1_PCTX_FLAGS_SHOW_SEQUENCE = 0x002, + ASN1_PCTX_FLAGS_SHOW_SSOF = 0x004, + ASN1_PCTX_FLAGS_SHOW_TYPE = 0x008, + ASN1_PCTX_FLAGS_NO_ANY_TYPE = 0x010, + ASN1_PCTX_FLAGS_NO_MSTRING_TYPE = 0x020, + ASN1_PCTX_FLAGS_NO_FIELD_NAME = 0x040, + ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME = 0x080, + ASN1_PCTX_FLAGS_NO_STRUCT_NAME = 0x100, +}; +int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, + const ASN1_ITEM *it, const ASN1_PCTX *pctx); +ASN1_PCTX *ASN1_PCTX_new(void); +void ASN1_PCTX_free(ASN1_PCTX *p); +unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); +unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p); +void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); +ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx)); +void ASN1_SCTX_free(ASN1_SCTX *p); +const ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p); +const ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p); +unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p); +void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data); +void *ASN1_SCTX_get_app_data(ASN1_SCTX *p); +const BIO_METHOD *BIO_f_asn1(void); +BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); +int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, + const ASN1_ITEM *it); +int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, + const char *hdr, const ASN1_ITEM *it); +int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, + int ctype_nid, int econt_nid, + struct stack_st_X509_ALGOR *mdalgs, const ASN1_ITEM *it); +ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); +int SMIME_crlf_copy(BIO *in, BIO *out, int flags); +int SMIME_text(BIO *in, BIO *out); +const ASN1_ITEM *ASN1_ITEM_lookup(const char *name); +const ASN1_ITEM *ASN1_ITEM_get(size_t i); + +// csrc/openssl/src/include/openssl/asn1err.h +int ERR_load_ASN1_strings(void); +enum { + ASN1_F_A2D_ASN1_OBJECT = 100, + ASN1_F_A2I_ASN1_INTEGER = 102, + ASN1_F_A2I_ASN1_STRING = 103, + ASN1_F_APPEND_EXP = 176, + ASN1_F_ASN1_BIO_INIT = 113, + ASN1_F_ASN1_BIT_STRING_SET_BIT = 183, + ASN1_F_ASN1_CB = 177, + ASN1_F_ASN1_CHECK_TLEN = 104, + ASN1_F_ASN1_COLLECT = 106, + ASN1_F_ASN1_D2I_EX_PRIMITIVE = 108, + ASN1_F_ASN1_D2I_FP = 109, + ASN1_F_ASN1_D2I_READ_BIO = 107, + ASN1_F_ASN1_DIGEST = 184, + ASN1_F_ASN1_DO_ADB = 110, + ASN1_F_ASN1_DO_LOCK = 233, + ASN1_F_ASN1_DUP = 111, + ASN1_F_ASN1_ENC_SAVE = 115, + ASN1_F_ASN1_EX_C2I = 204, + ASN1_F_ASN1_FIND_END = 190, + ASN1_F_ASN1_GENERALIZEDTIME_ADJ = 216, + ASN1_F_ASN1_GENERATE_V3 = 178, + ASN1_F_ASN1_GET_INT64 = 224, + ASN1_F_ASN1_GET_OBJECT = 114, + ASN1_F_ASN1_GET_UINT64 = 225, + ASN1_F_ASN1_I2D_BIO = 116, + ASN1_F_ASN1_I2D_FP = 117, + ASN1_F_ASN1_ITEM_D2I_FP = 206, + ASN1_F_ASN1_ITEM_DUP = 191, + ASN1_F_ASN1_ITEM_EMBED_D2I = 120, + ASN1_F_ASN1_ITEM_EMBED_NEW = 121, + ASN1_F_ASN1_ITEM_FLAGS_I2D = 118, + ASN1_F_ASN1_ITEM_I2D_BIO = 192, + ASN1_F_ASN1_ITEM_I2D_FP = 193, + ASN1_F_ASN1_ITEM_PACK = 198, + ASN1_F_ASN1_ITEM_SIGN = 195, + ASN1_F_ASN1_ITEM_SIGN_CTX = 220, + ASN1_F_ASN1_ITEM_UNPACK = 199, + ASN1_F_ASN1_ITEM_VERIFY = 197, + ASN1_F_ASN1_MBSTRING_NCOPY = 122, + ASN1_F_ASN1_OBJECT_NEW = 123, + ASN1_F_ASN1_OUTPUT_DATA = 214, + ASN1_F_ASN1_PCTX_NEW = 205, + ASN1_F_ASN1_PRIMITIVE_NEW = 119, + ASN1_F_ASN1_SCTX_NEW = 221, + ASN1_F_ASN1_SIGN = 128, + ASN1_F_ASN1_STR2TYPE = 179, + ASN1_F_ASN1_STRING_GET_INT64 = 227, + ASN1_F_ASN1_STRING_GET_UINT64 = 230, + ASN1_F_ASN1_STRING_SET = 186, + ASN1_F_ASN1_STRING_TABLE_ADD = 129, + ASN1_F_ASN1_STRING_TO_BN = 228, + ASN1_F_ASN1_STRING_TYPE_NEW = 130, + ASN1_F_ASN1_TEMPLATE_EX_D2I = 132, + ASN1_F_ASN1_TEMPLATE_NEW = 133, + ASN1_F_ASN1_TEMPLATE_NOEXP_D2I = 131, + ASN1_F_ASN1_TIME_ADJ = 217, + ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING = 134, + ASN1_F_ASN1_TYPE_GET_OCTETSTRING = 135, + ASN1_F_ASN1_UTCTIME_ADJ = 218, + ASN1_F_ASN1_VERIFY = 137, + ASN1_F_B64_READ_ASN1 = 209, + ASN1_F_B64_WRITE_ASN1 = 210, + ASN1_F_BIO_NEW_NDEF = 208, + ASN1_F_BITSTR_CB = 180, + ASN1_F_BN_TO_ASN1_STRING = 229, + ASN1_F_C2I_ASN1_BIT_STRING = 189, + ASN1_F_C2I_ASN1_INTEGER = 194, + ASN1_F_C2I_ASN1_OBJECT = 196, + ASN1_F_C2I_IBUF = 226, + ASN1_F_C2I_UINT64_INT = 101, + ASN1_F_COLLECT_DATA = 140, + ASN1_F_D2I_ASN1_OBJECT = 147, + ASN1_F_D2I_ASN1_UINTEGER = 150, + ASN1_F_D2I_AUTOPRIVATEKEY = 207, + ASN1_F_D2I_PRIVATEKEY = 154, + ASN1_F_D2I_PUBLICKEY = 155, + ASN1_F_DO_BUF = 142, + ASN1_F_DO_CREATE = 124, + ASN1_F_DO_DUMP = 125, + ASN1_F_DO_TCREATE = 222, + ASN1_F_I2A_ASN1_OBJECT = 126, + ASN1_F_I2D_ASN1_BIO_STREAM = 211, + ASN1_F_I2D_ASN1_OBJECT = 143, + ASN1_F_I2D_DSA_PUBKEY = 161, + ASN1_F_I2D_EC_PUBKEY = 181, + ASN1_F_I2D_PRIVATEKEY = 163, + ASN1_F_I2D_PUBLICKEY = 164, + ASN1_F_I2D_RSA_PUBKEY = 165, + ASN1_F_LONG_C2I = 166, + ASN1_F_NDEF_PREFIX = 127, + ASN1_F_NDEF_SUFFIX = 136, + ASN1_F_OID_MODULE_INIT = 174, + ASN1_F_PARSE_TAGGING = 182, + ASN1_F_PKCS5_PBE2_SET_IV = 167, + ASN1_F_PKCS5_PBE2_SET_SCRYPT = 231, + ASN1_F_PKCS5_PBE_SET = 202, + ASN1_F_PKCS5_PBE_SET0_ALGOR = 215, + ASN1_F_PKCS5_PBKDF2_SET = 219, + ASN1_F_PKCS5_SCRYPT_SET = 232, + ASN1_F_SMIME_READ_ASN1 = 212, + ASN1_F_SMIME_TEXT = 213, + ASN1_F_STABLE_GET = 138, + ASN1_F_STBL_MODULE_INIT = 223, + ASN1_F_UINT32_C2I = 105, + ASN1_F_UINT32_NEW = 139, + ASN1_F_UINT64_C2I = 112, + ASN1_F_UINT64_NEW = 141, + ASN1_F_X509_CRL_ADD0_REVOKED = 169, + ASN1_F_X509_INFO_NEW = 170, + ASN1_F_X509_NAME_ENCODE = 203, + ASN1_F_X509_NAME_EX_D2I = 158, + ASN1_F_X509_NAME_EX_NEW = 171, + ASN1_F_X509_PKEY_NEW = 173, + ASN1_R_ADDING_OBJECT = 171, + ASN1_R_ASN1_PARSE_ERROR = 203, + ASN1_R_ASN1_SIG_PARSE_ERROR = 204, + ASN1_R_AUX_ERROR = 100, + ASN1_R_BAD_OBJECT_HEADER = 102, + ASN1_R_BMPSTRING_IS_WRONG_LENGTH = 214, + ASN1_R_BN_LIB = 105, + ASN1_R_BOOLEAN_IS_WRONG_LENGTH = 106, + ASN1_R_BUFFER_TOO_SMALL = 107, + ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER = 108, + ASN1_R_CONTEXT_NOT_INITIALISED = 217, + ASN1_R_DATA_IS_WRONG = 109, + ASN1_R_DECODE_ERROR = 110, + ASN1_R_DEPTH_EXCEEDED = 174, + ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED = 198, + ASN1_R_ENCODE_ERROR = 112, + ASN1_R_ERROR_GETTING_TIME = 173, + ASN1_R_ERROR_LOADING_SECTION = 172, + ASN1_R_ERROR_SETTING_CIPHER_PARAMS = 114, + ASN1_R_EXPECTING_AN_INTEGER = 115, + ASN1_R_EXPECTING_AN_OBJECT = 116, + ASN1_R_EXPLICIT_LENGTH_MISMATCH = 119, + ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED = 120, + ASN1_R_FIELD_MISSING = 121, + ASN1_R_FIRST_NUM_TOO_LARGE = 122, + ASN1_R_HEADER_TOO_LONG = 123, + ASN1_R_ILLEGAL_BITSTRING_FORMAT = 175, + ASN1_R_ILLEGAL_BOOLEAN = 176, + ASN1_R_ILLEGAL_CHARACTERS = 124, + ASN1_R_ILLEGAL_FORMAT = 177, + ASN1_R_ILLEGAL_HEX = 178, + ASN1_R_ILLEGAL_IMPLICIT_TAG = 179, + ASN1_R_ILLEGAL_INTEGER = 180, + ASN1_R_ILLEGAL_NEGATIVE_VALUE = 226, + ASN1_R_ILLEGAL_NESTED_TAGGING = 181, + ASN1_R_ILLEGAL_NULL = 125, + ASN1_R_ILLEGAL_NULL_VALUE = 182, + ASN1_R_ILLEGAL_OBJECT = 183, + ASN1_R_ILLEGAL_OPTIONAL_ANY = 126, + ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE = 170, + ASN1_R_ILLEGAL_PADDING = 221, + ASN1_R_ILLEGAL_TAGGED_ANY = 127, + ASN1_R_ILLEGAL_TIME_VALUE = 184, + ASN1_R_ILLEGAL_ZERO_CONTENT = 222, + ASN1_R_INTEGER_NOT_ASCII_FORMAT = 185, + ASN1_R_INTEGER_TOO_LARGE_FOR_LONG = 128, + ASN1_R_INVALID_BIT_STRING_BITS_LEFT = 220, + ASN1_R_INVALID_BMPSTRING_LENGTH = 129, + ASN1_R_INVALID_DIGIT = 130, + ASN1_R_INVALID_MIME_TYPE = 205, + ASN1_R_INVALID_MODIFIER = 186, + ASN1_R_INVALID_NUMBER = 187, + ASN1_R_INVALID_OBJECT_ENCODING = 216, + ASN1_R_INVALID_SCRYPT_PARAMETERS = 227, + ASN1_R_INVALID_SEPARATOR = 131, + ASN1_R_INVALID_STRING_TABLE_VALUE = 218, + ASN1_R_INVALID_UNIVERSALSTRING_LENGTH = 133, + ASN1_R_INVALID_UTF8STRING = 134, + ASN1_R_INVALID_VALUE = 219, + ASN1_R_LIST_ERROR = 188, + ASN1_R_MIME_NO_CONTENT_TYPE = 206, + ASN1_R_MIME_PARSE_ERROR = 207, + ASN1_R_MIME_SIG_PARSE_ERROR = 208, + ASN1_R_MISSING_EOC = 137, + ASN1_R_MISSING_SECOND_NUMBER = 138, + ASN1_R_MISSING_VALUE = 189, + ASN1_R_MSTRING_NOT_UNIVERSAL = 139, + ASN1_R_MSTRING_WRONG_TAG = 140, + ASN1_R_NESTED_ASN1_STRING = 197, + ASN1_R_NESTED_TOO_DEEP = 201, + ASN1_R_NON_HEX_CHARACTERS = 141, + ASN1_R_NOT_ASCII_FORMAT = 190, + ASN1_R_NOT_ENOUGH_DATA = 142, + ASN1_R_NO_CONTENT_TYPE = 209, + ASN1_R_NO_MATCHING_CHOICE_TYPE = 143, + ASN1_R_NO_MULTIPART_BODY_FAILURE = 210, + ASN1_R_NO_MULTIPART_BOUNDARY = 211, + ASN1_R_NO_SIG_CONTENT_TYPE = 212, + ASN1_R_NULL_IS_WRONG_LENGTH = 144, + ASN1_R_OBJECT_NOT_ASCII_FORMAT = 191, + ASN1_R_ODD_NUMBER_OF_CHARS = 145, + ASN1_R_SECOND_NUMBER_TOO_LARGE = 147, + ASN1_R_SEQUENCE_LENGTH_MISMATCH = 148, + ASN1_R_SEQUENCE_NOT_CONSTRUCTED = 149, + ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG = 192, + ASN1_R_SHORT_LINE = 150, + ASN1_R_SIG_INVALID_MIME_TYPE = 213, + ASN1_R_STREAMING_NOT_SUPPORTED = 202, + ASN1_R_STRING_TOO_LONG = 151, + ASN1_R_STRING_TOO_SHORT = 152, + ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD = 154, + ASN1_R_TIME_NOT_ASCII_FORMAT = 193, + ASN1_R_TOO_LARGE = 223, + ASN1_R_TOO_LONG = 155, + ASN1_R_TOO_SMALL = 224, + ASN1_R_TYPE_NOT_CONSTRUCTED = 156, + ASN1_R_TYPE_NOT_PRIMITIVE = 195, + ASN1_R_UNEXPECTED_EOC = 159, + ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH = 215, + ASN1_R_UNKNOWN_FORMAT = 160, + ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM = 161, + ASN1_R_UNKNOWN_OBJECT_TYPE = 162, + ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE = 163, + ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM = 199, + ASN1_R_UNKNOWN_TAG = 194, + ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE = 164, + ASN1_R_UNSUPPORTED_CIPHER = 228, + ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE = 167, + ASN1_R_UNSUPPORTED_TYPE = 196, + ASN1_R_WRONG_INTEGER_TYPE = 225, + ASN1_R_WRONG_PUBLIC_KEY_TYPE = 200, + ASN1_R_WRONG_TAG = 168, +}; diff --git a/libcrypto_bio_h.lua b/libcrypto_bio_h.lua new file mode 100644 index 0000000..67f8eed --- /dev/null +++ b/libcrypto_bio_h.lua @@ -0,0 +1,589 @@ +// csrc/openssl/src/include/openssl/bio.h +enum { + BIO_TYPE_DESCRIPTOR = 0x0100, + BIO_TYPE_FILTER = 0x0200, + BIO_TYPE_SOURCE_SINK = 0x0400, + BIO_TYPE_NONE = 0, + BIO_TYPE_MEM = ( 1|BIO_TYPE_SOURCE_SINK), + BIO_TYPE_FILE = ( 2|BIO_TYPE_SOURCE_SINK), + BIO_TYPE_FD = ( 4|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR), + BIO_TYPE_SOCKET = ( 5|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR), + BIO_TYPE_NULL = ( 6|BIO_TYPE_SOURCE_SINK), + BIO_TYPE_SSL = ( 7|BIO_TYPE_FILTER), + BIO_TYPE_MD = ( 8|BIO_TYPE_FILTER), + BIO_TYPE_BUFFER = ( 9|BIO_TYPE_FILTER), + BIO_TYPE_CIPHER = (10|BIO_TYPE_FILTER), + BIO_TYPE_BASE64 = (11|BIO_TYPE_FILTER), + BIO_TYPE_CONNECT = (12|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR), + BIO_TYPE_ACCEPT = (13|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR), + BIO_TYPE_NBIO_TEST = (16|BIO_TYPE_FILTER), + BIO_TYPE_NULL_FILTER = (17|BIO_TYPE_FILTER), + BIO_TYPE_BIO = (19|BIO_TYPE_SOURCE_SINK), + BIO_TYPE_LINEBUFFER = (20|BIO_TYPE_FILTER), + BIO_TYPE_DGRAM = (21|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR), + BIO_TYPE_ASN1 = (22|BIO_TYPE_FILTER), + BIO_TYPE_COMP = (23|BIO_TYPE_FILTER), + BIO_TYPE_START = 128, + BIO_NOCLOSE = 0x00, + BIO_CLOSE = 0x01, + BIO_CTRL_RESET = 1, + BIO_CTRL_EOF = 2, + BIO_CTRL_INFO = 3, + BIO_CTRL_SET = 4, + BIO_CTRL_GET = 5, + BIO_CTRL_PUSH = 6, + BIO_CTRL_POP = 7, + BIO_CTRL_GET_CLOSE = 8, + BIO_CTRL_SET_CLOSE = 9, + BIO_CTRL_PENDING = 10, + BIO_CTRL_FLUSH = 11, + BIO_CTRL_DUP = 12, + BIO_CTRL_WPENDING = 13, + BIO_CTRL_SET_CALLBACK = 14, + BIO_CTRL_GET_CALLBACK = 15, + BIO_CTRL_PEEK = 29, + BIO_CTRL_SET_FILENAME = 30, + BIO_CTRL_DGRAM_CONNECT = 31, + BIO_CTRL_DGRAM_SET_CONNECTED = 32, + BIO_CTRL_DGRAM_SET_RECV_TIMEOUT = 33, + BIO_CTRL_DGRAM_GET_RECV_TIMEOUT = 34, + BIO_CTRL_DGRAM_SET_SEND_TIMEOUT = 35, + BIO_CTRL_DGRAM_GET_SEND_TIMEOUT = 36, + BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP = 37, + BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP = 38, + BIO_CTRL_DGRAM_MTU_DISCOVER = 39, + BIO_CTRL_DGRAM_QUERY_MTU = 40, + BIO_CTRL_DGRAM_GET_FALLBACK_MTU = 47, + BIO_CTRL_DGRAM_GET_MTU = 41, + BIO_CTRL_DGRAM_SET_MTU = 42, + BIO_CTRL_DGRAM_MTU_EXCEEDED = 43, + BIO_CTRL_DGRAM_GET_PEER = 46, + BIO_CTRL_DGRAM_SET_PEER = 44, + BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT = 45, + BIO_CTRL_DGRAM_SET_DONT_FRAG = 48, + BIO_CTRL_DGRAM_GET_MTU_OVERHEAD = 49, + BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE = 50, + BIO_CTRL_DGRAM_SET_PEEK_MODE = 71, + BIO_FP_READ = 0x02, + BIO_FP_WRITE = 0x04, + BIO_FP_APPEND = 0x08, + BIO_FP_TEXT = 0x10, + BIO_FLAGS_READ = 0x01, + BIO_FLAGS_WRITE = 0x02, + BIO_FLAGS_IO_SPECIAL = 0x04, + BIO_FLAGS_RWS = (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL), + BIO_FLAGS_SHOULD_RETRY = 0x08, + BIO_FLAGS_UPLINK = 0, + BIO_FLAGS_BASE64_NO_NL = 0x100, + BIO_FLAGS_MEM_RDONLY = 0x200, + BIO_FLAGS_NONCLEAR_RST = 0x400, +}; +typedef union bio_addr_st BIO_ADDR; +typedef struct bio_addrinfo_st BIO_ADDRINFO; +int BIO_get_new_index(void); +void BIO_set_flags(BIO *b, int flags); +int BIO_test_flags(const BIO *b, int flags); +void BIO_clear_flags(BIO *b, int flags); +#define BIO_get_flags(b) BIO_test_flags(b, ~(0x0)) +#define BIO_set_retry_special(b) BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY)) +#define BIO_set_retry_read(b) BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)) +#define BIO_set_retry_write(b) BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY)) +#define BIO_clear_retry_flags(b) BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) +#define BIO_get_retry_flags(b) BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) +#define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ) +#define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE) +#define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL) +#define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS) +#define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY) +enum { + BIO_RR_SSL_X509_LOOKUP = 0x01, + BIO_RR_CONNECT = 0x02, + BIO_RR_ACCEPT = 0x03, + BIO_CB_FREE = 0x01, + BIO_CB_READ = 0x02, + BIO_CB_WRITE = 0x03, + BIO_CB_PUTS = 0x04, + BIO_CB_GETS = 0x05, + BIO_CB_CTRL = 0x06, + BIO_CB_RETURN = 0x80, +}; +#define BIO_CB_return(a) ((a)|BIO_CB_RETURN) +#define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) +#define BIO_cb_post(a) ((a)&BIO_CB_RETURN) +typedef long (*BIO_callback_fn)(BIO *b, int oper, const char *argp, int argi, + long argl, long ret); +typedef long (*BIO_callback_fn_ex)(BIO *b, int oper, const char *argp, + size_t len, int argi, + long argl, int ret, size_t *processed); +BIO_callback_fn BIO_get_callback(const BIO *b); +void BIO_set_callback(BIO *b, BIO_callback_fn callback); +BIO_callback_fn_ex BIO_get_callback_ex(const BIO *b); +void BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex callback); +char *BIO_get_callback_arg(const BIO *b); +void BIO_set_callback_arg(BIO *b, char *arg); +typedef struct bio_method_st BIO_METHOD; +const char *BIO_method_name(const BIO *b); +int BIO_method_type(const BIO *b); +typedef int BIO_info_cb(BIO *, int, int); +typedef BIO_info_cb bio_info_cb; +struct stack_st_BIO; typedef int (*sk_BIO_compfunc)(const BIO * const *a, const BIO *const *b); typedef void (*sk_BIO_freefunc)(BIO *a); typedef BIO * (*sk_BIO_copyfunc)(const BIO *a); static __attribute__((unused)) inline int sk_BIO_num(const struct stack_st_BIO *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline BIO *sk_BIO_value(const struct stack_st_BIO *sk, int idx) { return (BIO *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_BIO *sk_BIO_new(sk_BIO_compfunc compare) { return (struct stack_st_BIO *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_BIO *sk_BIO_new_null(void) { return (struct stack_st_BIO *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_BIO *sk_BIO_new_reserve(sk_BIO_compfunc compare, int n) { return (struct stack_st_BIO *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_BIO_reserve(struct stack_st_BIO *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_BIO_free(struct stack_st_BIO *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_BIO_zero(struct stack_st_BIO *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline BIO *sk_BIO_delete(struct stack_st_BIO *sk, int i) { return (BIO *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline BIO *sk_BIO_delete_ptr(struct stack_st_BIO *sk, BIO *ptr) { return (BIO *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_BIO_push(struct stack_st_BIO *sk, BIO *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_BIO_unshift(struct stack_st_BIO *sk, BIO *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline BIO *sk_BIO_pop(struct stack_st_BIO *sk) { return (BIO *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline BIO *sk_BIO_shift(struct stack_st_BIO *sk) { return (BIO *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_BIO_pop_free(struct stack_st_BIO *sk, sk_BIO_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_BIO_insert(struct stack_st_BIO *sk, BIO *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline BIO *sk_BIO_set(struct stack_st_BIO *sk, int idx, BIO *ptr) { return (BIO *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_BIO_find(struct stack_st_BIO *sk, BIO *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_BIO_find_ex(struct stack_st_BIO *sk, BIO *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_BIO_sort(struct stack_st_BIO *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_BIO_is_sorted(const struct stack_st_BIO *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_BIO * sk_BIO_dup(const struct stack_st_BIO *sk) { return (struct stack_st_BIO *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_BIO *sk_BIO_deep_copy(const struct stack_st_BIO *sk, sk_BIO_copyfunc copyfunc, sk_BIO_freefunc freefunc) { return (struct stack_st_BIO *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_BIO_compfunc sk_BIO_set_cmp_func(struct stack_st_BIO *sk, sk_BIO_compfunc compare) { return (sk_BIO_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, + void *parg); +enum { + BIO_C_SET_CONNECT = 100, + BIO_C_DO_STATE_MACHINE = 101, + BIO_C_SET_NBIO = 102, + BIO_C_SET_FD = 104, + BIO_C_GET_FD = 105, + BIO_C_SET_FILE_PTR = 106, + BIO_C_GET_FILE_PTR = 107, + BIO_C_SET_FILENAME = 108, + BIO_C_SET_SSL = 109, + BIO_C_GET_SSL = 110, + BIO_C_SET_MD = 111, + BIO_C_GET_MD = 112, + BIO_C_GET_CIPHER_STATUS = 113, + BIO_C_SET_BUF_MEM = 114, + BIO_C_GET_BUF_MEM_PTR = 115, + BIO_C_GET_BUFF_NUM_LINES = 116, + BIO_C_SET_BUFF_SIZE = 117, + BIO_C_SET_ACCEPT = 118, + BIO_C_SSL_MODE = 119, + BIO_C_GET_MD_CTX = 120, + BIO_C_SET_BUFF_READ_DATA = 122, + BIO_C_GET_CONNECT = 123, + BIO_C_GET_ACCEPT = 124, + BIO_C_SET_SSL_RENEGOTIATE_BYTES = 125, + BIO_C_GET_SSL_NUM_RENEGOTIATES = 126, + BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT = 127, + BIO_C_FILE_SEEK = 128, + BIO_C_GET_CIPHER_CTX = 129, + BIO_C_SET_BUF_MEM_EOF_RETURN = 130, + BIO_C_SET_BIND_MODE = 131, + BIO_C_GET_BIND_MODE = 132, + BIO_C_FILE_TELL = 133, + BIO_C_GET_SOCKS = 134, + BIO_C_SET_SOCKS = 135, + BIO_C_SET_WRITE_BUF_SIZE = 136, + BIO_C_GET_WRITE_BUF_SIZE = 137, + BIO_C_MAKE_BIO_PAIR = 138, + BIO_C_DESTROY_BIO_PAIR = 139, + BIO_C_GET_WRITE_GUARANTEE = 140, + BIO_C_GET_READ_REQUEST = 141, + BIO_C_SHUTDOWN_WR = 142, + BIO_C_NREAD0 = 143, + BIO_C_NREAD = 144, + BIO_C_NWRITE0 = 145, + BIO_C_NWRITE = 146, + BIO_C_RESET_READ_REQUEST = 147, + BIO_C_SET_MD_CTX = 148, + BIO_C_SET_PREFIX = 149, + BIO_C_GET_PREFIX = 150, + BIO_C_SET_SUFFIX = 151, + BIO_C_GET_SUFFIX = 152, + BIO_C_SET_EX_ARG = 153, + BIO_C_GET_EX_ARG = 154, + BIO_C_SET_CONNECT_MODE = 155, +}; +#define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) +#define BIO_get_app_data(s) BIO_get_ex_data(s,0) +#define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) +enum { + BIO_FAMILY_IPV4 = 4, + BIO_FAMILY_IPV6 = 6, + BIO_FAMILY_IPANY = 256, +}; +#define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0, (char *)(name)) +#define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1, (char *)(port)) +#define BIO_set_conn_address(b,addr) BIO_ctrl(b,BIO_C_SET_CONNECT,2, (char *)(addr)) +#define BIO_set_conn_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_CONNECT,3,f) +#define BIO_get_conn_hostname(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0)) +#define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) +#define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) +#define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) +#define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) +#define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, (char *)(name)) +#define BIO_set_accept_port(b,port) BIO_ctrl(b,BIO_C_SET_ACCEPT,1, (char *)(port)) +#define BIO_get_accept_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0)) +#define BIO_get_accept_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,1)) +#define BIO_get_peer_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,2)) +#define BIO_get_peer_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,3)) +#define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(n)?(void *)"a":NULL) +#define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,3, (char *)(bio)) +#define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) +#define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) +enum { + BIO_BIND_NORMAL = 0, + BIO_BIND_REUSEADDR = BIO_SOCK_REUSEADDR, + BIO_BIND_REUSEADDR_IF_UNUSED = BIO_SOCK_REUSEADDR, +}; +#define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) +#define BIO_get_bind_mode(b) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) +#define BIO_do_connect(b) BIO_do_handshake(b) +#define BIO_do_accept(b) BIO_do_handshake(b) +#define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) +#define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) +#define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)(c)) +#define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)(fp)) +#define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)(fpp)) +#define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) +#define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) +#define BIO_read_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, BIO_CLOSE|BIO_FP_READ,(char *)(name)) +#define BIO_write_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, BIO_CLOSE|BIO_FP_WRITE,name) +#define BIO_append_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, BIO_CLOSE|BIO_FP_APPEND,name) +#define BIO_rw_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) +#define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)(ssl)) +#define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)(sslp)) +#define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) +#define BIO_set_ssl_renegotiate_bytes(b,num) BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL) +#define BIO_get_num_renegotiates(b) BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL) +#define BIO_set_ssl_renegotiate_timeout(b,seconds) BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL) +#define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)(pp)) +#define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)(bm)) +#define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0, (char *)(pp)) +#define BIO_set_mem_eof_return(b,v) BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,NULL) +#define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) +#define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) +#define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) +#define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) +#define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) +#define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret)) +#define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) +#define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL) +#define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL) +#define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL) +#define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) +#define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL) +size_t BIO_ctrl_pending(BIO *b); +size_t BIO_ctrl_wpending(BIO *b); +#define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL) +#define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, cbp) +#define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb) +#define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL) +#define BIO_buffer_peek(b,s,l) BIO_ctrl(b,BIO_CTRL_PEEK,(l),(s)) +#define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL) +#define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) +#define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) +#define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) +#define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) +#define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) +#define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) +size_t BIO_ctrl_get_write_guarantee(BIO *b); +size_t BIO_ctrl_get_read_request(BIO *b); +int BIO_ctrl_reset_read_request(BIO *b); +#define BIO_ctrl_dgram_connect(b,peer) (int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)(peer)) +#define BIO_ctrl_set_connected(b,peer) (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, 0, (char *)(peer)) +#define BIO_dgram_recv_timedout(b) (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL) +#define BIO_dgram_send_timedout(b) (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, NULL) +#define BIO_dgram_get_peer(b,peer) (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) +#define BIO_dgram_set_peer(b,peer) (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) +#define BIO_dgram_get_mtu_overhead(b) (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) +#define BIO_get_ex_new_index(l,p,newf,dupf,freef) CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_BIO, l, p, newf, dupf, freef) +int BIO_set_ex_data(BIO *bio, int idx, void *data); +void *BIO_get_ex_data(BIO *bio, int idx); +uint64_t BIO_number_read(BIO *bio); +uint64_t BIO_number_written(BIO *bio); +int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, + asn1_ps_func *prefix_free); +int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, + asn1_ps_func **pprefix_free); +int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, + asn1_ps_func *suffix_free); +int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, + asn1_ps_func **psuffix_free); +const BIO_METHOD *BIO_s_file(void); +BIO *BIO_new_file(const char *filename, const char *mode); +BIO *BIO_new_fp(FILE *stream, int close_flag); +BIO *BIO_new(const BIO_METHOD *type); +int BIO_free(BIO *a); +void BIO_set_data(BIO *a, void *ptr); +void *BIO_get_data(BIO *a); +void BIO_set_init(BIO *a, int init); +int BIO_get_init(BIO *a); +void BIO_set_shutdown(BIO *a, int shut); +int BIO_get_shutdown(BIO *a); +void BIO_vfree(BIO *a); +int BIO_up_ref(BIO *a); +int BIO_read(BIO *b, void *data, int dlen); +int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +int BIO_gets(BIO *bp, char *buf, int size); +int BIO_write(BIO *b, const void *data, int dlen); +int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +int BIO_puts(BIO *bp, const char *buf); +int BIO_indent(BIO *b, int indent, int max); +long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); +long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp); +void *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); +long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); +BIO *BIO_push(BIO *b, BIO *append); +BIO *BIO_pop(BIO *b); +void BIO_free_all(BIO *a); +BIO *BIO_find_type(BIO *b, int bio_type); +BIO *BIO_next(BIO *b); +void BIO_set_next(BIO *b, BIO *next); +BIO *BIO_get_retry_BIO(BIO *bio, int *reason); +int BIO_get_retry_reason(BIO *bio); +void BIO_set_retry_reason(BIO *bio, int reason); +BIO *BIO_dup_chain(BIO *in); +int BIO_nread0(BIO *bio, char **buf); +int BIO_nread(BIO *bio, char **buf, int num); +int BIO_nwrite0(BIO *bio, char **buf); +int BIO_nwrite(BIO *bio, char **buf, int num); +long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, + long argl, long ret); +const BIO_METHOD *BIO_s_mem(void); +const BIO_METHOD *BIO_s_secmem(void); +BIO *BIO_new_mem_buf(const void *buf, int len); +const BIO_METHOD *BIO_s_socket(void); +const BIO_METHOD *BIO_s_connect(void); +const BIO_METHOD *BIO_s_accept(void); +const BIO_METHOD *BIO_s_fd(void); +const BIO_METHOD *BIO_s_log(void); +const BIO_METHOD *BIO_s_bio(void); +const BIO_METHOD *BIO_s_null(void); +const BIO_METHOD *BIO_f_null(void); +const BIO_METHOD *BIO_f_buffer(void); +const BIO_METHOD *BIO_f_linebuffer(void); +const BIO_METHOD *BIO_f_nbio_test(void); +const BIO_METHOD *BIO_s_datagram(void); +int BIO_dgram_non_fatal_error(int error); +BIO *BIO_new_dgram(int fd, int close_flag); +int BIO_sock_should_retry(int i); +int BIO_sock_non_fatal_error(int error); +int BIO_fd_should_retry(int i); +int BIO_fd_non_fatal_error(int error); +int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), + void *u, const char *s, int len); +int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), + void *u, const char *s, int len, int indent); +int BIO_dump(BIO *b, const char *bytes, int len); +int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); +int BIO_dump_fp(FILE *fp, const char *s, int len); +int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); +int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, + int datalen); +BIO_ADDR *BIO_ADDR_new(void); +int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, + const void *where, size_t wherelen, unsigned short port); +void BIO_ADDR_free(BIO_ADDR *); +void BIO_ADDR_clear(BIO_ADDR *ap); +int BIO_ADDR_family(const BIO_ADDR *ap); +int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l); +unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap); +char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric); +char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric); +char *BIO_ADDR_path_string(const BIO_ADDR *ap); +const BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai); +int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai); +int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai); +int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai); +const BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai); +void BIO_ADDRINFO_free(BIO_ADDRINFO *bai); +enum BIO_hostserv_priorities { + BIO_PARSE_PRIO_HOST, BIO_PARSE_PRIO_SERV +}; +int BIO_parse_hostserv(const char *hostserv, char **host, char **service, + enum BIO_hostserv_priorities hostserv_prio); +enum BIO_lookup_type { + BIO_LOOKUP_CLIENT, BIO_LOOKUP_SERVER +}; +int BIO_lookup(const char *host, const char *service, + enum BIO_lookup_type lookup_type, + int family, int socktype, BIO_ADDRINFO **res); +int BIO_lookup_ex(const char *host, const char *service, + int lookup_type, int family, int socktype, int protocol, + BIO_ADDRINFO **res); +int BIO_sock_error(int sock); +int BIO_socket_ioctl(int fd, long type, void *arg); +int BIO_socket_nbio(int fd, int mode); +int BIO_sock_init(void); +#define BIO_sock_cleanup() while(0) continue +int BIO_set_tcp_ndelay(int sock, int turn_on); +struct hostent *BIO_gethostbyname(const char *name) __attribute__ ((deprecated)); +int BIO_get_port(const char *str, unsigned short *port_ptr) __attribute__ ((deprecated)); +int BIO_get_host_ip(const char *str, unsigned char *ip) __attribute__ ((deprecated)); +int BIO_get_accept_socket(char *host_port, int mode) __attribute__ ((deprecated)); +int BIO_accept(int sock, char **ip_port) __attribute__ ((deprecated)); +union BIO_sock_info_u { + BIO_ADDR *addr; +}; +enum BIO_sock_info_type { + BIO_SOCK_INFO_ADDRESS +}; +int BIO_sock_info(int sock, + enum BIO_sock_info_type type, union BIO_sock_info_u *info); +enum { + BIO_SOCK_REUSEADDR = 0x01, + BIO_SOCK_V6_ONLY = 0x02, + BIO_SOCK_KEEPALIVE = 0x04, + BIO_SOCK_NONBLOCK = 0x08, + BIO_SOCK_NODELAY = 0x10, +}; +int BIO_socket(int domain, int socktype, int protocol, int options); +int BIO_connect(int sock, const BIO_ADDR *addr, int options); +int BIO_bind(int sock, const BIO_ADDR *addr, int options); +int BIO_listen(int sock, const BIO_ADDR *addr, int options); +int BIO_accept_ex(int accept_sock, BIO_ADDR *addr, int options); +int BIO_closesocket(int sock); +BIO *BIO_new_socket(int sock, int close_flag); +BIO *BIO_new_connect(const char *host_port); +BIO *BIO_new_accept(const char *host_port); +BIO *BIO_new_fd(int fd, int close_flag); +int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, + BIO **bio2, size_t writebuf2); +void BIO_copy_next_retry(BIO *b); +#define ossl_bio__attr__(x) +enum { + ossl_bio__attr__ = __attribute__, + ossl_bio__printf__ = __gnu_printf__, +}; +int BIO_printf(BIO *bio, const char *format, ...) +__attribute__((__format__(__gnu_printf__, 2, 3))); +int BIO_vprintf(BIO *bio, const char *format, va_list args) +__attribute__((__format__(__gnu_printf__, 2, 0))); +int BIO_snprintf(char *buf, size_t n, const char *format, ...) +__attribute__((__format__(__gnu_printf__, 3, 4))); +int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) +__attribute__((__format__(__gnu_printf__, 3, 0))); +BIO_METHOD *BIO_meth_new(int type, const char *name); +void BIO_meth_free(BIO_METHOD *biom); +int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); +int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, + size_t *); +int BIO_meth_set_write(BIO_METHOD *biom, + int (*write) (BIO *, const char *, int)); +int BIO_meth_set_write_ex(BIO_METHOD *biom, + int (*bwrite) (BIO *, const char *, size_t, size_t *)); +int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); +int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); +int BIO_meth_set_read(BIO_METHOD *biom, + int (*read) (BIO *, char *, int)); +int BIO_meth_set_read_ex(BIO_METHOD *biom, + int (*bread) (BIO *, char *, size_t, size_t *)); +int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); +int BIO_meth_set_puts(BIO_METHOD *biom, + int (*puts) (BIO *, const char *)); +int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); +int BIO_meth_set_gets(BIO_METHOD *biom, + int (*gets) (BIO *, char *, int)); +long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); +int BIO_meth_set_ctrl(BIO_METHOD *biom, + long (*ctrl) (BIO *, int, long, void *)); +int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); +int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); +int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); +int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); +long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) + (BIO *, int, BIO_info_cb *); +int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, + long (*callback_ctrl) (BIO *, int, + BIO_info_cb *)); + +// X:/tools/mingw64/x86_64-w64-mingw32/include/stdarg.h +#define va_start(v,l) __builtin_va_start(v,l) +#define va_end(v) __builtin_va_end(v) +#define va_arg(v,l) __builtin_va_arg(v,l) +#define va_copy(d,s) __builtin_va_copy(d,s) +#define __va_copy(d,s) __builtin_va_copy(d,s) + +// X:/tools/mingw64/x86_64-w64-mingw32/include/_mingw_stdarg.h + +// csrc/openssl/src/include/openssl/bioerr.h +int ERR_load_BIO_strings(void); +enum { + BIO_F_ACPT_STATE = 100, + BIO_F_ADDRINFO_WRAP = 148, + BIO_F_ADDR_STRINGS = 134, + BIO_F_BIO_ACCEPT = 101, + BIO_F_BIO_ACCEPT_EX = 137, + BIO_F_BIO_ACCEPT_NEW = 152, + BIO_F_BIO_ADDR_NEW = 144, + BIO_F_BIO_BIND = 147, + BIO_F_BIO_CALLBACK_CTRL = 131, + BIO_F_BIO_CONNECT = 138, + BIO_F_BIO_CONNECT_NEW = 153, + BIO_F_BIO_CTRL = 103, + BIO_F_BIO_GETS = 104, + BIO_F_BIO_GET_HOST_IP = 106, + BIO_F_BIO_GET_NEW_INDEX = 102, + BIO_F_BIO_GET_PORT = 107, + BIO_F_BIO_LISTEN = 139, + BIO_F_BIO_LOOKUP = 135, + BIO_F_BIO_LOOKUP_EX = 143, + BIO_F_BIO_MAKE_PAIR = 121, + BIO_F_BIO_METH_NEW = 146, + BIO_F_BIO_NEW = 108, + BIO_F_BIO_NEW_DGRAM_SCTP = 145, + BIO_F_BIO_NEW_FILE = 109, + BIO_F_BIO_NEW_MEM_BUF = 126, + BIO_F_BIO_NREAD = 123, + BIO_F_BIO_NREAD0 = 124, + BIO_F_BIO_NWRITE = 125, + BIO_F_BIO_NWRITE0 = 122, + BIO_F_BIO_PARSE_HOSTSERV = 136, + BIO_F_BIO_PUTS = 110, + BIO_F_BIO_READ = 111, + BIO_F_BIO_READ_EX = 105, + BIO_F_BIO_READ_INTERN = 120, + BIO_F_BIO_SOCKET = 140, + BIO_F_BIO_SOCKET_NBIO = 142, + BIO_F_BIO_SOCK_INFO = 141, + BIO_F_BIO_SOCK_INIT = 112, + BIO_F_BIO_WRITE = 113, + BIO_F_BIO_WRITE_EX = 119, + BIO_F_BIO_WRITE_INTERN = 128, + BIO_F_BUFFER_CTRL = 114, + BIO_F_CONN_CTRL = 127, + BIO_F_CONN_STATE = 115, + BIO_F_DGRAM_SCTP_NEW = 149, + BIO_F_DGRAM_SCTP_READ = 132, + BIO_F_DGRAM_SCTP_WRITE = 133, + BIO_F_DOAPR_OUTCH = 150, + BIO_F_FILE_CTRL = 116, + BIO_F_FILE_READ = 130, + BIO_F_LINEBUFFER_CTRL = 129, + BIO_F_LINEBUFFER_NEW = 151, + BIO_F_MEM_WRITE = 117, + BIO_F_NBIOF_NEW = 154, + BIO_F_SLG_WRITE = 155, + BIO_F_SSL_NEW = 118, + BIO_R_ACCEPT_ERROR = 100, + BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET = 141, + BIO_R_AMBIGUOUS_HOST_OR_SERVICE = 129, + BIO_R_BAD_FOPEN_MODE = 101, + BIO_R_BROKEN_PIPE = 124, + BIO_R_CONNECT_ERROR = 103, + BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET = 107, + BIO_R_GETSOCKNAME_ERROR = 132, + BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS = 133, + BIO_R_GETTING_SOCKTYPE = 134, + BIO_R_INVALID_ARGUMENT = 125, + BIO_R_INVALID_SOCKET = 135, + BIO_R_IN_USE = 123, + BIO_R_LENGTH_TOO_LONG = 102, + BIO_R_LISTEN_V6_ONLY = 136, + BIO_R_LOOKUP_RETURNED_NOTHING = 142, + BIO_R_MALFORMED_HOST_OR_SERVICE = 130, + BIO_R_NBIO_CONNECT_ERROR = 110, + BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED = 143, + BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED = 144, + BIO_R_NO_PORT_DEFINED = 113, + BIO_R_NO_SUCH_FILE = 128, + BIO_R_NULL_PARAMETER = 115, + BIO_R_UNABLE_TO_BIND_SOCKET = 117, + BIO_R_UNABLE_TO_CREATE_SOCKET = 118, + BIO_R_UNABLE_TO_KEEPALIVE = 137, + BIO_R_UNABLE_TO_LISTEN_SOCKET = 119, + BIO_R_UNABLE_TO_NODELAY = 138, + BIO_R_UNABLE_TO_REUSEADDR = 139, + BIO_R_UNAVAILABLE_IP_FAMILY = 145, + BIO_R_UNINITIALIZED = 120, + BIO_R_UNKNOWN_INFO_TYPE = 140, + BIO_R_UNSUPPORTED_IP_FAMILY = 146, + BIO_R_UNSUPPORTED_METHOD = 121, + BIO_R_UNSUPPORTED_PROTOCOL_FAMILY = 131, + BIO_R_WRITE_TO_READ_ONLY_BIO = 126, + BIO_R_WSASTARTUP = 122, +}; + + diff --git a/libcrypto_bn_h.lua b/libcrypto_bn_h.lua new file mode 100644 index 0000000..623885a --- /dev/null +++ b/libcrypto_bn_h.lua @@ -0,0 +1,360 @@ +// csrc/openssl/src/include/openssl/bn.h +enum { + BN_ULONG = unsigned long long, + BN_BYTES = 8, + BN_BITS2 = (BN_BYTES * 8), + BN_BITS = (BN_BITS2 * 2), + BN_TBIT = ((BN_ULONG)1 << (BN_BITS2 - 1)), + BN_FLG_MALLOCED = 0x01, + BN_FLG_STATIC_DATA = 0x02, + BN_FLG_CONSTTIME = 0x04, + BN_FLG_SECURE = 0x08, + BN_FLG_EXP_CONSTTIME = BN_FLG_CONSTTIME, + BN_FLG_FREE = 0x8000, +}; +void BN_set_flags(BIGNUM *b, int n); +int BN_get_flags(const BIGNUM *b, int n); +enum { + BN_RAND_TOP_ANY = -1, + BN_RAND_TOP_ONE = 0, + BN_RAND_TOP_TWO = 1, + BN_RAND_BOTTOM_ANY = 0, + BN_RAND_BOTTOM_ODD = 1, +}; +void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags); +int BN_GENCB_call(BN_GENCB *cb, int a, int b); +BN_GENCB *BN_GENCB_new(void); +void BN_GENCB_free(BN_GENCB *cb); +void BN_GENCB_set_old(BN_GENCB *gencb, void (*callback) (int, int, void *), + void *cb_arg); +void BN_GENCB_set(BN_GENCB *gencb, int (*callback) (int, int, BN_GENCB *), + void *cb_arg); +void *BN_GENCB_get_arg(BN_GENCB *cb); +enum { + BN_prime_checks = 0, +}; +#define BN_prime_checks_for_size(b) ((b) >= 3747 ? 3 : (b) >= 1345 ? 4 : (b) >= 476 ? 5 : (b) >= 400 ? 6 : (b) >= 347 ? 7 : (b) >= 308 ? 8 : (b) >= 55 ? 27 : 34) +#define BN_num_bytes(a) ((BN_num_bits(a)+7)/8) +int BN_abs_is_word(const BIGNUM *a, const unsigned long long w); +int BN_is_zero(const BIGNUM *a); +int BN_is_one(const BIGNUM *a); +int BN_is_word(const BIGNUM *a, const unsigned long long w); +int BN_is_odd(const BIGNUM *a); +#define BN_one(a) (BN_set_word((a),1)) +void BN_zero_ex(BIGNUM *a); +#define BN_zero(a) (BN_set_word((a),0)) +const BIGNUM *BN_value_one(void); +char *BN_options(void); +BN_CTX *BN_CTX_new(void); +BN_CTX *BN_CTX_secure_new(void); +void BN_CTX_free(BN_CTX *c); +void BN_CTX_start(BN_CTX *ctx); +BIGNUM *BN_CTX_get(BN_CTX *ctx); +void BN_CTX_end(BN_CTX *ctx); +int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); +int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom); +int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); +int BN_priv_rand_range(BIGNUM *rnd, const BIGNUM *range); +int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); +int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); +int BN_num_bits(const BIGNUM *a); +int BN_num_bits_word(unsigned long long l); +int BN_security_bits(int L, int N); +BIGNUM *BN_new(void); +BIGNUM *BN_secure_new(void); +void BN_clear_free(BIGNUM *a); +BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); +void BN_swap(BIGNUM *a, BIGNUM *b); +BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); +int BN_bn2bin(const BIGNUM *a, unsigned char *to); +int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen); +BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); +int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen); +BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); +int BN_bn2mpi(const BIGNUM *a, unsigned char *to); +int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); +void BN_set_negative(BIGNUM *b, int n); +int BN_is_negative(const BIGNUM *b); +int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, + BN_CTX *ctx); +#define BN_mod(rem,m,d,ctx) BN_div(NULL,(rem),(m),(d),(ctx)) +int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); +int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *m); +int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *m); +int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); +int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); +int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); +int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, + BN_CTX *ctx); +int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); +unsigned long long BN_mod_word(const BIGNUM *a, unsigned long long w); +unsigned long long BN_div_word(BIGNUM *a, unsigned long long w); +int BN_mul_word(BIGNUM *a, unsigned long long w); +int BN_add_word(BIGNUM *a, unsigned long long w); +int BN_sub_word(BIGNUM *a, unsigned long long w); +int BN_set_word(BIGNUM *a, unsigned long long w); +unsigned long long BN_get_word(const BIGNUM *a); +int BN_cmp(const BIGNUM *a, const BIGNUM *b); +void BN_free(BIGNUM *a); +int BN_is_bit_set(const BIGNUM *a, int n); +int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); +int BN_lshift1(BIGNUM *r, const BIGNUM *a); +int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx); +int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, + BN_MONT_CTX *in_mont); +int BN_mod_exp_mont_word(BIGNUM *r, unsigned long long a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, + const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, + BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx); +int BN_mask_bits(BIGNUM *a, int n); +int BN_print_fp(FILE *fp, const BIGNUM *a); +int BN_print(BIO *bio, const BIGNUM *a); +int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); +int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); +int BN_rshift1(BIGNUM *r, const BIGNUM *a); +void BN_clear(BIGNUM *a); +BIGNUM *BN_dup(const BIGNUM *a); +int BN_ucmp(const BIGNUM *a, const BIGNUM *b); +int BN_set_bit(BIGNUM *a, int n); +int BN_clear_bit(BIGNUM *a, int n); +char *BN_bn2hex(const BIGNUM *a); +char *BN_bn2dec(const BIGNUM *a); +int BN_hex2bn(BIGNUM **a, const char *str); +int BN_dec2bn(BIGNUM **a, const char *str); +int BN_asc2bn(BIGNUM **a, const char *str); +int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +BIGNUM *BN_mod_inverse(BIGNUM *ret, + const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); +BIGNUM *BN_mod_sqrt(BIGNUM *ret, + const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); +void BN_consttime_swap(unsigned long long swap, BIGNUM *a, BIGNUM *b, int nwords); +BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, const BIGNUM *add, const BIGNUM *rem, void (*callback) (int, int, void *), void *cb_arg) __attribute__ ((deprecated)); +int BN_is_prime(const BIGNUM *p, int nchecks, void (*callback) (int, int, void *), BN_CTX *ctx, void *cb_arg) __attribute__ ((deprecated)); +int BN_is_prime_fasttest(const BIGNUM *p, int nchecks, void (*callback) (int, int, void *), BN_CTX *ctx, void *cb_arg, int do_trial_division) __attribute__ ((deprecated)); +int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, + const BIGNUM *rem, BN_GENCB *cb); +int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); +int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, + int do_trial_division, BN_GENCB *cb); +int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); +int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, + const BIGNUM *Xp, const BIGNUM *Xp1, + const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, + BN_GENCB *cb); +int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, + BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, + BN_CTX *ctx, BN_GENCB *cb); +BN_MONT_CTX *BN_MONT_CTX_new(void); +int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + BN_MONT_CTX *mont, BN_CTX *ctx); +int BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, + BN_CTX *ctx); +int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, + BN_CTX *ctx); +void BN_MONT_CTX_free(BN_MONT_CTX *mont); +int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); +BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); +BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_RWLOCK *lock, + const BIGNUM *mod, BN_CTX *ctx); +enum { + BN_BLINDING_NO_UPDATE = 0x00000001, + BN_BLINDING_NO_RECREATE = 0x00000002, +}; +BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); +void BN_BLINDING_free(BN_BLINDING *b); +int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); +int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); +int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); +int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); +int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, + BN_CTX *); +int BN_BLINDING_is_current_thread(BN_BLINDING *b); +void BN_BLINDING_set_current_thread(BN_BLINDING *b); +int BN_BLINDING_lock(BN_BLINDING *b); +int BN_BLINDING_unlock(BN_BLINDING *b); +unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); +void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); +BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, + const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, + int (*bn_mod_exp) (BIGNUM *r, + const BIGNUM *a, + const BIGNUM *p, + const BIGNUM *m, + BN_CTX *ctx, + BN_MONT_CTX *m_ctx), + BN_MONT_CTX *m_ctx); +void BN_set_params(int mul, int high, int low, int mont) __attribute__ ((deprecated)); +int BN_get_params(int which) __attribute__ ((deprecated)); +BN_RECP_CTX *BN_RECP_CTX_new(void); +void BN_RECP_CTX_free(BN_RECP_CTX *recp); +int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); +int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, + BN_RECP_CTX *recp, BN_CTX *ctx); +int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx); +int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, + BN_RECP_CTX *recp, BN_CTX *ctx); +int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +#define BN_GF2m_sub(r,a,b) BN_GF2m_add(r, a, b) +int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); +int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *p, BN_CTX *ctx); +int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); +int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *p, BN_CTX *ctx); +int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const BIGNUM *p, BN_CTX *ctx); +int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + BN_CTX *ctx); +int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + BN_CTX *ctx); +#define BN_GF2m_cmp(a,b) BN_ucmp((a), (b)) +int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); +int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const int p[], BN_CTX *ctx); +int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], + BN_CTX *ctx); +int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], + BN_CTX *ctx); +int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const int p[], BN_CTX *ctx); +int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, + const int p[], BN_CTX *ctx); +int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, + const int p[], BN_CTX *ctx); +int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, + const int p[], BN_CTX *ctx); +int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); +int BN_GF2m_arr2poly(const int p[], BIGNUM *a); +int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +const BIGNUM *BN_get0_nist_prime_192(void); +const BIGNUM *BN_get0_nist_prime_224(void); +const BIGNUM *BN_get0_nist_prime_256(void); +const BIGNUM *BN_get0_nist_prime_384(void); +const BIGNUM *BN_get0_nist_prime_521(void); +int (*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a, + const BIGNUM *field, BN_CTX *ctx); +int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range, + const BIGNUM *priv, const unsigned char *message, + size_t message_len, BN_CTX *ctx); +BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn); +BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn); +BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn); +enum { + get_rfc2409_prime_768 = BN_get_rfc2409_prime_768, + get_rfc2409_prime_1024 = BN_get_rfc2409_prime_1024, + get_rfc3526_prime_1536 = BN_get_rfc3526_prime_1536, + get_rfc3526_prime_2048 = BN_get_rfc3526_prime_2048, + get_rfc3526_prime_3072 = BN_get_rfc3526_prime_3072, + get_rfc3526_prime_4096 = BN_get_rfc3526_prime_4096, + get_rfc3526_prime_6144 = BN_get_rfc3526_prime_6144, + get_rfc3526_prime_8192 = BN_get_rfc3526_prime_8192, +}; +int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); + +// csrc/openssl/src/include/openssl/bnerr.h +int ERR_load_BN_strings(void); +enum { + BN_F_BNRAND = 127, + BN_F_BNRAND_RANGE = 138, + BN_F_BN_BLINDING_CONVERT_EX = 100, + BN_F_BN_BLINDING_CREATE_PARAM = 128, + BN_F_BN_BLINDING_INVERT_EX = 101, + BN_F_BN_BLINDING_NEW = 102, + BN_F_BN_BLINDING_UPDATE = 103, + BN_F_BN_BN2DEC = 104, + BN_F_BN_BN2HEX = 105, + BN_F_BN_COMPUTE_WNAF = 142, + BN_F_BN_CTX_GET = 116, + BN_F_BN_CTX_NEW = 106, + BN_F_BN_CTX_START = 129, + BN_F_BN_DIV = 107, + BN_F_BN_DIV_RECP = 130, + BN_F_BN_EXP = 123, + BN_F_BN_EXPAND_INTERNAL = 120, + BN_F_BN_GENCB_NEW = 143, + BN_F_BN_GENERATE_DSA_NONCE = 140, + BN_F_BN_GENERATE_PRIME_EX = 141, + BN_F_BN_GF2M_MOD = 131, + BN_F_BN_GF2M_MOD_EXP = 132, + BN_F_BN_GF2M_MOD_MUL = 133, + BN_F_BN_GF2M_MOD_SOLVE_QUAD = 134, + BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR = 135, + BN_F_BN_GF2M_MOD_SQR = 136, + BN_F_BN_GF2M_MOD_SQRT = 137, + BN_F_BN_LSHIFT = 145, + BN_F_BN_MOD_EXP2_MONT = 118, + BN_F_BN_MOD_EXP_MONT = 109, + BN_F_BN_MOD_EXP_MONT_CONSTTIME = 124, + BN_F_BN_MOD_EXP_MONT_WORD = 117, + BN_F_BN_MOD_EXP_RECP = 125, + BN_F_BN_MOD_EXP_SIMPLE = 126, + BN_F_BN_MOD_INVERSE = 110, + BN_F_BN_MOD_INVERSE_NO_BRANCH = 139, + BN_F_BN_MOD_LSHIFT_QUICK = 119, + BN_F_BN_MOD_SQRT = 121, + BN_F_BN_MONT_CTX_NEW = 149, + BN_F_BN_MPI2BN = 112, + BN_F_BN_NEW = 113, + BN_F_BN_POOL_GET = 147, + BN_F_BN_RAND = 114, + BN_F_BN_RAND_RANGE = 122, + BN_F_BN_RECP_CTX_NEW = 150, + BN_F_BN_RSHIFT = 146, + BN_F_BN_SET_WORDS = 144, + BN_F_BN_STACK_PUSH = 148, + BN_F_BN_USUB = 115, + BN_R_ARG2_LT_ARG3 = 100, + BN_R_BAD_RECIPROCAL = 101, + BN_R_BIGNUM_TOO_LONG = 114, + BN_R_BITS_TOO_SMALL = 118, + BN_R_CALLED_WITH_EVEN_MODULUS = 102, + BN_R_DIV_BY_ZERO = 103, + BN_R_ENCODING_ERROR = 104, + BN_R_EXPAND_ON_STATIC_BIGNUM_DATA = 105, + BN_R_INPUT_NOT_REDUCED = 110, + BN_R_INVALID_LENGTH = 106, + BN_R_INVALID_RANGE = 115, + BN_R_INVALID_SHIFT = 119, + BN_R_NOT_A_SQUARE = 111, + BN_R_NOT_INITIALIZED = 107, + BN_R_NO_INVERSE = 108, + BN_R_NO_SOLUTION = 116, + BN_R_PRIVATE_KEY_TOO_LARGE = 117, + BN_R_P_IS_NOT_PRIME = 112, + BN_R_TOO_MANY_ITERATIONS = 113, + BN_R_TOO_MANY_TEMPORARY_VARIABLES = 109, +}; + diff --git a/libcrypto_buffer_h.lua b/libcrypto_buffer_h.lua new file mode 100644 index 0000000..408a8c3 --- /dev/null +++ b/libcrypto_buffer_h.lua @@ -0,0 +1,30 @@ +// csrc/openssl/src/include/openssl/buffer.h +#define BUF_strdup(s) OPENSSL_strdup(s) +#define BUF_strndup(s,size) OPENSSL_strndup(s, size) +#define BUF_memdup(data,size) OPENSSL_memdup(data, size) +#define BUF_strlcpy(dst,src,size) OPENSSL_strlcpy(dst, src, size) +#define BUF_strlcat(dst,src,size) OPENSSL_strlcat(dst, src, size) +#define BUF_strnlen(str,maxlen) OPENSSL_strnlen(str, maxlen) +struct buf_mem_st { + size_t length; + char *data; + size_t max; + unsigned long flags; +}; +enum { + BUF_MEM_FLAG_SECURE = 0x01, +}; +BUF_MEM *BUF_MEM_new(void); +BUF_MEM *BUF_MEM_new_ex(unsigned long flags); +void BUF_MEM_free(BUF_MEM *a); +size_t BUF_MEM_grow(BUF_MEM *str, size_t len); +size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len); +void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); + +// csrc/openssl/src/include/openssl/buffererr.h +int ERR_load_BUF_strings(void); +enum { + BUF_F_BUF_MEM_GROW = 100, + BUF_F_BUF_MEM_GROW_CLEAN = 105, + BUF_F_BUF_MEM_NEW = 101, +}; diff --git a/libcrypto_dh_h.lua b/libcrypto_dh_h.lua new file mode 100644 index 0000000..23f3c7f --- /dev/null +++ b/libcrypto_dh_h.lua @@ -0,0 +1,216 @@ +// csrc/openssl/src/include/openssl/dh.h +enum { + OPENSSL_DH_MAX_MODULUS_BITS = 10000, + OPENSSL_DH_FIPS_MIN_MODULUS_BITS = 1024, + DH_FLAG_CACHE_MONT_P = 0x01, + DH_FLAG_NO_EXP_CONSTTIME = 0x00, + DH_FLAG_FIPS_METHOD = 0x0400, + DH_FLAG_NON_FIPS_ALLOW = 0x0400, +}; +const ASN1_ITEM * DHparams_it(void); +enum { + DH_GENERATOR_2 = 2, + DH_GENERATOR_5 = 5, + DH_CHECK_P_NOT_PRIME = 0x01, + DH_CHECK_P_NOT_SAFE_PRIME = 0x02, + DH_UNABLE_TO_CHECK_GENERATOR = 0x04, + DH_NOT_SUITABLE_GENERATOR = 0x08, + DH_CHECK_Q_NOT_PRIME = 0x10, + DH_CHECK_INVALID_Q_VALUE = 0x20, + DH_CHECK_INVALID_J_VALUE = 0x40, + DH_CHECK_PUBKEY_TOO_SMALL = 0x01, + DH_CHECK_PUBKEY_TOO_LARGE = 0x02, + DH_CHECK_PUBKEY_INVALID = 0x04, + DH_CHECK_P_NOT_STRONG_PRIME = DH_CHECK_P_NOT_SAFE_PRIME, +}; +#define d2i_DHparams_fp(fp,x) (DH *)ASN1_d2i_fp((char *(*)())DH_new, (char *(*)())d2i_DHparams, (fp), (unsigned char **)(x)) +#define i2d_DHparams_fp(fp,x) ASN1_i2d_fp(i2d_DHparams,(fp), (unsigned char *)(x)) +#define d2i_DHparams_bio(bp,x) ASN1_d2i_bio_of(DH, DH_new, d2i_DHparams, bp, x) +#define i2d_DHparams_bio(bp,x) ASN1_i2d_bio_of_const(DH,i2d_DHparams,bp,x) +#define d2i_DHxparams_fp(fp,x) (DH *)ASN1_d2i_fp((char *(*)())DH_new, (char *(*)())d2i_DHxparams, (fp), (unsigned char **)(x)) +#define i2d_DHxparams_fp(fp,x) ASN1_i2d_fp(i2d_DHxparams,(fp), (unsigned char *)(x)) +#define d2i_DHxparams_bio(bp,x) ASN1_d2i_bio_of(DH, DH_new, d2i_DHxparams, bp, x) +#define i2d_DHxparams_bio(bp,x) ASN1_i2d_bio_of_const(DH, i2d_DHxparams, bp, x) +DH *DHparams_dup(DH *); +const DH_METHOD *DH_OpenSSL(void); +void DH_set_default_method(const DH_METHOD *meth); +const DH_METHOD *DH_get_default_method(void); +int DH_set_method(DH *dh, const DH_METHOD *meth); +DH *DH_new_method(ENGINE *engine); +DH *DH_new(void); +void DH_free(DH *dh); +int DH_up_ref(DH *dh); +int DH_bits(const DH *dh); +int DH_size(const DH *dh); +int DH_security_bits(const DH *dh); +#define DH_get_ex_new_index(l,p,newf,dupf,freef) CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DH, l, p, newf, dupf, freef) +int DH_set_ex_data(DH *d, int idx, void *arg); +void *DH_get_ex_data(DH *d, int idx); +DH *DH_generate_parameters(int prime_len, int generator, void (*callback) (int, int, void *), void *cb_arg) __attribute__ ((deprecated)); +int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, + BN_GENCB *cb); +int DH_check_params_ex(const DH *dh); +int DH_check_ex(const DH *dh); +int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key); +int DH_check_params(const DH *dh, int *ret); +int DH_check(const DH *dh, int *codes); +int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes); +int DH_generate_key(DH *dh); +int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); +int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh); +DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); +int i2d_DHparams(const DH *a, unsigned char **pp); +DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); +int i2d_DHxparams(const DH *a, unsigned char **pp); +int DHparams_print_fp(FILE *fp, const DH *x); +int DHparams_print(BIO *bp, const DH *x); +DH *DH_get_1024_160(void); +DH *DH_get_2048_224(void); +DH *DH_get_2048_256(void); +DH *DH_new_by_nid(int nid); +int DH_get_nid(const DH *dh); +int DH_KDF_X9_42(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + ASN1_OBJECT *key_oid, + const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); +void DH_get0_pqg(const DH *dh, + const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); +int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); +void DH_get0_key(const DH *dh, + const BIGNUM **pub_key, const BIGNUM **priv_key); +int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); +const BIGNUM *DH_get0_p(const DH *dh); +const BIGNUM *DH_get0_q(const DH *dh); +const BIGNUM *DH_get0_g(const DH *dh); +const BIGNUM *DH_get0_priv_key(const DH *dh); +const BIGNUM *DH_get0_pub_key(const DH *dh); +void DH_clear_flags(DH *dh, int flags); +int DH_test_flags(const DH *dh, int flags); +void DH_set_flags(DH *dh, int flags); +ENGINE *DH_get0_engine(DH *d); +long DH_get_length(const DH *dh); +int DH_set_length(DH *dh, long length); +DH_METHOD *DH_meth_new(const char *name, int flags); +void DH_meth_free(DH_METHOD *dhm); +DH_METHOD *DH_meth_dup(const DH_METHOD *dhm); +const char *DH_meth_get0_name(const DH_METHOD *dhm); +int DH_meth_set1_name(DH_METHOD *dhm, const char *name); +int DH_meth_get_flags(const DH_METHOD *dhm); +int DH_meth_set_flags(DH_METHOD *dhm, int flags); +void *DH_meth_get0_app_data(const DH_METHOD *dhm); +int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data); +int (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *); +int DH_meth_set_generate_key(DH_METHOD *dhm, int (*generate_key) (DH *)); +int (*DH_meth_get_compute_key(const DH_METHOD *dhm)) + (unsigned char *key, const BIGNUM *pub_key, DH *dh); +int DH_meth_set_compute_key(DH_METHOD *dhm, + int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh)); +int (*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm)) + (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + BN_CTX *, BN_MONT_CTX *); +int DH_meth_set_bn_mod_exp(DH_METHOD *dhm, + int (*bn_mod_exp) (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); +int (*DH_meth_get_init(const DH_METHOD *dhm))(DH *); +int DH_meth_set_init(DH_METHOD *dhm, int (*init)(DH *)); +int (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *); +int DH_meth_set_finish(DH_METHOD *dhm, int (*finish) (DH *)); +int (*DH_meth_get_generate_params(const DH_METHOD *dhm)) + (DH *, int, int, BN_GENCB *); +int DH_meth_set_generate_params(DH_METHOD *dhm, + int (*generate_params) (DH *, int, int, BN_GENCB *)); +#define EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx,len) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN, len, NULL) +#define EVP_PKEY_CTX_set_dh_paramgen_subprime_len(ctx,len) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN, len, NULL) +#define EVP_PKEY_CTX_set_dh_paramgen_type(ctx,typ) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, EVP_PKEY_CTRL_DH_PARAMGEN_TYPE, typ, NULL) +#define EVP_PKEY_CTX_set_dh_paramgen_generator(ctx,gen) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR, gen, NULL) +#define EVP_PKEY_CTX_set_dh_rfc5114(ctx,gen) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) +#define EVP_PKEY_CTX_set_dhx_rfc5114(ctx,gen) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) +#define EVP_PKEY_CTX_set_dh_nid(ctx,nid) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_DH_NID, nid, NULL) +#define EVP_PKEY_CTX_set_dh_pad(ctx,pad) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_DH_PAD, pad, NULL) +#define EVP_PKEY_CTX_set_dh_kdf_type(ctx,kdf) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_DH_KDF_TYPE, kdf, NULL) +#define EVP_PKEY_CTX_get_dh_kdf_type(ctx) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_DH_KDF_TYPE, -2, NULL) +#define EVP_PKEY_CTX_set0_dh_kdf_oid(ctx,oid) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_DH_KDF_OID, 0, (void *)(oid)) +#define EVP_PKEY_CTX_get0_dh_kdf_oid(ctx,poid) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_GET_DH_KDF_OID, 0, (void *)(poid)) +#define EVP_PKEY_CTX_set_dh_kdf_md(ctx,md) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_DH_KDF_MD, 0, (void *)(md)) +#define EVP_PKEY_CTX_get_dh_kdf_md(ctx,pmd) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_GET_DH_KDF_MD, 0, (void *)(pmd)) +#define EVP_PKEY_CTX_set_dh_kdf_outlen(ctx,len) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_DH_KDF_OUTLEN, len, NULL) +#define EVP_PKEY_CTX_get_dh_kdf_outlen(ctx,plen) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN, 0, (void *)(plen)) +#define EVP_PKEY_CTX_set0_dh_kdf_ukm(ctx,p,plen) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_DH_KDF_UKM, plen, (void *)(p)) +#define EVP_PKEY_CTX_get0_dh_kdf_ukm(ctx,p) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_GET_DH_KDF_UKM, 0, (void *)(p)) +enum { + EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN = (EVP_PKEY_ALG_CTRL + 1), + EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR = (EVP_PKEY_ALG_CTRL + 2), + EVP_PKEY_CTRL_DH_RFC5114 = (EVP_PKEY_ALG_CTRL + 3), + EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN = (EVP_PKEY_ALG_CTRL + 4), + EVP_PKEY_CTRL_DH_PARAMGEN_TYPE = (EVP_PKEY_ALG_CTRL + 5), + EVP_PKEY_CTRL_DH_KDF_TYPE = (EVP_PKEY_ALG_CTRL + 6), + EVP_PKEY_CTRL_DH_KDF_MD = (EVP_PKEY_ALG_CTRL + 7), + EVP_PKEY_CTRL_GET_DH_KDF_MD = (EVP_PKEY_ALG_CTRL + 8), + EVP_PKEY_CTRL_DH_KDF_OUTLEN = (EVP_PKEY_ALG_CTRL + 9), + EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN = (EVP_PKEY_ALG_CTRL + 10), + EVP_PKEY_CTRL_DH_KDF_UKM = (EVP_PKEY_ALG_CTRL + 11), + EVP_PKEY_CTRL_GET_DH_KDF_UKM = (EVP_PKEY_ALG_CTRL + 12), + EVP_PKEY_CTRL_DH_KDF_OID = (EVP_PKEY_ALG_CTRL + 13), + EVP_PKEY_CTRL_GET_DH_KDF_OID = (EVP_PKEY_ALG_CTRL + 14), + EVP_PKEY_CTRL_DH_NID = (EVP_PKEY_ALG_CTRL + 15), + EVP_PKEY_CTRL_DH_PAD = (EVP_PKEY_ALG_CTRL + 16), + EVP_PKEY_DH_KDF_NONE = 1, + EVP_PKEY_DH_KDF_X9_42 = 2, +}; + +// csrc/openssl/src/include/openssl/dherr.h +int ERR_load_DH_strings(void); +enum { + DH_F_COMPUTE_KEY = 102, + DH_F_DHPARAMS_PRINT_FP = 101, + DH_F_DH_BUILTIN_GENPARAMS = 106, + DH_F_DH_CHECK_EX = 121, + DH_F_DH_CHECK_PARAMS_EX = 122, + DH_F_DH_CHECK_PUB_KEY_EX = 123, + DH_F_DH_CMS_DECRYPT = 114, + DH_F_DH_CMS_SET_PEERKEY = 115, + DH_F_DH_CMS_SET_SHARED_INFO = 116, + DH_F_DH_METH_DUP = 117, + DH_F_DH_METH_NEW = 118, + DH_F_DH_METH_SET1_NAME = 119, + DH_F_DH_NEW_BY_NID = 104, + DH_F_DH_NEW_METHOD = 105, + DH_F_DH_PARAM_DECODE = 107, + DH_F_DH_PKEY_PUBLIC_CHECK = 124, + DH_F_DH_PRIV_DECODE = 110, + DH_F_DH_PRIV_ENCODE = 111, + DH_F_DH_PUB_DECODE = 108, + DH_F_DH_PUB_ENCODE = 109, + DH_F_DO_DH_PRINT = 100, + DH_F_GENERATE_KEY = 103, + DH_F_PKEY_DH_CTRL_STR = 120, + DH_F_PKEY_DH_DERIVE = 112, + DH_F_PKEY_DH_INIT = 125, + DH_F_PKEY_DH_KEYGEN = 113, + DH_R_BAD_GENERATOR = 101, + DH_R_BN_DECODE_ERROR = 109, + DH_R_BN_ERROR = 106, + DH_R_CHECK_INVALID_J_VALUE = 115, + DH_R_CHECK_INVALID_Q_VALUE = 116, + DH_R_CHECK_PUBKEY_INVALID = 122, + DH_R_CHECK_PUBKEY_TOO_LARGE = 123, + DH_R_CHECK_PUBKEY_TOO_SMALL = 124, + DH_R_CHECK_P_NOT_PRIME = 117, + DH_R_CHECK_P_NOT_SAFE_PRIME = 118, + DH_R_CHECK_Q_NOT_PRIME = 119, + DH_R_DECODE_ERROR = 104, + DH_R_INVALID_PARAMETER_NAME = 110, + DH_R_INVALID_PARAMETER_NID = 114, + DH_R_INVALID_PUBKEY = 102, + DH_R_KDF_PARAMETER_ERROR = 112, + DH_R_KEYS_NOT_SET = 108, + DH_R_MISSING_PUBKEY = 125, + DH_R_MODULUS_TOO_LARGE = 103, + DH_R_NOT_SUITABLE_GENERATOR = 120, + DH_R_NO_PARAMETERS_SET = 107, + DH_R_NO_PRIVATE_VALUE = 100, + DH_R_PARAMETER_ENCODING_ERROR = 105, + DH_R_PEER_KEY_ERROR = 111, + DH_R_SHARED_INFO_ERROR = 113, + DH_R_UNABLE_TO_CHECK_GENERATOR = 121, +}; diff --git a/libcrypto_dsa_h.lua b/libcrypto_dsa_h.lua new file mode 100644 index 0000000..f1e3e6c --- /dev/null +++ b/libcrypto_dsa_h.lua @@ -0,0 +1,175 @@ +// csrc/openssl/src/include/openssl/dsa.h +enum { + OPENSSL_DSA_MAX_MODULUS_BITS = 10000, + OPENSSL_DSA_FIPS_MIN_MODULUS_BITS = 1024, + DSA_FLAG_CACHE_MONT_P = 0x01, + DSA_FLAG_NO_EXP_CONSTTIME = 0x00, + DSA_FLAG_FIPS_METHOD = 0x0400, + DSA_FLAG_NON_FIPS_ALLOW = 0x0400, + DSA_FLAG_FIPS_CHECKED = 0x0800, +}; +typedef struct DSA_SIG_st DSA_SIG; +#define d2i_DSAparams_fp(fp,x) (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, (char *(*)())d2i_DSAparams,(fp),(unsigned char **)(x)) +#define i2d_DSAparams_fp(fp,x) ASN1_i2d_fp(i2d_DSAparams,(fp), (unsigned char *)(x)) +#define d2i_DSAparams_bio(bp,x) ASN1_d2i_bio_of(DSA,DSA_new,d2i_DSAparams,bp,x) +#define i2d_DSAparams_bio(bp,x) ASN1_i2d_bio_of_const(DSA,i2d_DSAparams,bp,x) +DSA *DSAparams_dup(DSA *x); +DSA_SIG *DSA_SIG_new(void); +void DSA_SIG_free(DSA_SIG *a); +int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); +DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); +void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); +int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s); +DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); +int DSA_do_verify(const unsigned char *dgst, int dgst_len, + DSA_SIG *sig, DSA *dsa); +const DSA_METHOD *DSA_OpenSSL(void); +void DSA_set_default_method(const DSA_METHOD *); +const DSA_METHOD *DSA_get_default_method(void); +int DSA_set_method(DSA *dsa, const DSA_METHOD *); +const DSA_METHOD *DSA_get_method(DSA *d); +DSA *DSA_new(void); +DSA *DSA_new_method(ENGINE *engine); +void DSA_free(DSA *r); +int DSA_up_ref(DSA *r); +int DSA_size(const DSA *); +int DSA_bits(const DSA *d); +int DSA_security_bits(const DSA *d); +int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); +int DSA_sign(int type, const unsigned char *dgst, int dlen, + unsigned char *sig, unsigned int *siglen, DSA *dsa); +int DSA_verify(int type, const unsigned char *dgst, int dgst_len, + const unsigned char *sigbuf, int siglen, DSA *dsa); +#define DSA_get_ex_new_index(l,p,newf,dupf,freef) CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DSA, l, p, newf, dupf, freef) +int DSA_set_ex_data(DSA *d, int idx, void *arg); +void *DSA_get_ex_data(DSA *d, int idx); +DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); +DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); +DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length); +DSA *DSA_generate_parameters(int bits, unsigned char *seed, int seed_len, int *counter_ret, unsigned long *h_ret, void (*callback) (int, int, void *), void *cb_arg) __attribute__ ((deprecated)); +int DSA_generate_parameters_ex(DSA *dsa, int bits, + const unsigned char *seed, int seed_len, + int *counter_ret, unsigned long *h_ret, + BN_GENCB *cb); +int DSA_generate_key(DSA *a); +int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); +int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); +int i2d_DSAparams(const DSA *a, unsigned char **pp); +int DSAparams_print(BIO *bp, const DSA *x); +int DSA_print(BIO *bp, const DSA *x, int off); +int DSAparams_print_fp(FILE *fp, const DSA *x); +int DSA_print_fp(FILE *bp, const DSA *x, int off); +enum { + DSS_prime_checks = 64, +}; +#define DSA_is_prime(n,callback,cb_arg) BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) +DH *DSA_dup_DH(const DSA *r); +#define EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx,nbits) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, EVP_PKEY_CTRL_DSA_PARAMGEN_BITS, nbits, NULL) +enum { + EVP_PKEY_CTRL_DSA_PARAMGEN_BITS = (EVP_PKEY_ALG_CTRL + 1), + EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS = (EVP_PKEY_ALG_CTRL + 2), + EVP_PKEY_CTRL_DSA_PARAMGEN_MD = (EVP_PKEY_ALG_CTRL + 3), +}; +void DSA_get0_pqg(const DSA *d, + const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); +int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g); +void DSA_get0_key(const DSA *d, + const BIGNUM **pub_key, const BIGNUM **priv_key); +int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key); +const BIGNUM *DSA_get0_p(const DSA *d); +const BIGNUM *DSA_get0_q(const DSA *d); +const BIGNUM *DSA_get0_g(const DSA *d); +const BIGNUM *DSA_get0_pub_key(const DSA *d); +const BIGNUM *DSA_get0_priv_key(const DSA *d); +void DSA_clear_flags(DSA *d, int flags); +int DSA_test_flags(const DSA *d, int flags); +void DSA_set_flags(DSA *d, int flags); +ENGINE *DSA_get0_engine(DSA *d); +DSA_METHOD *DSA_meth_new(const char *name, int flags); +void DSA_meth_free(DSA_METHOD *dsam); +DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam); +const char *DSA_meth_get0_name(const DSA_METHOD *dsam); +int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name); +int DSA_meth_get_flags(const DSA_METHOD *dsam); +int DSA_meth_set_flags(DSA_METHOD *dsam, int flags); +void *DSA_meth_get0_app_data(const DSA_METHOD *dsam); +int DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data); +DSA_SIG *(*DSA_meth_get_sign(const DSA_METHOD *dsam)) + (const unsigned char *, int, DSA *); +int DSA_meth_set_sign(DSA_METHOD *dsam, + DSA_SIG *(*sign) (const unsigned char *, int, DSA *)); +int (*DSA_meth_get_sign_setup(const DSA_METHOD *dsam)) + (DSA *, BN_CTX *, BIGNUM **, BIGNUM **); +int DSA_meth_set_sign_setup(DSA_METHOD *dsam, + int (*sign_setup) (DSA *, BN_CTX *, BIGNUM **, BIGNUM **)); +int (*DSA_meth_get_verify(const DSA_METHOD *dsam)) + (const unsigned char *, int, DSA_SIG *, DSA *); +int DSA_meth_set_verify(DSA_METHOD *dsam, + int (*verify) (const unsigned char *, int, DSA_SIG *, DSA *)); +int (*DSA_meth_get_mod_exp(const DSA_METHOD *dsam)) + (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *); +int DSA_meth_set_mod_exp(DSA_METHOD *dsam, + int (*mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, + BN_MONT_CTX *)); +int (*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam)) + (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + BN_CTX *, BN_MONT_CTX *); +int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam, + int (*bn_mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); +int (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *); +int DSA_meth_set_init(DSA_METHOD *dsam, int (*init)(DSA *)); +int (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *); +int DSA_meth_set_finish(DSA_METHOD *dsam, int (*finish) (DSA *)); +int (*DSA_meth_get_paramgen(const DSA_METHOD *dsam)) + (DSA *, int, const unsigned char *, int, int *, unsigned long *, + BN_GENCB *); +int DSA_meth_set_paramgen(DSA_METHOD *dsam, + int (*paramgen) (DSA *, int, const unsigned char *, int, int *, + unsigned long *, BN_GENCB *)); +int (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *); +int DSA_meth_set_keygen(DSA_METHOD *dsam, int (*keygen) (DSA *)); + +// csrc/openssl/src/include/openssl/dsaerr.h +int ERR_load_DSA_strings(void); +enum { + DSA_F_DSAPARAMS_PRINT = 100, + DSA_F_DSAPARAMS_PRINT_FP = 101, + DSA_F_DSA_BUILTIN_PARAMGEN = 125, + DSA_F_DSA_BUILTIN_PARAMGEN2 = 126, + DSA_F_DSA_DO_SIGN = 112, + DSA_F_DSA_DO_VERIFY = 113, + DSA_F_DSA_METH_DUP = 127, + DSA_F_DSA_METH_NEW = 128, + DSA_F_DSA_METH_SET1_NAME = 129, + DSA_F_DSA_NEW_METHOD = 103, + DSA_F_DSA_PARAM_DECODE = 119, + DSA_F_DSA_PRINT_FP = 105, + DSA_F_DSA_PRIV_DECODE = 115, + DSA_F_DSA_PRIV_ENCODE = 116, + DSA_F_DSA_PUB_DECODE = 117, + DSA_F_DSA_PUB_ENCODE = 118, + DSA_F_DSA_SIGN = 106, + DSA_F_DSA_SIGN_SETUP = 107, + DSA_F_DSA_SIG_NEW = 102, + DSA_F_OLD_DSA_PRIV_DECODE = 122, + DSA_F_PKEY_DSA_CTRL = 120, + DSA_F_PKEY_DSA_CTRL_STR = 104, + DSA_F_PKEY_DSA_KEYGEN = 121, + DSA_R_BAD_Q_VALUE = 102, + DSA_R_BN_DECODE_ERROR = 108, + DSA_R_BN_ERROR = 109, + DSA_R_DECODE_ERROR = 104, + DSA_R_INVALID_DIGEST_TYPE = 106, + DSA_R_INVALID_PARAMETERS = 112, + DSA_R_MISSING_PARAMETERS = 101, + DSA_R_MISSING_PRIVATE_KEY = 111, + DSA_R_MODULUS_TOO_LARGE = 103, + DSA_R_NO_PARAMETERS_SET = 107, + DSA_R_PARAMETER_ENCODING_ERROR = 105, + DSA_R_Q_NOT_PRIME = 113, + DSA_R_SEED_LEN_SMALL = 110, +}; + diff --git a/libcrypto_ec_h.lua b/libcrypto_ec_h.lua new file mode 100644 index 0000000..9df2e88 --- /dev/null +++ b/libcrypto_ec_h.lua @@ -0,0 +1,610 @@ +// csrc/openssl/src/include/openssl/ec.h +enum { + OPENSSL_ECC_MAX_FIELD_BITS = 661, +}; +typedef enum { + POINT_CONVERSION_COMPRESSED = 2, + POINT_CONVERSION_UNCOMPRESSED = 4, + POINT_CONVERSION_HYBRID = 6 +} point_conversion_form_t; +typedef struct ec_method_st EC_METHOD; +typedef struct ec_group_st EC_GROUP; +typedef struct ec_point_st EC_POINT; +typedef struct ecpk_parameters_st ECPKPARAMETERS; +typedef struct ec_parameters_st ECPARAMETERS; +const EC_METHOD *EC_GFp_simple_method(void); +const EC_METHOD *EC_GFp_mont_method(void); +const EC_METHOD *EC_GFp_nist_method(void); +const EC_METHOD *EC_GF2m_simple_method(void); +EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); +void EC_GROUP_free(EC_GROUP *group); +void EC_GROUP_clear_free(EC_GROUP *group); +int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); +EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); +const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); +int EC_METHOD_get_field_type(const EC_METHOD *meth); +int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, + const BIGNUM *order, const BIGNUM *cofactor); +const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); +BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); +int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); +const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group); +int EC_GROUP_order_bits(const EC_GROUP *group); +int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, + BN_CTX *ctx); +const BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group); +void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); +int EC_GROUP_get_curve_name(const EC_GROUP *group); +void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); +int EC_GROUP_get_asn1_flag(const EC_GROUP *group); +void EC_GROUP_set_point_conversion_form(EC_GROUP *group, + point_conversion_form_t form); +point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); +unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); +size_t EC_GROUP_get_seed_len(const EC_GROUP *); +size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); +int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); +int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, + BN_CTX *ctx); +int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); +int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); +int EC_GROUP_get_degree(const EC_GROUP *group); +int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); +int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); +int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); +EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); +EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, + const BIGNUM *b, BN_CTX *ctx); +EC_GROUP *EC_GROUP_new_by_curve_name(int nid); +EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params); +ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group, + ECPARAMETERS *params); +EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params); +ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group, + ECPKPARAMETERS *params); +typedef struct { + int nid; + const char *comment; +} EC_builtin_curve; +size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); +const char *EC_curve_nid2nist(int nid); +int EC_curve_nist2nid(const char *name); +EC_POINT *EC_POINT_new(const EC_GROUP *group); +void EC_POINT_free(EC_POINT *point); +void EC_POINT_clear_free(EC_POINT *point); +int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); +EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); +const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); +int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); +int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, + EC_POINT *p, const BIGNUM *x, + const BIGNUM *y, const BIGNUM *z, + BN_CTX *ctx); +int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, + const EC_POINT *p, BIGNUM *x, + BIGNUM *y, BIGNUM *z, + BN_CTX *ctx); +int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT *p, + const BIGNUM *x, const BIGNUM *y, + BN_CTX *ctx); +int EC_POINT_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p, + BIGNUM *x, BIGNUM *y, BN_CTX *ctx); +int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); +int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, const EC_POINT *p, BIGNUM *x, BIGNUM *y, BN_CTX *ctx); +int EC_POINT_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *p, + const BIGNUM *x, int y_bit, + BN_CTX *ctx); +int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, int y_bit, BN_CTX *ctx); +int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); +int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, const EC_POINT *p, BIGNUM *x, BIGNUM *y, BN_CTX *ctx); +int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, const BIGNUM *x, int y_bit, BN_CTX *ctx); +size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, + point_conversion_form_t form, + unsigned char *buf, size_t len, BN_CTX *ctx); +int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, + const unsigned char *buf, size_t len, BN_CTX *ctx); +size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, + point_conversion_form_t form, + unsigned char **pbuf, BN_CTX *ctx); +BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, + point_conversion_form_t form, BIGNUM *, BN_CTX *); +EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, + EC_POINT *, BN_CTX *); +char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, + point_conversion_form_t form, BN_CTX *); +EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, + EC_POINT *, BN_CTX *); +int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, + const EC_POINT *b, BN_CTX *ctx); +int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, + BN_CTX *ctx); +int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); +int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); +int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, + BN_CTX *ctx); +int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, + BN_CTX *ctx); +int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); +int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, + EC_POINT *points[], BN_CTX *ctx); +int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, + size_t num, const EC_POINT *p[], const BIGNUM *m[], + BN_CTX *ctx); +int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, + const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); +int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); +int EC_GROUP_have_precompute_mult(const EC_GROUP *group); +const ASN1_ITEM * ECPKPARAMETERS_it(void); +ECPKPARAMETERS *ECPKPARAMETERS_new(void); void ECPKPARAMETERS_free(ECPKPARAMETERS *a); +const ASN1_ITEM * ECPARAMETERS_it(void); +ECPARAMETERS *ECPARAMETERS_new(void); void ECPARAMETERS_free(ECPARAMETERS *a); +int EC_GROUP_get_basis_type(const EC_GROUP *); +int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); +int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, + unsigned int *k2, unsigned int *k3); +enum { + OPENSSL_EC_EXPLICIT_CURVE = 0x000, + OPENSSL_EC_NAMED_CURVE = 0x001, +}; +EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); +int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); +#define d2i_ECPKParameters_bio(bp,x) ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x) +#define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x) +#define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) +#define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), (unsigned char *)(x)) +int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); +int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); +enum { + EC_PKEY_NO_PARAMETERS = 0x001, + EC_PKEY_NO_PUBKEY = 0x002, + EC_FLAG_NON_FIPS_ALLOW = 0x1, + EC_FLAG_FIPS_CHECKED = 0x2, + EC_FLAG_COFACTOR_ECDH = 0x1000, +}; +EC_KEY *EC_KEY_new(void); +int EC_KEY_get_flags(const EC_KEY *key); +void EC_KEY_set_flags(EC_KEY *key, int flags); +void EC_KEY_clear_flags(EC_KEY *key, int flags); +EC_KEY *EC_KEY_new_by_curve_name(int nid); +void EC_KEY_free(EC_KEY *key); +EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); +EC_KEY *EC_KEY_dup(const EC_KEY *src); +int EC_KEY_up_ref(EC_KEY *key); +ENGINE *EC_KEY_get0_engine(const EC_KEY *eckey); +const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); +int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); +const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); +int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); +const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); +int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); +unsigned EC_KEY_get_enc_flags(const EC_KEY *key); +void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); +point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); +void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); +#define EC_KEY_get_ex_new_index(l,p,newf,dupf,freef) CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EC_KEY, l, p, newf, dupf, freef) +int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg); +void *EC_KEY_get_ex_data(const EC_KEY *key, int idx); +void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); +int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); +int EC_KEY_generate_key(EC_KEY *key); +int EC_KEY_check_key(const EC_KEY *key); +int EC_KEY_can_sign(const EC_KEY *eckey); +int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, + BIGNUM *y); +size_t EC_KEY_key2buf(const EC_KEY *key, point_conversion_form_t form, + unsigned char **pbuf, BN_CTX *ctx); +int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, size_t len, + BN_CTX *ctx); +int EC_KEY_oct2priv(EC_KEY *key, const unsigned char *buf, size_t len); +size_t EC_KEY_priv2oct(const EC_KEY *key, unsigned char *buf, size_t len); +size_t EC_KEY_priv2buf(const EC_KEY *eckey, unsigned char **pbuf); +EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); +int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); +EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); +int i2d_ECParameters(EC_KEY *key, unsigned char **out); +EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); +int i2o_ECPublicKey(const EC_KEY *key, unsigned char **out); +int ECParameters_print(BIO *bp, const EC_KEY *key); +int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); +int ECParameters_print_fp(FILE *fp, const EC_KEY *key); +int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); +const EC_KEY_METHOD *EC_KEY_OpenSSL(void); +const EC_KEY_METHOD *EC_KEY_get_default_method(void); +void EC_KEY_set_default_method(const EC_KEY_METHOD *meth); +const EC_KEY_METHOD *EC_KEY_get_method(const EC_KEY *key); +int EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth); +EC_KEY *EC_KEY_new_method(ENGINE *engine); +int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, + const unsigned char *Z, size_t Zlen, + const unsigned char *sinfo, size_t sinfolen, + const EVP_MD *md); +int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, + const EC_KEY *ecdh, + void *(*KDF) (const void *in, size_t inlen, + void *out, size_t *outlen)); +typedef struct ECDSA_SIG_st ECDSA_SIG; +ECDSA_SIG *ECDSA_SIG_new(void); +void ECDSA_SIG_free(ECDSA_SIG *sig); +int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); +ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); +void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); +const BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig); +const BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig); +int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); +ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, + EC_KEY *eckey); +ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, + const BIGNUM *kinv, const BIGNUM *rp, + EC_KEY *eckey); +int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, + const ECDSA_SIG *sig, EC_KEY *eckey); +int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); +int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, + unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); +int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, + unsigned char *sig, unsigned int *siglen, + const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); +int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, + const unsigned char *sig, int siglen, EC_KEY *eckey); +int ECDSA_size(const EC_KEY *eckey); +EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth); +void EC_KEY_METHOD_free(EC_KEY_METHOD *meth); +void EC_KEY_METHOD_set_init(EC_KEY_METHOD *meth, + int (*init)(EC_KEY *key), + void (*finish)(EC_KEY *key), + int (*copy)(EC_KEY *dest, const EC_KEY *src), + int (*set_group)(EC_KEY *key, const EC_GROUP *grp), + int (*set_private)(EC_KEY *key, + const BIGNUM *priv_key), + int (*set_public)(EC_KEY *key, + const EC_POINT *pub_key)); +void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth, + int (*keygen)(EC_KEY *key)); +void EC_KEY_METHOD_set_compute_key(EC_KEY_METHOD *meth, + int (*ckey)(unsigned char **psec, + size_t *pseclen, + const EC_POINT *pub_key, + const EC_KEY *ecdh)); +void EC_KEY_METHOD_set_sign(EC_KEY_METHOD *meth, + int (*sign)(int type, const unsigned char *dgst, + int dlen, unsigned char *sig, + unsigned int *siglen, + const BIGNUM *kinv, const BIGNUM *r, + EC_KEY *eckey), + int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, + BIGNUM **kinvp, BIGNUM **rp), + ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, + int dgst_len, + const BIGNUM *in_kinv, + const BIGNUM *in_r, + EC_KEY *eckey)); +void EC_KEY_METHOD_set_verify(EC_KEY_METHOD *meth, + int (*verify)(int type, const unsigned + char *dgst, int dgst_len, + const unsigned char *sigbuf, + int sig_len, EC_KEY *eckey), + int (*verify_sig)(const unsigned char *dgst, + int dgst_len, + const ECDSA_SIG *sig, + EC_KEY *eckey)); +void EC_KEY_METHOD_get_init(const EC_KEY_METHOD *meth, + int (**pinit)(EC_KEY *key), + void (**pfinish)(EC_KEY *key), + int (**pcopy)(EC_KEY *dest, const EC_KEY *src), + int (**pset_group)(EC_KEY *key, + const EC_GROUP *grp), + int (**pset_private)(EC_KEY *key, + const BIGNUM *priv_key), + int (**pset_public)(EC_KEY *key, + const EC_POINT *pub_key)); +void EC_KEY_METHOD_get_keygen(const EC_KEY_METHOD *meth, + int (**pkeygen)(EC_KEY *key)); +void EC_KEY_METHOD_get_compute_key(const EC_KEY_METHOD *meth, + int (**pck)(unsigned char **psec, + size_t *pseclen, + const EC_POINT *pub_key, + const EC_KEY *ecdh)); +void EC_KEY_METHOD_get_sign(const EC_KEY_METHOD *meth, + int (**psign)(int type, const unsigned char *dgst, + int dlen, unsigned char *sig, + unsigned int *siglen, + const BIGNUM *kinv, const BIGNUM *r, + EC_KEY *eckey), + int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, + BIGNUM **kinvp, BIGNUM **rp), + ECDSA_SIG *(**psign_sig)(const unsigned char *dgst, + int dgst_len, + const BIGNUM *in_kinv, + const BIGNUM *in_r, + EC_KEY *eckey)); +void EC_KEY_METHOD_get_verify(const EC_KEY_METHOD *meth, + int (**pverify)(int type, const unsigned + char *dgst, int dgst_len, + const unsigned char *sigbuf, + int sig_len, EC_KEY *eckey), + int (**pverify_sig)(const unsigned char *dgst, + int dgst_len, + const ECDSA_SIG *sig, + EC_KEY *eckey)); +#define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x) +#define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx,nid) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL) +#define EVP_PKEY_CTX_set_ec_param_enc(ctx,flag) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_EC_PARAM_ENC, flag, NULL) +#define EVP_PKEY_CTX_set_ecdh_cofactor_mode(ctx,flag) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_EC_ECDH_COFACTOR, flag, NULL) +#define EVP_PKEY_CTX_get_ecdh_cofactor_mode(ctx) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_EC_ECDH_COFACTOR, -2, NULL) +#define EVP_PKEY_CTX_set_ecdh_kdf_type(ctx,kdf) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_EC_KDF_TYPE, kdf, NULL) +#define EVP_PKEY_CTX_get_ecdh_kdf_type(ctx) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_EC_KDF_TYPE, -2, NULL) +#define EVP_PKEY_CTX_set_ecdh_kdf_md(ctx,md) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_EC_KDF_MD, 0, (void *)(md)) +#define EVP_PKEY_CTX_get_ecdh_kdf_md(ctx,pmd) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_GET_EC_KDF_MD, 0, (void *)(pmd)) +#define EVP_PKEY_CTX_set_ecdh_kdf_outlen(ctx,len) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_EC_KDF_OUTLEN, len, NULL) +#define EVP_PKEY_CTX_get_ecdh_kdf_outlen(ctx,plen) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN, 0, (void *)(plen)) +#define EVP_PKEY_CTX_set0_ecdh_kdf_ukm(ctx,p,plen) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_EC_KDF_UKM, plen, (void *)(p)) +#define EVP_PKEY_CTX_get0_ecdh_kdf_ukm(ctx,p) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_DERIVE, EVP_PKEY_CTRL_GET_EC_KDF_UKM, 0, (void *)(p)) +#define EVP_PKEY_CTX_set1_id(ctx,id,id_len) EVP_PKEY_CTX_ctrl(ctx, -1, -1, EVP_PKEY_CTRL_SET1_ID, (int)id_len, (void*)(id)) +#define EVP_PKEY_CTX_get1_id(ctx,id) EVP_PKEY_CTX_ctrl(ctx, -1, -1, EVP_PKEY_CTRL_GET1_ID, 0, (void*)(id)) +#define EVP_PKEY_CTX_get1_id_len(ctx,id_len) EVP_PKEY_CTX_ctrl(ctx, -1, -1, EVP_PKEY_CTRL_GET1_ID_LEN, 0, (void*)(id_len)) +enum { + EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID = (EVP_PKEY_ALG_CTRL + 1), + EVP_PKEY_CTRL_EC_PARAM_ENC = (EVP_PKEY_ALG_CTRL + 2), + EVP_PKEY_CTRL_EC_ECDH_COFACTOR = (EVP_PKEY_ALG_CTRL + 3), + EVP_PKEY_CTRL_EC_KDF_TYPE = (EVP_PKEY_ALG_CTRL + 4), + EVP_PKEY_CTRL_EC_KDF_MD = (EVP_PKEY_ALG_CTRL + 5), + EVP_PKEY_CTRL_GET_EC_KDF_MD = (EVP_PKEY_ALG_CTRL + 6), + EVP_PKEY_CTRL_EC_KDF_OUTLEN = (EVP_PKEY_ALG_CTRL + 7), + EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN = (EVP_PKEY_ALG_CTRL + 8), + EVP_PKEY_CTRL_EC_KDF_UKM = (EVP_PKEY_ALG_CTRL + 9), + EVP_PKEY_CTRL_GET_EC_KDF_UKM = (EVP_PKEY_ALG_CTRL + 10), + EVP_PKEY_CTRL_SET1_ID = (EVP_PKEY_ALG_CTRL + 11), + EVP_PKEY_CTRL_GET1_ID = (EVP_PKEY_ALG_CTRL + 12), + EVP_PKEY_CTRL_GET1_ID_LEN = (EVP_PKEY_ALG_CTRL + 13), + EVP_PKEY_ECDH_KDF_NONE = 1, + EVP_PKEY_ECDH_KDF_X9_63 = 2, + EVP_PKEY_ECDH_KDF_X9_62 = EVP_PKEY_ECDH_KDF_X9_63, +}; + +// csrc/openssl/src/include/openssl/ecerr.h +int ERR_load_EC_strings(void); +enum { + EC_F_BN_TO_FELEM = 224, + EC_F_D2I_ECPARAMETERS = 144, + EC_F_D2I_ECPKPARAMETERS = 145, + EC_F_D2I_ECPRIVATEKEY = 146, + EC_F_DO_EC_KEY_PRINT = 221, + EC_F_ECDH_CMS_DECRYPT = 238, + EC_F_ECDH_CMS_SET_SHARED_INFO = 239, + EC_F_ECDH_COMPUTE_KEY = 246, + EC_F_ECDH_SIMPLE_COMPUTE_KEY = 257, + EC_F_ECDSA_DO_SIGN_EX = 251, + EC_F_ECDSA_DO_VERIFY = 252, + EC_F_ECDSA_SIGN_EX = 254, + EC_F_ECDSA_SIGN_SETUP = 248, + EC_F_ECDSA_SIG_NEW = 265, + EC_F_ECDSA_VERIFY = 253, + EC_F_ECD_ITEM_VERIFY = 270, + EC_F_ECKEY_PARAM2TYPE = 223, + EC_F_ECKEY_PARAM_DECODE = 212, + EC_F_ECKEY_PRIV_DECODE = 213, + EC_F_ECKEY_PRIV_ENCODE = 214, + EC_F_ECKEY_PUB_DECODE = 215, + EC_F_ECKEY_PUB_ENCODE = 216, + EC_F_ECKEY_TYPE2PARAM = 220, + EC_F_ECPARAMETERS_PRINT = 147, + EC_F_ECPARAMETERS_PRINT_FP = 148, + EC_F_ECPKPARAMETERS_PRINT = 149, + EC_F_ECPKPARAMETERS_PRINT_FP = 150, + EC_F_ECP_NISTZ256_GET_AFFINE = 240, + EC_F_ECP_NISTZ256_INV_MOD_ORD = 275, + EC_F_ECP_NISTZ256_MULT_PRECOMPUTE = 243, + EC_F_ECP_NISTZ256_POINTS_MUL = 241, + EC_F_ECP_NISTZ256_PRE_COMP_NEW = 244, + EC_F_ECP_NISTZ256_WINDOWED_MUL = 242, + EC_F_ECX_KEY_OP = 266, + EC_F_ECX_PRIV_ENCODE = 267, + EC_F_ECX_PUB_ENCODE = 268, + EC_F_EC_ASN1_GROUP2CURVE = 153, + EC_F_EC_ASN1_GROUP2FIELDID = 154, + EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY = 208, + EC_F_EC_GF2M_SIMPLE_FIELD_INV = 296, + EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT = 159, + EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE = 195, + EC_F_EC_GF2M_SIMPLE_LADDER_POST = 285, + EC_F_EC_GF2M_SIMPLE_LADDER_PRE = 288, + EC_F_EC_GF2M_SIMPLE_OCT2POINT = 160, + EC_F_EC_GF2M_SIMPLE_POINT2OCT = 161, + EC_F_EC_GF2M_SIMPLE_POINTS_MUL = 289, + EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES = 162, + EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES = 163, + EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES = 164, + EC_F_EC_GFP_MONT_FIELD_DECODE = 133, + EC_F_EC_GFP_MONT_FIELD_ENCODE = 134, + EC_F_EC_GFP_MONT_FIELD_INV = 297, + EC_F_EC_GFP_MONT_FIELD_MUL = 131, + EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE = 209, + EC_F_EC_GFP_MONT_FIELD_SQR = 132, + EC_F_EC_GFP_MONT_GROUP_SET_CURVE = 189, + EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE = 225, + EC_F_EC_GFP_NISTP224_POINTS_MUL = 228, + EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES = 226, + EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE = 230, + EC_F_EC_GFP_NISTP256_POINTS_MUL = 231, + EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES = 232, + EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE = 233, + EC_F_EC_GFP_NISTP521_POINTS_MUL = 234, + EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES = 235, + EC_F_EC_GFP_NIST_FIELD_MUL = 200, + EC_F_EC_GFP_NIST_FIELD_SQR = 201, + EC_F_EC_GFP_NIST_GROUP_SET_CURVE = 202, + EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES = 287, + EC_F_EC_GFP_SIMPLE_FIELD_INV = 298, + EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT = 165, + EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE = 166, + EC_F_EC_GFP_SIMPLE_MAKE_AFFINE = 102, + EC_F_EC_GFP_SIMPLE_OCT2POINT = 103, + EC_F_EC_GFP_SIMPLE_POINT2OCT = 104, + EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE = 137, + EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES = 167, + EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES = 168, + EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES = 169, + EC_F_EC_GROUP_CHECK = 170, + EC_F_EC_GROUP_CHECK_DISCRIMINANT = 171, + EC_F_EC_GROUP_COPY = 106, + EC_F_EC_GROUP_GET_CURVE = 291, + EC_F_EC_GROUP_GET_CURVE_GF2M = 172, + EC_F_EC_GROUP_GET_CURVE_GFP = 130, + EC_F_EC_GROUP_GET_DEGREE = 173, + EC_F_EC_GROUP_GET_ECPARAMETERS = 261, + EC_F_EC_GROUP_GET_ECPKPARAMETERS = 262, + EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS = 193, + EC_F_EC_GROUP_GET_TRINOMIAL_BASIS = 194, + EC_F_EC_GROUP_NEW = 108, + EC_F_EC_GROUP_NEW_BY_CURVE_NAME = 174, + EC_F_EC_GROUP_NEW_FROM_DATA = 175, + EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS = 263, + EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS = 264, + EC_F_EC_GROUP_SET_CURVE = 292, + EC_F_EC_GROUP_SET_CURVE_GF2M = 176, + EC_F_EC_GROUP_SET_CURVE_GFP = 109, + EC_F_EC_GROUP_SET_GENERATOR = 111, + EC_F_EC_GROUP_SET_SEED = 286, + EC_F_EC_KEY_CHECK_KEY = 177, + EC_F_EC_KEY_COPY = 178, + EC_F_EC_KEY_GENERATE_KEY = 179, + EC_F_EC_KEY_NEW = 182, + EC_F_EC_KEY_NEW_METHOD = 245, + EC_F_EC_KEY_OCT2PRIV = 255, + EC_F_EC_KEY_PRINT = 180, + EC_F_EC_KEY_PRINT_FP = 181, + EC_F_EC_KEY_PRIV2BUF = 279, + EC_F_EC_KEY_PRIV2OCT = 256, + EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES = 229, + EC_F_EC_KEY_SIMPLE_CHECK_KEY = 258, + EC_F_EC_KEY_SIMPLE_OCT2PRIV = 259, + EC_F_EC_KEY_SIMPLE_PRIV2OCT = 260, + EC_F_EC_PKEY_CHECK = 273, + EC_F_EC_PKEY_PARAM_CHECK = 274, + EC_F_EC_POINTS_MAKE_AFFINE = 136, + EC_F_EC_POINTS_MUL = 290, + EC_F_EC_POINT_ADD = 112, + EC_F_EC_POINT_BN2POINT = 280, + EC_F_EC_POINT_CMP = 113, + EC_F_EC_POINT_COPY = 114, + EC_F_EC_POINT_DBL = 115, + EC_F_EC_POINT_GET_AFFINE_COORDINATES = 293, + EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M = 183, + EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP = 116, + EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP = 117, + EC_F_EC_POINT_INVERT = 210, + EC_F_EC_POINT_IS_AT_INFINITY = 118, + EC_F_EC_POINT_IS_ON_CURVE = 119, + EC_F_EC_POINT_MAKE_AFFINE = 120, + EC_F_EC_POINT_NEW = 121, + EC_F_EC_POINT_OCT2POINT = 122, + EC_F_EC_POINT_POINT2BUF = 281, + EC_F_EC_POINT_POINT2OCT = 123, + EC_F_EC_POINT_SET_AFFINE_COORDINATES = 294, + EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M = 185, + EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP = 124, + EC_F_EC_POINT_SET_COMPRESSED_COORDINATES = 295, + EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M = 186, + EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP = 125, + EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP = 126, + EC_F_EC_POINT_SET_TO_INFINITY = 127, + EC_F_EC_PRE_COMP_NEW = 196, + EC_F_EC_SCALAR_MUL_LADDER = 284, + EC_F_EC_WNAF_MUL = 187, + EC_F_EC_WNAF_PRECOMPUTE_MULT = 188, + EC_F_I2D_ECPARAMETERS = 190, + EC_F_I2D_ECPKPARAMETERS = 191, + EC_F_I2D_ECPRIVATEKEY = 192, + EC_F_I2O_ECPUBLICKEY = 151, + EC_F_NISTP224_PRE_COMP_NEW = 227, + EC_F_NISTP256_PRE_COMP_NEW = 236, + EC_F_NISTP521_PRE_COMP_NEW = 237, + EC_F_O2I_ECPUBLICKEY = 152, + EC_F_OLD_EC_PRIV_DECODE = 222, + EC_F_OSSL_ECDH_COMPUTE_KEY = 247, + EC_F_OSSL_ECDSA_SIGN_SIG = 249, + EC_F_OSSL_ECDSA_VERIFY_SIG = 250, + EC_F_PKEY_ECD_CTRL = 271, + EC_F_PKEY_ECD_DIGESTSIGN = 272, + EC_F_PKEY_ECD_DIGESTSIGN25519 = 276, + EC_F_PKEY_ECD_DIGESTSIGN448 = 277, + EC_F_PKEY_ECX_DERIVE = 269, + EC_F_PKEY_EC_CTRL = 197, + EC_F_PKEY_EC_CTRL_STR = 198, + EC_F_PKEY_EC_DERIVE = 217, + EC_F_PKEY_EC_INIT = 282, + EC_F_PKEY_EC_KDF_DERIVE = 283, + EC_F_PKEY_EC_KEYGEN = 199, + EC_F_PKEY_EC_PARAMGEN = 219, + EC_F_PKEY_EC_SIGN = 218, + EC_F_VALIDATE_ECX_DERIVE = 278, + EC_R_ASN1_ERROR = 115, + EC_R_BAD_SIGNATURE = 156, + EC_R_BIGNUM_OUT_OF_RANGE = 144, + EC_R_BUFFER_TOO_SMALL = 100, + EC_R_CANNOT_INVERT = 165, + EC_R_COORDINATES_OUT_OF_RANGE = 146, + EC_R_CURVE_DOES_NOT_SUPPORT_ECDH = 160, + EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING = 159, + EC_R_D2I_ECPKPARAMETERS_FAILURE = 117, + EC_R_DECODE_ERROR = 142, + EC_R_DISCRIMINANT_IS_ZERO = 118, + EC_R_EC_GROUP_NEW_BY_NAME_FAILURE = 119, + EC_R_FIELD_TOO_LARGE = 143, + EC_R_GF2M_NOT_SUPPORTED = 147, + EC_R_GROUP2PKPARAMETERS_FAILURE = 120, + EC_R_I2D_ECPKPARAMETERS_FAILURE = 121, + EC_R_INCOMPATIBLE_OBJECTS = 101, + EC_R_INVALID_ARGUMENT = 112, + EC_R_INVALID_COMPRESSED_POINT = 110, + EC_R_INVALID_COMPRESSION_BIT = 109, + EC_R_INVALID_CURVE = 141, + EC_R_INVALID_DIGEST = 151, + EC_R_INVALID_DIGEST_TYPE = 138, + EC_R_INVALID_ENCODING = 102, + EC_R_INVALID_FIELD = 103, + EC_R_INVALID_FORM = 104, + EC_R_INVALID_GROUP_ORDER = 122, + EC_R_INVALID_KEY = 116, + EC_R_INVALID_OUTPUT_LENGTH = 161, + EC_R_INVALID_PEER_KEY = 133, + EC_R_INVALID_PENTANOMIAL_BASIS = 132, + EC_R_INVALID_PRIVATE_KEY = 123, + EC_R_INVALID_TRINOMIAL_BASIS = 137, + EC_R_KDF_PARAMETER_ERROR = 148, + EC_R_KEYS_NOT_SET = 140, + EC_R_LADDER_POST_FAILURE = 136, + EC_R_LADDER_PRE_FAILURE = 153, + EC_R_LADDER_STEP_FAILURE = 162, + EC_R_MISSING_PARAMETERS = 124, + EC_R_MISSING_PRIVATE_KEY = 125, + EC_R_NEED_NEW_SETUP_VALUES = 157, + EC_R_NOT_A_NIST_PRIME = 135, + EC_R_NOT_IMPLEMENTED = 126, + EC_R_NOT_INITIALIZED = 111, + EC_R_NO_PARAMETERS_SET = 139, + EC_R_NO_PRIVATE_VALUE = 154, + EC_R_OPERATION_NOT_SUPPORTED = 152, + EC_R_PASSED_NULL_PARAMETER = 134, + EC_R_PEER_KEY_ERROR = 149, + EC_R_PKPARAMETERS2GROUP_FAILURE = 127, + EC_R_POINT_ARITHMETIC_FAILURE = 155, + EC_R_POINT_AT_INFINITY = 106, + EC_R_POINT_COORDINATES_BLIND_FAILURE = 163, + EC_R_POINT_IS_NOT_ON_CURVE = 107, + EC_R_RANDOM_NUMBER_GENERATION_FAILED = 158, + EC_R_SHARED_INFO_ERROR = 150, + EC_R_SLOT_FULL = 108, + EC_R_UNDEFINED_GENERATOR = 113, + EC_R_UNDEFINED_ORDER = 128, + EC_R_UNKNOWN_COFACTOR = 164, + EC_R_UNKNOWN_GROUP = 129, + EC_R_UNKNOWN_ORDER = 114, + EC_R_UNSUPPORTED_FIELD = 131, + EC_R_WRONG_CURVE_PARAMETERS = 145, + EC_R_WRONG_ORDER = 130, +}; diff --git a/libcrypto_engine.lua b/libcrypto_engine.lua new file mode 100644 index 0000000..f26912c --- /dev/null +++ b/libcrypto_engine.lua @@ -0,0 +1,12 @@ + +require'libcrypto_engine_h' +local M = require'libcrypto' +local C = M.C + +function M.ENGINE_load_openssl() return C.OPENSSL_init_crypto(C.OPENSSL_INIT_ENGINE_OPENSSL, nil) end +function M.ENGINE_load_dynamic() return C.OPENSSL_init_crypto(C.OPENSSL_INIT_ENGINE_DYNAMIC, nil) end +function M.ENGINE_load_cryptodev() return C.OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CRYPTODEV, nil) end +function M.ENGINE_load_rdrand() return C.OPENSSL_init_crypto(C.OPENSSL_INIT_ENGINE_RDRAND, nil) end +function M.ENGINE_get_ex_new_index(...) return C.CRYPTO_get_ex_new_index(...) end + +return M diff --git a/libcrypto_engine_h.lua b/libcrypto_engine_h.lua new file mode 100644 index 0000000..57d3b1d --- /dev/null +++ b/libcrypto_engine_h.lua @@ -0,0 +1,307 @@ +local ffi = require'ffi' --engine.h, engineerr.h +require'libcrypto_types_h' +ffi.cdef[[ +// engine.h +enum { + ENGINE_METHOD_RSA = (unsigned int)0x0001, + ENGINE_METHOD_DSA = (unsigned int)0x0002, + ENGINE_METHOD_DH = (unsigned int)0x0004, + ENGINE_METHOD_RAND = (unsigned int)0x0008, + ENGINE_METHOD_CIPHERS = (unsigned int)0x0040, + ENGINE_METHOD_DIGESTS = (unsigned int)0x0080, + ENGINE_METHOD_PKEY_METHS = (unsigned int)0x0200, + ENGINE_METHOD_PKEY_ASN1_METHS = (unsigned int)0x0400, + ENGINE_METHOD_EC = (unsigned int)0x0800, + ENGINE_METHOD_ALL = (unsigned int)0xFFFF, + ENGINE_METHOD_NONE = (unsigned int)0x0000, + ENGINE_TABLE_FLAG_NOINIT = (unsigned int)0x0001, + ENGINE_FLAGS_MANUAL_CMD_CTRL = (int)0x0002, + ENGINE_FLAGS_BY_ID_COPY = (int)0x0004, + ENGINE_FLAGS_NO_REGISTER_ALL = (int)0x0008, + ENGINE_CMD_FLAG_NUMERIC = (unsigned int)0x0001, + ENGINE_CMD_FLAG_STRING = (unsigned int)0x0002, + ENGINE_CMD_FLAG_NO_INPUT = (unsigned int)0x0004, + ENGINE_CMD_FLAG_INTERNAL = (unsigned int)0x0008, + ENGINE_CTRL_SET_LOGSTREAM = 1, + ENGINE_CTRL_SET_PASSWORD_CALLBACK = 2, + ENGINE_CTRL_HUP = 3, + ENGINE_CTRL_SET_USER_INTERFACE = 4, + ENGINE_CTRL_SET_CALLBACK_DATA = 5, + ENGINE_CTRL_LOAD_CONFIGURATION = 6, + ENGINE_CTRL_LOAD_SECTION = 7, + ENGINE_CTRL_HAS_CTRL_FUNCTION = 10, + ENGINE_CTRL_GET_FIRST_CMD_TYPE = 11, + ENGINE_CTRL_GET_NEXT_CMD_TYPE = 12, + ENGINE_CTRL_GET_CMD_FROM_NAME = 13, + ENGINE_CTRL_GET_NAME_LEN_FROM_CMD = 14, + ENGINE_CTRL_GET_NAME_FROM_CMD = 15, + ENGINE_CTRL_GET_DESC_LEN_FROM_CMD = 16, + ENGINE_CTRL_GET_DESC_FROM_CMD = 17, + ENGINE_CTRL_GET_CMD_FLAGS = 18, + ENGINE_CMD_BASE = 200, + ENGINE_CTRL_CHIL_SET_FORKCHECK = 100, + ENGINE_CTRL_CHIL_NO_LOCKING = 101, +}; +typedef struct ENGINE_CMD_DEFN_st { + unsigned int cmd_num; + const char *cmd_name; + const char *cmd_desc; + unsigned int cmd_flags; +} ENGINE_CMD_DEFN; +typedef int (*ENGINE_GEN_FUNC_PTR) (void); +typedef int (*ENGINE_GEN_INT_FUNC_PTR) (ENGINE *); +typedef int (*ENGINE_CTRL_FUNC_PTR) (ENGINE *, int, long, void *, + void (*f) (void)); +typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, + UI_METHOD *ui_method, + void *callback_data); +typedef int (*ENGINE_SSL_CLIENT_CERT_PTR) (ENGINE *, SSL *ssl, + struct stack_st_X509_NAME *ca_dn, + X509 **pcert, EVP_PKEY **pkey, + struct stack_st_X509 **pother, + UI_METHOD *ui_method, + void *callback_data); +typedef int (*ENGINE_CIPHERS_PTR) (ENGINE *, const EVP_CIPHER **, + const int **, int); +typedef int (*ENGINE_DIGESTS_PTR) (ENGINE *, const EVP_MD **, const int **, + int); +typedef int (*ENGINE_PKEY_METHS_PTR) (ENGINE *, EVP_PKEY_METHOD **, + const int **, int); +typedef int (*ENGINE_PKEY_ASN1_METHS_PTR) (ENGINE *, EVP_PKEY_ASN1_METHOD **, + const int **, int); +ENGINE *ENGINE_get_first(void); +ENGINE *ENGINE_get_last(void); +ENGINE *ENGINE_get_next(ENGINE *e); +ENGINE *ENGINE_get_prev(ENGINE *e); +int ENGINE_add(ENGINE *e); +int ENGINE_remove(ENGINE *e); +ENGINE *ENGINE_by_id(const char *id); +void ENGINE_load_builtin_engines(void); +unsigned int ENGINE_get_table_flags(void); +void ENGINE_set_table_flags(unsigned int flags); +int ENGINE_register_RSA(ENGINE *e); +void ENGINE_unregister_RSA(ENGINE *e); +void ENGINE_register_all_RSA(void); +int ENGINE_register_DSA(ENGINE *e); +void ENGINE_unregister_DSA(ENGINE *e); +void ENGINE_register_all_DSA(void); +int ENGINE_register_EC(ENGINE *e); +void ENGINE_unregister_EC(ENGINE *e); +void ENGINE_register_all_EC(void); +int ENGINE_register_DH(ENGINE *e); +void ENGINE_unregister_DH(ENGINE *e); +void ENGINE_register_all_DH(void); +int ENGINE_register_RAND(ENGINE *e); +void ENGINE_unregister_RAND(ENGINE *e); +void ENGINE_register_all_RAND(void); +int ENGINE_register_ciphers(ENGINE *e); +void ENGINE_unregister_ciphers(ENGINE *e); +void ENGINE_register_all_ciphers(void); +int ENGINE_register_digests(ENGINE *e); +void ENGINE_unregister_digests(ENGINE *e); +void ENGINE_register_all_digests(void); +int ENGINE_register_pkey_meths(ENGINE *e); +void ENGINE_unregister_pkey_meths(ENGINE *e); +void ENGINE_register_all_pkey_meths(void); +int ENGINE_register_pkey_asn1_meths(ENGINE *e); +void ENGINE_unregister_pkey_asn1_meths(ENGINE *e); +void ENGINE_register_all_pkey_asn1_meths(void); +int ENGINE_register_complete(ENGINE *e); +int ENGINE_register_all_complete(void); +int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void)); +int ENGINE_cmd_is_executable(ENGINE *e, int cmd); +int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, + long i, void *p, void (*f) (void), int cmd_optional); +int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, + int cmd_optional); +ENGINE *ENGINE_new(void); +int ENGINE_free(ENGINE *e); +int ENGINE_up_ref(ENGINE *e); +int ENGINE_set_id(ENGINE *e, const char *id); +int ENGINE_set_name(ENGINE *e, const char *name); +int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); +int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); +int ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ecdsa_meth); +int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth); +int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth); +int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f); +int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f); +int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f); +int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); +int ENGINE_set_load_privkey_function(ENGINE *e, + ENGINE_LOAD_KEY_PTR loadpriv_f); +int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); +int ENGINE_set_load_ssl_client_cert_function(ENGINE *e, + ENGINE_SSL_CLIENT_CERT_PTR + loadssl_f); +int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); +int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); +int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f); +int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f); +int ENGINE_set_flags(ENGINE *e, int flags); +int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns); +int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); +void *ENGINE_get_ex_data(const ENGINE *e, int idx); +const char *ENGINE_get_id(const ENGINE *e); +const char *ENGINE_get_name(const ENGINE *e); +const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e); +const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e); +const EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e); +const DH_METHOD *ENGINE_get_DH(const ENGINE *e); +const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e); +ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e); +ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e); +ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e); +ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); +ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); +ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); +ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE + *e); +ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); +ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); +ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e); +ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e); +const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); +const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid); +const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid); +const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid); +const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e, + const char *str, + int len); +const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe, + const char *str, + int len); +const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e); +int ENGINE_get_flags(const ENGINE *e); +int ENGINE_init(ENGINE *e); +int ENGINE_finish(ENGINE *e); +EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, + UI_METHOD *ui_method, void *callback_data); +EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, + UI_METHOD *ui_method, void *callback_data); +int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, + struct stack_st_X509_NAME *ca_dn, X509 **pcert, + EVP_PKEY **ppkey, struct stack_st_X509 **pother, + UI_METHOD *ui_method, void *callback_data); +ENGINE *ENGINE_get_default_RSA(void); +ENGINE *ENGINE_get_default_DSA(void); +ENGINE *ENGINE_get_default_EC(void); +ENGINE *ENGINE_get_default_DH(void); +ENGINE *ENGINE_get_default_RAND(void); +ENGINE *ENGINE_get_cipher_engine(int nid); +ENGINE *ENGINE_get_digest_engine(int nid); +ENGINE *ENGINE_get_pkey_meth_engine(int nid); +ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid); +int ENGINE_set_default_RSA(ENGINE *e); +int ENGINE_set_default_string(ENGINE *e, const char *def_list); +int ENGINE_set_default_DSA(ENGINE *e); +int ENGINE_set_default_EC(ENGINE *e); +int ENGINE_set_default_DH(ENGINE *e); +int ENGINE_set_default_RAND(ENGINE *e); +int ENGINE_set_default_ciphers(ENGINE *e); +int ENGINE_set_default_digests(ENGINE *e); +int ENGINE_set_default_pkey_meths(ENGINE *e); +int ENGINE_set_default_pkey_asn1_meths(ENGINE *e); +int ENGINE_set_default(ENGINE *e, unsigned int flags); +void ENGINE_add_conf_module(void); +enum { + OSSL_DYNAMIC_VERSION = (unsigned long)0x00030000, + OSSL_DYNAMIC_OLDEST = (unsigned long)0x00030000, +}; +typedef void *(*dyn_MEM_malloc_fn) (size_t, const char *, int); +typedef void *(*dyn_MEM_realloc_fn) (void *, size_t, const char *, int); +typedef void (*dyn_MEM_free_fn) (void *, const char *, int); +typedef struct st_dynamic_MEM_fns { + dyn_MEM_malloc_fn malloc_fn; + dyn_MEM_realloc_fn realloc_fn; + dyn_MEM_free_fn free_fn; +} dynamic_MEM_fns; +typedef struct st_dynamic_fns { + void *static_state; + dynamic_MEM_fns mem_fns; +} dynamic_fns; +typedef unsigned long (*dynamic_v_check_fn) (unsigned long ossl_version); +typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, + const dynamic_fns *fns); +void *ENGINE_get_static_state(void); + +// engineerr.h +int ERR_load_ENGINE_strings(void); +enum { + ENGINE_F_DIGEST_UPDATE = 198, + ENGINE_F_DYNAMIC_CTRL = 180, + ENGINE_F_DYNAMIC_GET_DATA_CTX = 181, + ENGINE_F_DYNAMIC_LOAD = 182, + ENGINE_F_DYNAMIC_SET_DATA_CTX = 183, + ENGINE_F_ENGINE_ADD = 105, + ENGINE_F_ENGINE_BY_ID = 106, + ENGINE_F_ENGINE_CMD_IS_EXECUTABLE = 170, + ENGINE_F_ENGINE_CTRL = 142, + ENGINE_F_ENGINE_CTRL_CMD = 178, + ENGINE_F_ENGINE_CTRL_CMD_STRING = 171, + ENGINE_F_ENGINE_FINISH = 107, + ENGINE_F_ENGINE_GET_CIPHER = 185, + ENGINE_F_ENGINE_GET_DIGEST = 186, + ENGINE_F_ENGINE_GET_FIRST = 195, + ENGINE_F_ENGINE_GET_LAST = 196, + ENGINE_F_ENGINE_GET_NEXT = 115, + ENGINE_F_ENGINE_GET_PKEY_ASN1_METH = 193, + ENGINE_F_ENGINE_GET_PKEY_METH = 192, + ENGINE_F_ENGINE_GET_PREV = 116, + ENGINE_F_ENGINE_INIT = 119, + ENGINE_F_ENGINE_LIST_ADD = 120, + ENGINE_F_ENGINE_LIST_REMOVE = 121, + ENGINE_F_ENGINE_LOAD_PRIVATE_KEY = 150, + ENGINE_F_ENGINE_LOAD_PUBLIC_KEY = 151, + ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT = 194, + ENGINE_F_ENGINE_NEW = 122, + ENGINE_F_ENGINE_PKEY_ASN1_FIND_STR = 197, + ENGINE_F_ENGINE_REMOVE = 123, + ENGINE_F_ENGINE_SET_DEFAULT_STRING = 189, + ENGINE_F_ENGINE_SET_ID = 129, + ENGINE_F_ENGINE_SET_NAME = 130, + ENGINE_F_ENGINE_TABLE_REGISTER = 184, + ENGINE_F_ENGINE_UNLOCKED_FINISH = 191, + ENGINE_F_ENGINE_UP_REF = 190, + ENGINE_F_INT_CLEANUP_ITEM = 199, + ENGINE_F_INT_CTRL_HELPER = 172, + ENGINE_F_INT_ENGINE_CONFIGURE = 188, + ENGINE_F_INT_ENGINE_MODULE_INIT = 187, + ENGINE_F_OSSL_HMAC_INIT = 200, + ENGINE_R_ALREADY_LOADED = 100, + ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER = 133, + ENGINE_R_CMD_NOT_EXECUTABLE = 134, + ENGINE_R_COMMAND_TAKES_INPUT = 135, + ENGINE_R_COMMAND_TAKES_NO_INPUT = 136, + ENGINE_R_CONFLICTING_ENGINE_ID = 103, + ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED = 119, + ENGINE_R_DSO_FAILURE = 104, + ENGINE_R_DSO_NOT_FOUND = 132, + ENGINE_R_ENGINES_SECTION_ERROR = 148, + ENGINE_R_ENGINE_CONFIGURATION_ERROR = 102, + ENGINE_R_ENGINE_IS_NOT_IN_LIST = 105, + ENGINE_R_ENGINE_SECTION_ERROR = 149, + ENGINE_R_FAILED_LOADING_PRIVATE_KEY = 128, + ENGINE_R_FAILED_LOADING_PUBLIC_KEY = 129, + ENGINE_R_FINISH_FAILED = 106, + ENGINE_R_ID_OR_NAME_MISSING = 108, + ENGINE_R_INIT_FAILED = 109, + ENGINE_R_INTERNAL_LIST_ERROR = 110, + ENGINE_R_INVALID_ARGUMENT = 143, + ENGINE_R_INVALID_CMD_NAME = 137, + ENGINE_R_INVALID_CMD_NUMBER = 138, + ENGINE_R_INVALID_INIT_VALUE = 151, + ENGINE_R_INVALID_STRING = 150, + ENGINE_R_NOT_INITIALISED = 117, + ENGINE_R_NOT_LOADED = 112, + ENGINE_R_NO_CONTROL_FUNCTION = 120, + ENGINE_R_NO_INDEX = 144, + ENGINE_R_NO_LOAD_FUNCTION = 125, + ENGINE_R_NO_REFERENCE = 130, + ENGINE_R_NO_SUCH_ENGINE = 116, + ENGINE_R_UNIMPLEMENTED_CIPHER = 146, + ENGINE_R_UNIMPLEMENTED_DIGEST = 147, + ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD = 101, + ENGINE_R_VERSION_INCOMPATIBILITY = 145, +}; +]] diff --git a/libcrypto_err_h.lua b/libcrypto_err_h.lua new file mode 100644 index 0000000..bd08c8c --- /dev/null +++ b/libcrypto_err_h.lua @@ -0,0 +1,200 @@ +// csrc/openssl/src/include/openssl/err.h +#define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,d,e) +enum { + ERR_TXT_MALLOCED = 0x01, + ERR_TXT_STRING = 0x02, + ERR_FLAG_MARK = 0x01, + ERR_FLAG_CLEAR = 0x02, + ERR_NUM_ERRORS = 16, +}; +typedef struct err_state_st { + int err_flags[16]; + unsigned long err_buffer[16]; + char *err_data[16]; + int err_data_flags[16]; + const char *err_file[16]; + int err_line[16]; + int top, bottom; +} ERR_STATE; +enum { + ERR_LIB_NONE = 1, + ERR_LIB_SYS = 2, + ERR_LIB_BN = 3, + ERR_LIB_RSA = 4, + ERR_LIB_DH = 5, + ERR_LIB_EVP = 6, + ERR_LIB_BUF = 7, + ERR_LIB_OBJ = 8, + ERR_LIB_PEM = 9, + ERR_LIB_DSA = 10, + ERR_LIB_X509 = 11, + ERR_LIB_ASN1 = 13, + ERR_LIB_CONF = 14, + ERR_LIB_CRYPTO = 15, + ERR_LIB_EC = 16, + ERR_LIB_SSL = 20, + ERR_LIB_BIO = 32, + ERR_LIB_PKCS7 = 33, + ERR_LIB_X509V3 = 34, + ERR_LIB_PKCS12 = 35, + ERR_LIB_RAND = 36, + ERR_LIB_DSO = 37, + ERR_LIB_ENGINE = 38, + ERR_LIB_OCSP = 39, + ERR_LIB_UI = 40, + ERR_LIB_COMP = 41, + ERR_LIB_ECDSA = 42, + ERR_LIB_ECDH = 43, + ERR_LIB_OSSL_STORE = 44, + ERR_LIB_FIPS = 45, + ERR_LIB_CMS = 46, + ERR_LIB_TS = 47, + ERR_LIB_HMAC = 48, + ERR_LIB_CT = 50, + ERR_LIB_ASYNC = 51, + ERR_LIB_KDF = 52, + ERR_LIB_SM2 = 53, + ERR_LIB_USER = 128, +}; +#define SYSerr(f,r) ERR_PUT_error(ERR_LIB_SYS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define BNerr(f,r) ERR_PUT_error(ERR_LIB_BN,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define RSAerr(f,r) ERR_PUT_error(ERR_LIB_RSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define DHerr(f,r) ERR_PUT_error(ERR_LIB_DH,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define EVPerr(f,r) ERR_PUT_error(ERR_LIB_EVP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define BUFerr(f,r) ERR_PUT_error(ERR_LIB_BUF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define OBJerr(f,r) ERR_PUT_error(ERR_LIB_OBJ,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define PEMerr(f,r) ERR_PUT_error(ERR_LIB_PEM,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define DSAerr(f,r) ERR_PUT_error(ERR_LIB_DSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define X509err(f,r) ERR_PUT_error(ERR_LIB_X509,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define ASN1err(f,r) ERR_PUT_error(ERR_LIB_ASN1,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define CONFerr(f,r) ERR_PUT_error(ERR_LIB_CONF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define CRYPTOerr(f,r) ERR_PUT_error(ERR_LIB_CRYPTO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define ECerr(f,r) ERR_PUT_error(ERR_LIB_EC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define SSLerr(f,r) ERR_PUT_error(ERR_LIB_SSL,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define BIOerr(f,r) ERR_PUT_error(ERR_LIB_BIO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define PKCS7err(f,r) ERR_PUT_error(ERR_LIB_PKCS7,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define X509V3err(f,r) ERR_PUT_error(ERR_LIB_X509V3,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define PKCS12err(f,r) ERR_PUT_error(ERR_LIB_PKCS12,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define RANDerr(f,r) ERR_PUT_error(ERR_LIB_RAND,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define DSOerr(f,r) ERR_PUT_error(ERR_LIB_DSO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define ENGINEerr(f,r) ERR_PUT_error(ERR_LIB_ENGINE,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define COMPerr(f,r) ERR_PUT_error(ERR_LIB_COMP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define ECDSAerr(f,r) ERR_PUT_error(ERR_LIB_ECDSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define ECDHerr(f,r) ERR_PUT_error(ERR_LIB_ECDH,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define OSSL_STOREerr(f,r) ERR_PUT_error(ERR_LIB_OSSL_STORE,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define FIPSerr(f,r) ERR_PUT_error(ERR_LIB_FIPS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define CMSerr(f,r) ERR_PUT_error(ERR_LIB_CMS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define TSerr(f,r) ERR_PUT_error(ERR_LIB_TS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define HMACerr(f,r) ERR_PUT_error(ERR_LIB_HMAC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define CTerr(f,r) ERR_PUT_error(ERR_LIB_CT,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define ASYNCerr(f,r) ERR_PUT_error(ERR_LIB_ASYNC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define KDFerr(f,r) ERR_PUT_error(ERR_LIB_KDF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define SM2err(f,r) ERR_PUT_error(ERR_LIB_SM2,(f),(r),OPENSSL_FILE,OPENSSL_LINE) +#define ERR_PACK(l,f,r) ( (((unsigned int)(l) & 0x0FF) << 24L) | (((unsigned int)(f) & 0xFFF) << 12L) | (((unsigned int)(r) & 0xFFF) ) ) +#define ERR_GET_LIB(l) (int)(((l) >> 24L) & 0x0FFL) +#define ERR_GET_FUNC(l) (int)(((l) >> 12L) & 0xFFFL) +#define ERR_GET_REASON(l) (int)( (l) & 0xFFFL) +#define ERR_FATAL_ERROR(l) (int)( (l) & ERR_R_FATAL) +enum { + SYS_F_FOPEN = 1, + SYS_F_CONNECT = 2, + SYS_F_GETSERVBYNAME = 3, + SYS_F_SOCKET = 4, + SYS_F_IOCTLSOCKET = 5, + SYS_F_BIND = 6, + SYS_F_LISTEN = 7, + SYS_F_ACCEPT = 8, + SYS_F_WSASTARTUP = 9, + SYS_F_OPENDIR = 10, + SYS_F_FREAD = 11, + SYS_F_GETADDRINFO = 12, + SYS_F_GETNAMEINFO = 13, + SYS_F_SETSOCKOPT = 14, + SYS_F_GETSOCKOPT = 15, + SYS_F_GETSOCKNAME = 16, + SYS_F_GETHOSTBYNAME = 17, + SYS_F_FFLUSH = 18, + SYS_F_OPEN = 19, + SYS_F_CLOSE = 20, + SYS_F_IOCTL = 21, + SYS_F_STAT = 22, + SYS_F_FCNTL = 23, + SYS_F_FSTAT = 24, + ERR_R_SYS_LIB = ERR_LIB_SYS, + ERR_R_BN_LIB = ERR_LIB_BN, + ERR_R_RSA_LIB = ERR_LIB_RSA, + ERR_R_DH_LIB = ERR_LIB_DH, + ERR_R_EVP_LIB = ERR_LIB_EVP, + ERR_R_BUF_LIB = ERR_LIB_BUF, + ERR_R_OBJ_LIB = ERR_LIB_OBJ, + ERR_R_PEM_LIB = ERR_LIB_PEM, + ERR_R_DSA_LIB = ERR_LIB_DSA, + ERR_R_X509_LIB = ERR_LIB_X509, + ERR_R_ASN1_LIB = ERR_LIB_ASN1, + ERR_R_EC_LIB = ERR_LIB_EC, + ERR_R_BIO_LIB = ERR_LIB_BIO, + ERR_R_PKCS7_LIB = ERR_LIB_PKCS7, + ERR_R_X509V3_LIB = ERR_LIB_X509V3, + ERR_R_ENGINE_LIB = ERR_LIB_ENGINE, + ERR_R_UI_LIB = ERR_LIB_UI, + ERR_R_ECDSA_LIB = ERR_LIB_ECDSA, + ERR_R_OSSL_STORE_LIB = ERR_LIB_OSSL_STORE, + ERR_R_NESTED_ASN1_ERROR = 58, + ERR_R_MISSING_ASN1_EOS = 63, + ERR_R_FATAL = 64, + ERR_R_MALLOC_FAILURE = (1|ERR_R_FATAL), + ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED = (2|ERR_R_FATAL), + ERR_R_PASSED_NULL_PARAMETER = (3|ERR_R_FATAL), + ERR_R_INTERNAL_ERROR = (4|ERR_R_FATAL), + ERR_R_DISABLED = (5|ERR_R_FATAL), + ERR_R_INIT_FAIL = (6|ERR_R_FATAL), + ERR_R_PASSED_INVALID_ARGUMENT = (7), + ERR_R_OPERATION_FAIL = (8|ERR_R_FATAL), +}; +typedef struct ERR_string_data_st { + unsigned long error; + const char *string; +} ERR_STRING_DATA; +struct lhash_st_ERR_STRING_DATA { union lh_ERR_STRING_DATA_dummy { void* d1; unsigned long d2; int d3; } dummy; }; static inline struct lhash_st_ERR_STRING_DATA * lh_ERR_STRING_DATA_new(unsigned long (*hfn)(const ERR_STRING_DATA *), int (*cfn)(const ERR_STRING_DATA *, const ERR_STRING_DATA *)) { return (struct lhash_st_ERR_STRING_DATA *) OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); } static __attribute__((unused)) inline void lh_ERR_STRING_DATA_free(struct lhash_st_ERR_STRING_DATA *lh) { OPENSSL_LH_free((OPENSSL_LHASH *)lh); } static __attribute__((unused)) inline ERR_STRING_DATA *lh_ERR_STRING_DATA_insert(struct lhash_st_ERR_STRING_DATA *lh, ERR_STRING_DATA *d) { return (ERR_STRING_DATA *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); } static __attribute__((unused)) inline ERR_STRING_DATA *lh_ERR_STRING_DATA_delete(struct lhash_st_ERR_STRING_DATA *lh, const ERR_STRING_DATA *d) { return (ERR_STRING_DATA *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); } static __attribute__((unused)) inline ERR_STRING_DATA *lh_ERR_STRING_DATA_retrieve(struct lhash_st_ERR_STRING_DATA *lh, const ERR_STRING_DATA *d) { return (ERR_STRING_DATA *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); } static __attribute__((unused)) inline int lh_ERR_STRING_DATA_error(struct lhash_st_ERR_STRING_DATA *lh) { return OPENSSL_LH_error((OPENSSL_LHASH *)lh); } static __attribute__((unused)) inline unsigned long lh_ERR_STRING_DATA_num_items(struct lhash_st_ERR_STRING_DATA *lh) { return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); } static __attribute__((unused)) inline void lh_ERR_STRING_DATA_node_stats_bio(const struct lhash_st_ERR_STRING_DATA *lh, BIO *out) { OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); } static __attribute__((unused)) inline void lh_ERR_STRING_DATA_node_usage_stats_bio(const struct lhash_st_ERR_STRING_DATA *lh, BIO *out) { OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); } static __attribute__((unused)) inline void lh_ERR_STRING_DATA_stats_bio(const struct lhash_st_ERR_STRING_DATA *lh, BIO *out) { OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); } static __attribute__((unused)) inline unsigned long lh_ERR_STRING_DATA_get_down_load(struct lhash_st_ERR_STRING_DATA *lh) { return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); } static __attribute__((unused)) inline void lh_ERR_STRING_DATA_set_down_load(struct lhash_st_ERR_STRING_DATA *lh, unsigned long dl) { OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); } static __attribute__((unused)) inline void lh_ERR_STRING_DATA_doall(struct lhash_st_ERR_STRING_DATA *lh, void (*doall)(ERR_STRING_DATA *)) { OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); } struct lhash_st_ERR_STRING_DATA; +void ERR_put_error(int lib, int func, int reason, const char *file, int line); +void ERR_set_error_data(char *data, int flags); +unsigned long ERR_get_error(void); +unsigned long ERR_get_error_line(const char **file, int *line); +unsigned long ERR_get_error_line_data(const char **file, int *line, + const char **data, int *flags); +unsigned long ERR_peek_error(void); +unsigned long ERR_peek_error_line(const char **file, int *line); +unsigned long ERR_peek_error_line_data(const char **file, int *line, + const char **data, int *flags); +unsigned long ERR_peek_last_error(void); +unsigned long ERR_peek_last_error_line(const char **file, int *line); +unsigned long ERR_peek_last_error_line_data(const char **file, int *line, + const char **data, int *flags); +void ERR_clear_error(void); +char *ERR_error_string(unsigned long e, char *buf); +void ERR_error_string_n(unsigned long e, char *buf, size_t len); +const char *ERR_lib_error_string(unsigned long e); +const char *ERR_func_error_string(unsigned long e); +const char *ERR_reason_error_string(unsigned long e); +void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), + void *u); +void ERR_print_errors_fp(FILE *fp); +void ERR_print_errors(BIO *bp); +void ERR_add_error_data(int num, ...); +void ERR_add_error_vdata(int num, va_list args); +int ERR_load_strings(int lib, ERR_STRING_DATA *str); +int ERR_load_strings_const(const ERR_STRING_DATA *str); +int ERR_unload_strings(int lib, ERR_STRING_DATA *str); +int ERR_load_ERR_strings(void); +#define ERR_load_crypto_strings() OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) +#define ERR_free_strings() while(0) continue +void ERR_remove_thread_state(void *) __attribute__ ((deprecated)); +void ERR_remove_state(unsigned long pid) __attribute__ ((deprecated)); +ERR_STATE *ERR_get_state(void); +int ERR_get_next_error_library(void); +int ERR_set_mark(void); +int ERR_pop_to_mark(void); +int ERR_clear_last_mark(void); + diff --git a/libcrypto_evp_h.lua b/libcrypto_evp_h.lua new file mode 100644 index 0000000..7a06b98 --- /dev/null +++ b/libcrypto_evp_h.lua @@ -0,0 +1,1397 @@ +// csrc/openssl/src/include/openssl/evp.h +enum { + EVP_MAX_MD_SIZE = 64, + EVP_MAX_KEY_LENGTH = 64, + EVP_MAX_IV_LENGTH = 16, + EVP_MAX_BLOCK_LENGTH = 32, + PKCS5_SALT_LEN = 8, + PKCS5_DEFAULT_ITER = 2048, + EVP_PK_RSA = 0x0001, + EVP_PK_DSA = 0x0002, + EVP_PK_DH = 0x0004, + EVP_PK_EC = 0x0008, + EVP_PKT_SIGN = 0x0010, + EVP_PKT_ENC = 0x0020, + EVP_PKT_EXCH = 0x0040, + EVP_PKS_RSA = 0x0100, + EVP_PKS_DSA = 0x0200, + EVP_PKS_EC = 0x0400, + EVP_PKEY_NONE = NID_undef, + EVP_PKEY_RSA = NID_rsaEncryption, + EVP_PKEY_RSA2 = NID_rsa, + EVP_PKEY_RSA_PSS = NID_rsassaPss, + EVP_PKEY_DSA = NID_dsa, + EVP_PKEY_DSA1 = NID_dsa_2, + EVP_PKEY_DSA2 = NID_dsaWithSHA, + EVP_PKEY_DSA3 = NID_dsaWithSHA1, + EVP_PKEY_DSA4 = NID_dsaWithSHA1_2, + EVP_PKEY_DH = NID_dhKeyAgreement, + EVP_PKEY_DHX = NID_dhpublicnumber, + EVP_PKEY_EC = NID_X9_62_id_ecPublicKey, + EVP_PKEY_SM2 = NID_sm2, + EVP_PKEY_HMAC = NID_hmac, + EVP_PKEY_CMAC = NID_cmac, + EVP_PKEY_SCRYPT = NID_id_scrypt, + EVP_PKEY_TLS1_PRF = NID_tls1_prf, + EVP_PKEY_HKDF = NID_hkdf, + EVP_PKEY_POLY1305 = NID_poly1305, + EVP_PKEY_SIPHASH = NID_siphash, + EVP_PKEY_X25519 = NID_X25519, + EVP_PKEY_ED25519 = NID_ED25519, + EVP_PKEY_X448 = NID_X448, + EVP_PKEY_ED448 = NID_ED448, + EVP_PKEY_MO_SIGN = 0x0001, + EVP_PKEY_MO_VERIFY = 0x0002, + EVP_PKEY_MO_ENCRYPT = 0x0004, + EVP_PKEY_MO_DECRYPT = 0x0008, +}; +EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type); +EVP_MD *EVP_MD_meth_dup(const EVP_MD *md); +void EVP_MD_meth_free(EVP_MD *md); +int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize); +int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize); +int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize); +int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags); +int EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx)); +int EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx, + const void *data, + size_t count)); +int EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx, + unsigned char *md)); +int EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to, + const EVP_MD_CTX *from)); +int EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx)); +int EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx, int cmd, + int p1, void *p2)); +int EVP_MD_meth_get_input_blocksize(const EVP_MD *md); +int EVP_MD_meth_get_result_size(const EVP_MD *md); +int EVP_MD_meth_get_app_datasize(const EVP_MD *md); +unsigned long EVP_MD_meth_get_flags(const EVP_MD *md); +int (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx); +int (*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx, + const void *data, + size_t count); +int (*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx, + unsigned char *md); +int (*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to, + const EVP_MD_CTX *from); +int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx); +int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, + int p1, void *p2); +enum { + EVP_MD_FLAG_ONESHOT = 0x0001, + EVP_MD_FLAG_XOF = 0x0002, + EVP_MD_FLAG_DIGALGID_MASK = 0x0018, + EVP_MD_FLAG_DIGALGID_NULL = 0x0000, + EVP_MD_FLAG_DIGALGID_ABSENT = 0x0008, + EVP_MD_FLAG_DIGALGID_CUSTOM = 0x0018, + EVP_MD_FLAG_FIPS = 0x0400, + EVP_MD_CTRL_DIGALGID = 0x1, + EVP_MD_CTRL_MICALG = 0x2, + EVP_MD_CTRL_XOF_LEN = 0x3, + EVP_MD_CTRL_ALG_CTRL = 0x1000, + EVP_MD_CTX_FLAG_ONESHOT = 0x0001, + EVP_MD_CTX_FLAG_CLEANED = 0x0002, + EVP_MD_CTX_FLAG_REUSE = 0x0004, + EVP_MD_CTX_FLAG_NON_FIPS_ALLOW = 0x0008, + EVP_MD_CTX_FLAG_PAD_MASK = 0xF0, + EVP_MD_CTX_FLAG_PAD_PKCS1 = 0x00, + EVP_MD_CTX_FLAG_PAD_X931 = 0x10, + EVP_MD_CTX_FLAG_PAD_PSS = 0x20, + EVP_MD_CTX_FLAG_NO_INIT = 0x0100, + EVP_MD_CTX_FLAG_FINALISE = 0x0200, +}; +EVP_CIPHER *EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len); +EVP_CIPHER *EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher); +void EVP_CIPHER_meth_free(EVP_CIPHER *cipher); +int EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len); +int EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags); +int EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size); +int EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher, + int (*init) (EVP_CIPHER_CTX *ctx, + const unsigned char *key, + const unsigned char *iv, + int enc)); +int EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher, + int (*do_cipher) (EVP_CIPHER_CTX *ctx, + unsigned char *out, + const unsigned char *in, + size_t inl)); +int EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher, + int (*cleanup) (EVP_CIPHER_CTX *)); +int EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher, + int (*set_asn1_parameters) (EVP_CIPHER_CTX *, + ASN1_TYPE *)); +int EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher, + int (*get_asn1_parameters) (EVP_CIPHER_CTX *, + ASN1_TYPE *)); +int EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher, + int (*ctrl) (EVP_CIPHER_CTX *, int type, + int arg, void *ptr)); +int (*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, + const unsigned char *key, + const unsigned char *iv, + int enc); +int (*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, + unsigned char *out, + const unsigned char *in, + size_t inl); +int (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *); +int (*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, + ASN1_TYPE *); +int (*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, + ASN1_TYPE *); +int (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, + int type, int arg, + void *ptr); +enum { + EVP_CIPH_STREAM_CIPHER = 0x0, + EVP_CIPH_ECB_MODE = 0x1, + EVP_CIPH_CBC_MODE = 0x2, + EVP_CIPH_CFB_MODE = 0x3, + EVP_CIPH_OFB_MODE = 0x4, + EVP_CIPH_CTR_MODE = 0x5, + EVP_CIPH_GCM_MODE = 0x6, + EVP_CIPH_CCM_MODE = 0x7, + EVP_CIPH_XTS_MODE = 0x10001, + EVP_CIPH_WRAP_MODE = 0x10002, + EVP_CIPH_OCB_MODE = 0x10003, + EVP_CIPH_MODE = 0xF0007, + EVP_CIPH_VARIABLE_LENGTH = 0x8, + EVP_CIPH_CUSTOM_IV = 0x10, + EVP_CIPH_ALWAYS_CALL_INIT = 0x20, + EVP_CIPH_CTRL_INIT = 0x40, + EVP_CIPH_CUSTOM_KEY_LENGTH = 0x80, + EVP_CIPH_NO_PADDING = 0x100, + EVP_CIPH_RAND_KEY = 0x200, + EVP_CIPH_CUSTOM_COPY = 0x400, + EVP_CIPH_CUSTOM_IV_LENGTH = 0x800, + EVP_CIPH_FLAG_DEFAULT_ASN1 = 0x1000, + EVP_CIPH_FLAG_LENGTH_BITS = 0x2000, + EVP_CIPH_FLAG_FIPS = 0x4000, + EVP_CIPH_FLAG_NON_FIPS_ALLOW = 0x8000, + EVP_CIPH_FLAG_CUSTOM_CIPHER = 0x100000, + EVP_CIPH_FLAG_AEAD_CIPHER = 0x200000, + EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK = 0x400000, + EVP_CIPH_FLAG_PIPELINE = 0X800000, + EVP_CIPHER_CTX_FLAG_WRAP_ALLOW = 0x1, + EVP_CTRL_INIT = 0x0, + EVP_CTRL_SET_KEY_LENGTH = 0x1, + EVP_CTRL_GET_RC2_KEY_BITS = 0x2, + EVP_CTRL_SET_RC2_KEY_BITS = 0x3, + EVP_CTRL_GET_RC5_ROUNDS = 0x4, + EVP_CTRL_SET_RC5_ROUNDS = 0x5, + EVP_CTRL_RAND_KEY = 0x6, + EVP_CTRL_PBE_PRF_NID = 0x7, + EVP_CTRL_COPY = 0x8, + EVP_CTRL_AEAD_SET_IVLEN = 0x9, + EVP_CTRL_AEAD_GET_TAG = 0x10, + EVP_CTRL_AEAD_SET_TAG = 0x11, + EVP_CTRL_AEAD_SET_IV_FIXED = 0x12, + EVP_CTRL_GCM_SET_IVLEN = EVP_CTRL_AEAD_SET_IVLEN, + EVP_CTRL_GCM_GET_TAG = EVP_CTRL_AEAD_GET_TAG, + EVP_CTRL_GCM_SET_TAG = EVP_CTRL_AEAD_SET_TAG, + EVP_CTRL_GCM_SET_IV_FIXED = EVP_CTRL_AEAD_SET_IV_FIXED, + EVP_CTRL_GCM_IV_GEN = 0x13, + EVP_CTRL_CCM_SET_IVLEN = EVP_CTRL_AEAD_SET_IVLEN, + EVP_CTRL_CCM_GET_TAG = EVP_CTRL_AEAD_GET_TAG, + EVP_CTRL_CCM_SET_TAG = EVP_CTRL_AEAD_SET_TAG, + EVP_CTRL_CCM_SET_IV_FIXED = EVP_CTRL_AEAD_SET_IV_FIXED, + EVP_CTRL_CCM_SET_L = 0x14, + EVP_CTRL_CCM_SET_MSGLEN = 0x15, + EVP_CTRL_AEAD_TLS1_AAD = 0x16, + EVP_CTRL_AEAD_SET_MAC_KEY = 0x17, + EVP_CTRL_GCM_SET_IV_INV = 0x18, + EVP_CTRL_TLS1_1_MULTIBLOCK_AAD = 0x19, + EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT = 0x1a, + EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT = 0x1b, + EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE = 0x1c, + EVP_CTRL_SSL3_MASTER_SECRET = 0x1d, + EVP_CTRL_SET_SBOX = 0x1e, + EVP_CTRL_SBOX_USED = 0x1f, + EVP_CTRL_KEY_MESH = 0x20, + EVP_CTRL_BLOCK_PADDING_MODE = 0x21, + EVP_CTRL_SET_PIPELINE_OUTPUT_BUFS = 0x22, + EVP_CTRL_SET_PIPELINE_INPUT_BUFS = 0x23, + EVP_CTRL_SET_PIPELINE_INPUT_LENS = 0x24, + EVP_CTRL_GET_IVLEN = 0x25, + EVP_PADDING_PKCS7 = 1, + EVP_PADDING_ISO7816_4 = 2, + EVP_PADDING_ANSI923 = 3, + EVP_PADDING_ISO10126 = 4, + EVP_PADDING_ZERO = 5, + EVP_AEAD_TLS1_AAD_LEN = 13, +}; +typedef struct { + unsigned char *out; + const unsigned char *inp; + size_t len; + unsigned int interleave; +} EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; +enum { + EVP_GCM_TLS_FIXED_IV_LEN = 4, + EVP_GCM_TLS_EXPLICIT_IV_LEN = 8, + EVP_GCM_TLS_TAG_LEN = 16, + EVP_CCM_TLS_FIXED_IV_LEN = 4, + EVP_CCM_TLS_EXPLICIT_IV_LEN = 8, + EVP_CCM_TLS_IV_LEN = 12, + EVP_CCM_TLS_TAG_LEN = 16, + EVP_CCM8_TLS_TAG_LEN = 8, + EVP_CHACHAPOLY_TLS_TAG_LEN = 16, +}; +typedef struct evp_cipher_info_st { + const EVP_CIPHER *cipher; + unsigned char iv[16]; +} EVP_CIPHER_INFO; +typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, + int passlen, ASN1_TYPE *param, + const EVP_CIPHER *cipher, const EVP_MD *md, + int en_de); +#define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA, (char *)(rsa)) +#define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA, (char *)(dsa)) +#define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH, (char *)(dh)) +#define EVP_PKEY_assign_EC_KEY(pkey,eckey) EVP_PKEY_assign((pkey),EVP_PKEY_EC, (char *)(eckey)) +#define EVP_PKEY_assign_SIPHASH(pkey,shkey) EVP_PKEY_assign((pkey),EVP_PKEY_SIPHASH, (char *)(shkey)) +#define EVP_PKEY_assign_POLY1305(pkey,polykey) EVP_PKEY_assign((pkey),EVP_PKEY_POLY1305, (char *)(polykey)) +#define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a)) +#define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a)) +#define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a)) +#define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a)) +int EVP_MD_type(const EVP_MD *md); +#define EVP_MD_nid(e) EVP_MD_type(e) +#define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e)) +int EVP_MD_pkey_type(const EVP_MD *md); +int EVP_MD_size(const EVP_MD *md); +int EVP_MD_block_size(const EVP_MD *md); +unsigned long EVP_MD_flags(const EVP_MD *md); +const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); +int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx, + const void *data, size_t count); +void EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx, + int (*update) (EVP_MD_CTX *ctx, + const void *data, size_t count)); +#define EVP_MD_CTX_size(e) EVP_MD_size(EVP_MD_CTX_md(e)) +#define EVP_MD_CTX_block_size(e) EVP_MD_block_size(EVP_MD_CTX_md(e)) +#define EVP_MD_CTX_type(e) EVP_MD_type(EVP_MD_CTX_md(e)) +EVP_PKEY_CTX *EVP_MD_CTX_pkey_ctx(const EVP_MD_CTX *ctx); +void EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx); +void *EVP_MD_CTX_md_data(const EVP_MD_CTX *ctx); +int EVP_CIPHER_nid(const EVP_CIPHER *cipher); +#define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e)) +int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); +int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *cipher); +int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); +int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); +unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); +#define EVP_CIPHER_mode(e) (EVP_CIPHER_flags(e) & EVP_CIPH_MODE) +const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); +const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx); +const unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx); +unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx); +unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx); +int EVP_CIPHER_CTX_num(const EVP_CIPHER_CTX *ctx); +void EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num); +int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); +void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); +void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); +void *EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx); +void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data); +#define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c)) +#define EVP_CIPHER_CTX_flags(c) EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(c)) +#define EVP_CIPHER_CTX_mode(c) EVP_CIPHER_mode(EVP_CIPHER_CTX_cipher(c)) +#define EVP_ENCODE_LENGTH(l) ((((l)+2)/3*4)+((l)/48+1)*2+80) +#define EVP_DECODE_LENGTH(l) (((l)+3)/4*3+80) +#define EVP_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) +#define EVP_SignInit(a,b) EVP_DigestInit(a,b) +#define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +#define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) +#define EVP_VerifyInit(a,b) EVP_DigestInit(a,b) +#define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +#define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e) +#define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e) +#define EVP_DigestSignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +#define EVP_DigestVerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) +#define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(char *)(md)) +#define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(char *)(mdp)) +#define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0, (char *)(mdcp)) +#define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0, (char *)(mdcp)) +#define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL) +#define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0, (char *)(c_pp)) + int EVP_Cipher(EVP_CIPHER_CTX *c, + unsigned char *out, + const unsigned char *in, unsigned int inl); +#define EVP_add_cipher_alias(n,alias) OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n)) +#define EVP_add_digest_alias(n,alias) OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n)) +#define EVP_delete_cipher_alias(alias) OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS); +#define EVP_delete_digest_alias(alias) OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS); +int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2); +EVP_MD_CTX *EVP_MD_CTX_new(void); +int EVP_MD_CTX_reset(EVP_MD_CTX *ctx); +void EVP_MD_CTX_free(EVP_MD_CTX *ctx); +#define EVP_MD_CTX_create() EVP_MD_CTX_new() +#define EVP_MD_CTX_init(ctx) EVP_MD_CTX_reset((ctx)) +#define EVP_MD_CTX_destroy(ctx) EVP_MD_CTX_free((ctx)) + int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); +void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); +void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); +int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); + int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, + ENGINE *impl); + int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, + size_t cnt); + int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, + unsigned int *s); + int EVP_Digest(const void *data, size_t count, + unsigned char *md, unsigned int *size, + const EVP_MD *type, ENGINE *impl); + int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); + int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); + int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, + unsigned int *s); + int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, + size_t len); +int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); +int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, + const char *prompt, int verify); +void EVP_set_pw_prompt(const char *prompt); +char *EVP_get_pw_prompt(void); + int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, + const unsigned char *salt, + const unsigned char *data, int datal, int count, + unsigned char *key, unsigned char *iv); +void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); +void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); +int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); + int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv); + int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, + const EVP_CIPHER *cipher, ENGINE *impl, + const unsigned char *key, + const unsigned char *iv); + int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl, const unsigned char *in, int inl); + int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl); + int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl); + int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv); + int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, + const EVP_CIPHER *cipher, ENGINE *impl, + const unsigned char *key, + const unsigned char *iv); + int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl, const unsigned char *in, int inl); + int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, + int *outl); + int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, + int *outl); + int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, + const unsigned char *key, const unsigned char *iv, + int enc); + int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, + const EVP_CIPHER *cipher, ENGINE *impl, + const unsigned char *key, + const unsigned char *iv, int enc); + int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, + int *outl, const unsigned char *in, int inl); + int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, + int *outl); + int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, + int *outl); + int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, + EVP_PKEY *pkey); + int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, + size_t *siglen, const unsigned char *tbs, + size_t tbslen); + int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, + unsigned int siglen, EVP_PKEY *pkey); + int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, + size_t siglen, const unsigned char *tbs, + size_t tbslen); + int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, + const EVP_MD *type, ENGINE *e, + EVP_PKEY *pkey); + int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, + size_t *siglen); + int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, + const EVP_MD *type, ENGINE *e, + EVP_PKEY *pkey); + int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, + size_t siglen); + int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, + const unsigned char *ek, int ekl, + const unsigned char *iv, EVP_PKEY *priv); + int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); + int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, + unsigned char **ek, int *ekl, unsigned char *iv, + EVP_PKEY **pubk, int npubk); + int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); +EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void); +void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx); +int EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, EVP_ENCODE_CTX *sctx); +int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx); +void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); +int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); +int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); +void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); +int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, + const unsigned char *in, int inl); +int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned + char *out, int *outl); +int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); +#define EVP_CIPHER_CTX_init(c) EVP_CIPHER_CTX_reset(c) +#define EVP_CIPHER_CTX_cleanup(c) EVP_CIPHER_CTX_reset(c) +EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); +int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c); +void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *c); +int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); +int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); +int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); +int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); +const BIO_METHOD *BIO_f_md(void); +const BIO_METHOD *BIO_f_base64(void); +const BIO_METHOD *BIO_f_cipher(void); +const BIO_METHOD *BIO_f_reliable(void); + int BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, + const unsigned char *i, int enc); +const EVP_MD *EVP_md_null(void); +const EVP_MD *EVP_md4(void); +const EVP_MD *EVP_md5(void); +const EVP_MD *EVP_md5_sha1(void); +const EVP_MD *EVP_blake2b512(void); +const EVP_MD *EVP_blake2s256(void); +const EVP_MD *EVP_sha1(void); +const EVP_MD *EVP_sha224(void); +const EVP_MD *EVP_sha256(void); +const EVP_MD *EVP_sha384(void); +const EVP_MD *EVP_sha512(void); +const EVP_MD *EVP_sha512_224(void); +const EVP_MD *EVP_sha512_256(void); +const EVP_MD *EVP_sha3_224(void); +const EVP_MD *EVP_sha3_256(void); +const EVP_MD *EVP_sha3_384(void); +const EVP_MD *EVP_sha3_512(void); +const EVP_MD *EVP_shake128(void); +const EVP_MD *EVP_shake256(void); +const EVP_MD *EVP_mdc2(void); +const EVP_MD *EVP_ripemd160(void); +const EVP_MD *EVP_whirlpool(void); +const EVP_MD *EVP_sm3(void); +const EVP_CIPHER *EVP_enc_null(void); +const EVP_CIPHER *EVP_des_ecb(void); +const EVP_CIPHER *EVP_des_ede(void); +const EVP_CIPHER *EVP_des_ede3(void); +const EVP_CIPHER *EVP_des_ede_ecb(void); +const EVP_CIPHER *EVP_des_ede3_ecb(void); +const EVP_CIPHER *EVP_des_cfb64(void); +enum { + EVP_des_cfb = EVP_des_cfb64, +}; +const EVP_CIPHER *EVP_des_cfb1(void); +const EVP_CIPHER *EVP_des_cfb8(void); +const EVP_CIPHER *EVP_des_ede_cfb64(void); +enum { + EVP_des_ede_cfb = EVP_des_ede_cfb64, +}; +const EVP_CIPHER *EVP_des_ede3_cfb64(void); +enum { + EVP_des_ede3_cfb = EVP_des_ede3_cfb64, +}; +const EVP_CIPHER *EVP_des_ede3_cfb1(void); +const EVP_CIPHER *EVP_des_ede3_cfb8(void); +const EVP_CIPHER *EVP_des_ofb(void); +const EVP_CIPHER *EVP_des_ede_ofb(void); +const EVP_CIPHER *EVP_des_ede3_ofb(void); +const EVP_CIPHER *EVP_des_cbc(void); +const EVP_CIPHER *EVP_des_ede_cbc(void); +const EVP_CIPHER *EVP_des_ede3_cbc(void); +const EVP_CIPHER *EVP_desx_cbc(void); +const EVP_CIPHER *EVP_des_ede3_wrap(void); +const EVP_CIPHER *EVP_rc4(void); +const EVP_CIPHER *EVP_rc4_40(void); +const EVP_CIPHER *EVP_rc4_hmac_md5(void); +const EVP_CIPHER *EVP_idea_ecb(void); +const EVP_CIPHER *EVP_idea_cfb64(void); +enum { + EVP_idea_cfb = EVP_idea_cfb64, +}; +const EVP_CIPHER *EVP_idea_ofb(void); +const EVP_CIPHER *EVP_idea_cbc(void); +const EVP_CIPHER *EVP_rc2_ecb(void); +const EVP_CIPHER *EVP_rc2_cbc(void); +const EVP_CIPHER *EVP_rc2_40_cbc(void); +const EVP_CIPHER *EVP_rc2_64_cbc(void); +const EVP_CIPHER *EVP_rc2_cfb64(void); +enum { + EVP_rc2_cfb = EVP_rc2_cfb64, +}; +const EVP_CIPHER *EVP_rc2_ofb(void); +const EVP_CIPHER *EVP_bf_ecb(void); +const EVP_CIPHER *EVP_bf_cbc(void); +const EVP_CIPHER *EVP_bf_cfb64(void); +enum { + EVP_bf_cfb = EVP_bf_cfb64, +}; +const EVP_CIPHER *EVP_bf_ofb(void); +const EVP_CIPHER *EVP_cast5_ecb(void); +const EVP_CIPHER *EVP_cast5_cbc(void); +const EVP_CIPHER *EVP_cast5_cfb64(void); +enum { + EVP_cast5_cfb = EVP_cast5_cfb64, +}; +const EVP_CIPHER *EVP_cast5_ofb(void); +const EVP_CIPHER *EVP_aes_128_ecb(void); +const EVP_CIPHER *EVP_aes_128_cbc(void); +const EVP_CIPHER *EVP_aes_128_cfb1(void); +const EVP_CIPHER *EVP_aes_128_cfb8(void); +const EVP_CIPHER *EVP_aes_128_cfb128(void); +enum { + EVP_aes_128_cfb = EVP_aes_128_cfb128, +}; +const EVP_CIPHER *EVP_aes_128_ofb(void); +const EVP_CIPHER *EVP_aes_128_ctr(void); +const EVP_CIPHER *EVP_aes_128_ccm(void); +const EVP_CIPHER *EVP_aes_128_gcm(void); +const EVP_CIPHER *EVP_aes_128_xts(void); +const EVP_CIPHER *EVP_aes_128_wrap(void); +const EVP_CIPHER *EVP_aes_128_wrap_pad(void); +const EVP_CIPHER *EVP_aes_128_ocb(void); +const EVP_CIPHER *EVP_aes_192_ecb(void); +const EVP_CIPHER *EVP_aes_192_cbc(void); +const EVP_CIPHER *EVP_aes_192_cfb1(void); +const EVP_CIPHER *EVP_aes_192_cfb8(void); +const EVP_CIPHER *EVP_aes_192_cfb128(void); +enum { + EVP_aes_192_cfb = EVP_aes_192_cfb128, +}; +const EVP_CIPHER *EVP_aes_192_ofb(void); +const EVP_CIPHER *EVP_aes_192_ctr(void); +const EVP_CIPHER *EVP_aes_192_ccm(void); +const EVP_CIPHER *EVP_aes_192_gcm(void); +const EVP_CIPHER *EVP_aes_192_wrap(void); +const EVP_CIPHER *EVP_aes_192_wrap_pad(void); +const EVP_CIPHER *EVP_aes_192_ocb(void); +const EVP_CIPHER *EVP_aes_256_ecb(void); +const EVP_CIPHER *EVP_aes_256_cbc(void); +const EVP_CIPHER *EVP_aes_256_cfb1(void); +const EVP_CIPHER *EVP_aes_256_cfb8(void); +const EVP_CIPHER *EVP_aes_256_cfb128(void); +enum { + EVP_aes_256_cfb = EVP_aes_256_cfb128, +}; +const EVP_CIPHER *EVP_aes_256_ofb(void); +const EVP_CIPHER *EVP_aes_256_ctr(void); +const EVP_CIPHER *EVP_aes_256_ccm(void); +const EVP_CIPHER *EVP_aes_256_gcm(void); +const EVP_CIPHER *EVP_aes_256_xts(void); +const EVP_CIPHER *EVP_aes_256_wrap(void); +const EVP_CIPHER *EVP_aes_256_wrap_pad(void); +const EVP_CIPHER *EVP_aes_256_ocb(void); +const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); +const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); +const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); +const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); +const EVP_CIPHER *EVP_aria_128_ecb(void); +const EVP_CIPHER *EVP_aria_128_cbc(void); +const EVP_CIPHER *EVP_aria_128_cfb1(void); +const EVP_CIPHER *EVP_aria_128_cfb8(void); +const EVP_CIPHER *EVP_aria_128_cfb128(void); +enum { + EVP_aria_128_cfb = EVP_aria_128_cfb128, +}; +const EVP_CIPHER *EVP_aria_128_ctr(void); +const EVP_CIPHER *EVP_aria_128_ofb(void); +const EVP_CIPHER *EVP_aria_128_gcm(void); +const EVP_CIPHER *EVP_aria_128_ccm(void); +const EVP_CIPHER *EVP_aria_192_ecb(void); +const EVP_CIPHER *EVP_aria_192_cbc(void); +const EVP_CIPHER *EVP_aria_192_cfb1(void); +const EVP_CIPHER *EVP_aria_192_cfb8(void); +const EVP_CIPHER *EVP_aria_192_cfb128(void); +enum { + EVP_aria_192_cfb = EVP_aria_192_cfb128, +}; +const EVP_CIPHER *EVP_aria_192_ctr(void); +const EVP_CIPHER *EVP_aria_192_ofb(void); +const EVP_CIPHER *EVP_aria_192_gcm(void); +const EVP_CIPHER *EVP_aria_192_ccm(void); +const EVP_CIPHER *EVP_aria_256_ecb(void); +const EVP_CIPHER *EVP_aria_256_cbc(void); +const EVP_CIPHER *EVP_aria_256_cfb1(void); +const EVP_CIPHER *EVP_aria_256_cfb8(void); +const EVP_CIPHER *EVP_aria_256_cfb128(void); +enum { + EVP_aria_256_cfb = EVP_aria_256_cfb128, +}; +const EVP_CIPHER *EVP_aria_256_ctr(void); +const EVP_CIPHER *EVP_aria_256_ofb(void); +const EVP_CIPHER *EVP_aria_256_gcm(void); +const EVP_CIPHER *EVP_aria_256_ccm(void); +const EVP_CIPHER *EVP_camellia_128_ecb(void); +const EVP_CIPHER *EVP_camellia_128_cbc(void); +const EVP_CIPHER *EVP_camellia_128_cfb1(void); +const EVP_CIPHER *EVP_camellia_128_cfb8(void); +const EVP_CIPHER *EVP_camellia_128_cfb128(void); +enum { + EVP_camellia_128_cfb = EVP_camellia_128_cfb128, +}; +const EVP_CIPHER *EVP_camellia_128_ofb(void); +const EVP_CIPHER *EVP_camellia_128_ctr(void); +const EVP_CIPHER *EVP_camellia_192_ecb(void); +const EVP_CIPHER *EVP_camellia_192_cbc(void); +const EVP_CIPHER *EVP_camellia_192_cfb1(void); +const EVP_CIPHER *EVP_camellia_192_cfb8(void); +const EVP_CIPHER *EVP_camellia_192_cfb128(void); +enum { + EVP_camellia_192_cfb = EVP_camellia_192_cfb128, +}; +const EVP_CIPHER *EVP_camellia_192_ofb(void); +const EVP_CIPHER *EVP_camellia_192_ctr(void); +const EVP_CIPHER *EVP_camellia_256_ecb(void); +const EVP_CIPHER *EVP_camellia_256_cbc(void); +const EVP_CIPHER *EVP_camellia_256_cfb1(void); +const EVP_CIPHER *EVP_camellia_256_cfb8(void); +const EVP_CIPHER *EVP_camellia_256_cfb128(void); +enum { + EVP_camellia_256_cfb = EVP_camellia_256_cfb128, +}; +const EVP_CIPHER *EVP_camellia_256_ofb(void); +const EVP_CIPHER *EVP_camellia_256_ctr(void); +const EVP_CIPHER *EVP_chacha20(void); +const EVP_CIPHER *EVP_chacha20_poly1305(void); +const EVP_CIPHER *EVP_seed_ecb(void); +const EVP_CIPHER *EVP_seed_cbc(void); +const EVP_CIPHER *EVP_seed_cfb128(void); +enum { + EVP_seed_cfb = EVP_seed_cfb128, +}; +const EVP_CIPHER *EVP_seed_ofb(void); +const EVP_CIPHER *EVP_sm4_ecb(void); +const EVP_CIPHER *EVP_sm4_cbc(void); +const EVP_CIPHER *EVP_sm4_cfb128(void); +enum { + EVP_sm4_cfb = EVP_sm4_cfb128, +}; +const EVP_CIPHER *EVP_sm4_ofb(void); +const EVP_CIPHER *EVP_sm4_ctr(void); +#define OPENSSL_add_all_algorithms_conf() OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS | OPENSSL_INIT_ADD_ALL_DIGESTS | OPENSSL_INIT_LOAD_CONFIG, NULL) +#define OPENSSL_add_all_algorithms_noconf() OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) +#define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_noconf() +#define OpenSSL_add_all_ciphers() OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL) +#define OpenSSL_add_all_digests() OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) +#define EVP_cleanup() while(0) continue +int EVP_add_cipher(const EVP_CIPHER *cipher); +int EVP_add_digest(const EVP_MD *digest); +const EVP_CIPHER *EVP_get_cipherbyname(const char *name); +const EVP_MD *EVP_get_digestbyname(const char *name); +void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, + const char *from, const char *to, void *x), + void *arg); +void EVP_CIPHER_do_all_sorted(void (*fn) + (const EVP_CIPHER *ciph, const char *from, + const char *to, void *x), void *arg); +void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, + const char *from, const char *to, void *x), + void *arg); +void EVP_MD_do_all_sorted(void (*fn) + (const EVP_MD *ciph, const char *from, + const char *to, void *x), void *arg); +int EVP_PKEY_decrypt_old(unsigned char *dec_key, + const unsigned char *enc_key, int enc_key_len, + EVP_PKEY *private_key); +int EVP_PKEY_encrypt_old(unsigned char *enc_key, + const unsigned char *key, int key_len, + EVP_PKEY *pub_key); +int EVP_PKEY_type(int type); +int EVP_PKEY_id(const EVP_PKEY *pkey); +int EVP_PKEY_base_id(const EVP_PKEY *pkey); +int EVP_PKEY_bits(const EVP_PKEY *pkey); +int EVP_PKEY_security_bits(const EVP_PKEY *pkey); +int EVP_PKEY_size(const EVP_PKEY *pkey); +int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); +int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); +int EVP_PKEY_set_alias_type(EVP_PKEY *pkey, int type); +int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e); +ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey); +int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); +void *EVP_PKEY_get0(const EVP_PKEY *pkey); +const unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len); +const unsigned char *EVP_PKEY_get0_poly1305(const EVP_PKEY *pkey, size_t *len); +const unsigned char *EVP_PKEY_get0_siphash(const EVP_PKEY *pkey, size_t *len); +struct rsa_st; +int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); +struct rsa_st *EVP_PKEY_get0_RSA(EVP_PKEY *pkey); +struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); +struct dsa_st; +int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); +struct dsa_st *EVP_PKEY_get0_DSA(EVP_PKEY *pkey); +struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); +struct dh_st; +int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); +struct dh_st *EVP_PKEY_get0_DH(EVP_PKEY *pkey); +struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); +struct ec_key_st; +int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); +struct ec_key_st *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey); +struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); +EVP_PKEY *EVP_PKEY_new(void); +int EVP_PKEY_up_ref(EVP_PKEY *pkey); +void EVP_PKEY_free(EVP_PKEY *pkey); +EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, + long length); +int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); +EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, + long length); +EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, + long length); +int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); +int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); +int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); +int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); +int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); +int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); +int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx); +int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx); +int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx); +int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); +int EVP_PKEY_set1_tls_encodedpoint(EVP_PKEY *pkey, + const unsigned char *pt, size_t ptlen); +size_t EVP_PKEY_get1_tls_encodedpoint(EVP_PKEY *pkey, unsigned char **ppt); +int EVP_CIPHER_type(const EVP_CIPHER *ctx); +int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); +int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); +int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); +int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); +int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md, int en_de); +int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, + const unsigned char *salt, int saltlen, int iter, + int keylen, unsigned char *out); +int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, + const unsigned char *salt, int saltlen, int iter, + const EVP_MD *digest, int keylen, unsigned char *out); +int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, + ASN1_TYPE *param, const EVP_CIPHER *cipher, + const EVP_MD *md, int en_de); +int EVP_PBE_scrypt(const char *pass, size_t passlen, + const unsigned char *salt, size_t saltlen, + uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, + unsigned char *key, size_t keylen); +int PKCS5_v2_scrypt_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, + int passlen, ASN1_TYPE *param, + const EVP_CIPHER *c, const EVP_MD *md, int en_de); +void PKCS5_PBE_add(void); +int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, + ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); +enum { + EVP_PBE_TYPE_OUTER = 0x0, + EVP_PBE_TYPE_PRF = 0x1, + EVP_PBE_TYPE_KDF = 0x2, +}; +int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, + int md_nid, EVP_PBE_KEYGEN *keygen); +int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, + EVP_PBE_KEYGEN *keygen); +int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, + EVP_PBE_KEYGEN **pkeygen); +void EVP_PBE_cleanup(void); +int EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num); +enum { + ASN1_PKEY_ALIAS = 0x1, + ASN1_PKEY_DYNAMIC = 0x2, + ASN1_PKEY_SIGPARAM_NULL = 0x4, + ASN1_PKEY_CTRL_PKCS7_SIGN = 0x1, + ASN1_PKEY_CTRL_PKCS7_ENCRYPT = 0x2, + ASN1_PKEY_CTRL_DEFAULT_MD_NID = 0x3, + ASN1_PKEY_CTRL_CMS_SIGN = 0x5, + ASN1_PKEY_CTRL_CMS_ENVELOPE = 0x7, + ASN1_PKEY_CTRL_CMS_RI_TYPE = 0x8, + ASN1_PKEY_CTRL_SET1_TLS_ENCPT = 0x9, + ASN1_PKEY_CTRL_GET1_TLS_ENCPT = 0xa, +}; +int EVP_PKEY_asn1_get_count(void); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, + const char *str, int len); +int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); +int EVP_PKEY_asn1_add_alias(int to, int from); +int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, + int *ppkey_flags, const char **pinfo, + const char **ppem_str, + const EVP_PKEY_ASN1_METHOD *ameth); +const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(const EVP_PKEY *pkey); +EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, + const char *pem_str, + const char *info); +void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, + const EVP_PKEY_ASN1_METHOD *src); +void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); +void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, + int (*pub_decode) (EVP_PKEY *pk, + X509_PUBKEY *pub), + int (*pub_encode) (X509_PUBKEY *pub, + const EVP_PKEY *pk), + int (*pub_cmp) (const EVP_PKEY *a, + const EVP_PKEY *b), + int (*pub_print) (BIO *out, + const EVP_PKEY *pkey, + int indent, ASN1_PCTX *pctx), + int (*pkey_size) (const EVP_PKEY *pk), + int (*pkey_bits) (const EVP_PKEY *pk)); +void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, + int (*priv_decode) (EVP_PKEY *pk, + const PKCS8_PRIV_KEY_INFO + *p8inf), + int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, + const EVP_PKEY *pk), + int (*priv_print) (BIO *out, + const EVP_PKEY *pkey, + int indent, + ASN1_PCTX *pctx)); +void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, + int (*param_decode) (EVP_PKEY *pkey, + const unsigned char **pder, + int derlen), + int (*param_encode) (const EVP_PKEY *pkey, + unsigned char **pder), + int (*param_missing) (const EVP_PKEY *pk), + int (*param_copy) (EVP_PKEY *to, + const EVP_PKEY *from), + int (*param_cmp) (const EVP_PKEY *a, + const EVP_PKEY *b), + int (*param_print) (BIO *out, + const EVP_PKEY *pkey, + int indent, + ASN1_PCTX *pctx)); +void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, + void (*pkey_free) (EVP_PKEY *pkey)); +void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_ctrl) (EVP_PKEY *pkey, int op, + long arg1, void *arg2)); +void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, + int (*item_verify) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *a, + ASN1_BIT_STRING *sig, + EVP_PKEY *pkey), + int (*item_sign) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *alg1, + X509_ALGOR *alg2, + ASN1_BIT_STRING *sig)); +void EVP_PKEY_asn1_set_siginf(EVP_PKEY_ASN1_METHOD *ameth, + int (*siginf_set) (X509_SIG_INFO *siginf, + const X509_ALGOR *alg, + const ASN1_STRING *sig)); +void EVP_PKEY_asn1_set_check(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_check) (const EVP_PKEY *pk)); +void EVP_PKEY_asn1_set_public_check(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_pub_check) (const EVP_PKEY *pk)); +void EVP_PKEY_asn1_set_param_check(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_param_check) (const EVP_PKEY *pk)); +void EVP_PKEY_asn1_set_set_priv_key(EVP_PKEY_ASN1_METHOD *ameth, + int (*set_priv_key) (EVP_PKEY *pk, + const unsigned char + *priv, + size_t len)); +void EVP_PKEY_asn1_set_set_pub_key(EVP_PKEY_ASN1_METHOD *ameth, + int (*set_pub_key) (EVP_PKEY *pk, + const unsigned char *pub, + size_t len)); +void EVP_PKEY_asn1_set_get_priv_key(EVP_PKEY_ASN1_METHOD *ameth, + int (*get_priv_key) (const EVP_PKEY *pk, + unsigned char *priv, + size_t *len)); +void EVP_PKEY_asn1_set_get_pub_key(EVP_PKEY_ASN1_METHOD *ameth, + int (*get_pub_key) (const EVP_PKEY *pk, + unsigned char *pub, + size_t *len)); +void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth, + int (*pkey_security_bits) (const EVP_PKEY + *pk)); +enum { + EVP_PKEY_OP_UNDEFINED = 0, + EVP_PKEY_OP_PARAMGEN = (1<<1), + EVP_PKEY_OP_KEYGEN = (1<<2), + EVP_PKEY_OP_SIGN = (1<<3), + EVP_PKEY_OP_VERIFY = (1<<4), + EVP_PKEY_OP_VERIFYRECOVER = (1<<5), + EVP_PKEY_OP_SIGNCTX = (1<<6), + EVP_PKEY_OP_VERIFYCTX = (1<<7), + EVP_PKEY_OP_ENCRYPT = (1<<8), + EVP_PKEY_OP_DECRYPT = (1<<9), + EVP_PKEY_OP_DERIVE = (1<<10), + EVP_PKEY_OP_TYPE_SIG = (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_VERIFY | EVP_PKEY_OP_VERIFYRECOVER | EVP_PKEY_OP_SIGNCTX | EVP_PKEY_OP_VERIFYCTX), + EVP_PKEY_OP_TYPE_CRYPT = (EVP_PKEY_OP_ENCRYPT | EVP_PKEY_OP_DECRYPT), + EVP_PKEY_OP_TYPE_NOGEN = (EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT | EVP_PKEY_OP_DERIVE), + EVP_PKEY_OP_TYPE_GEN = (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN), +}; +#define EVP_PKEY_CTX_set_signature_md(ctx,md) EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, EVP_PKEY_CTRL_MD, 0, (void *)(md)) +#define EVP_PKEY_CTX_get_signature_md(ctx,pmd) EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, EVP_PKEY_CTRL_GET_MD, 0, (void *)(pmd)) +#define EVP_PKEY_CTX_set_mac_key(ctx,key,len) EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_SET_MAC_KEY, len, (void *)(key)) +enum { + EVP_PKEY_CTRL_MD = 1, + EVP_PKEY_CTRL_PEER_KEY = 2, + EVP_PKEY_CTRL_PKCS7_ENCRYPT = 3, + EVP_PKEY_CTRL_PKCS7_DECRYPT = 4, + EVP_PKEY_CTRL_PKCS7_SIGN = 5, + EVP_PKEY_CTRL_SET_MAC_KEY = 6, + EVP_PKEY_CTRL_DIGESTINIT = 7, + EVP_PKEY_CTRL_SET_IV = 8, + EVP_PKEY_CTRL_CMS_ENCRYPT = 9, + EVP_PKEY_CTRL_CMS_DECRYPT = 10, + EVP_PKEY_CTRL_CMS_SIGN = 11, + EVP_PKEY_CTRL_CIPHER = 12, + EVP_PKEY_CTRL_GET_MD = 13, + EVP_PKEY_CTRL_SET_DIGEST_SIZE = 14, + EVP_PKEY_ALG_CTRL = 0x1000, + EVP_PKEY_FLAG_AUTOARGLEN = 2, + EVP_PKEY_FLAG_SIGCTX_CUSTOM = 4, +}; +const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); +EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); +void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, + const EVP_PKEY_METHOD *meth); +void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src); +void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); +int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); +int EVP_PKEY_meth_remove(const EVP_PKEY_METHOD *pmeth); +size_t EVP_PKEY_meth_get_count(void); +const EVP_PKEY_METHOD *EVP_PKEY_meth_get0(size_t idx); +EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); +EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); +EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); +void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); +int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, + int cmd, int p1, void *p2); +int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, + const char *value); +int EVP_PKEY_CTX_ctrl_uint64(EVP_PKEY_CTX *ctx, int keytype, int optype, + int cmd, uint64_t value); +int EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str); +int EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex); +int EVP_PKEY_CTX_md(EVP_PKEY_CTX *ctx, int optype, int cmd, const char *md); +int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); +void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); +EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, + const unsigned char *key, int keylen); +EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *e, + const unsigned char *priv, + size_t len); +EVP_PKEY *EVP_PKEY_new_raw_public_key(int type, ENGINE *e, + const unsigned char *pub, + size_t len); +int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char *priv, + size_t *len); +int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char *pub, + size_t *len); +EVP_PKEY *EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv, + size_t len, const EVP_CIPHER *cipher); +void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); +void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx); +EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); +EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); +void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); +void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); +int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, + unsigned char *sig, size_t *siglen, + const unsigned char *tbs, size_t tbslen); +int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, + const unsigned char *sig, size_t siglen, + const unsigned char *tbs, size_t tbslen); +int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, + unsigned char *rout, size_t *routlen, + const unsigned char *sig, size_t siglen); +int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen); +int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, + unsigned char *out, size_t *outlen, + const unsigned char *in, size_t inlen); +int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); +int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); +typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx); +int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); +int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); +int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); +int EVP_PKEY_check(EVP_PKEY_CTX *ctx); +int EVP_PKEY_public_check(EVP_PKEY_CTX *ctx); +int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); +void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); +EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); +int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); +void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, + int (*init) (EVP_PKEY_CTX *ctx)); +void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, + int (*copy) (EVP_PKEY_CTX *dst, + EVP_PKEY_CTX *src)); +void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, + void (*cleanup) (EVP_PKEY_CTX *ctx)); +void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, + int (*paramgen_init) (EVP_PKEY_CTX *ctx), + int (*paramgen) (EVP_PKEY_CTX *ctx, + EVP_PKEY *pkey)); +void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, + int (*keygen_init) (EVP_PKEY_CTX *ctx), + int (*keygen) (EVP_PKEY_CTX *ctx, + EVP_PKEY *pkey)); +void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, + int (*sign_init) (EVP_PKEY_CTX *ctx), + int (*sign) (EVP_PKEY_CTX *ctx, + unsigned char *sig, size_t *siglen, + const unsigned char *tbs, + size_t tbslen)); +void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, + int (*verify_init) (EVP_PKEY_CTX *ctx), + int (*verify) (EVP_PKEY_CTX *ctx, + const unsigned char *sig, + size_t siglen, + const unsigned char *tbs, + size_t tbslen)); +void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, + int (*verify_recover_init) (EVP_PKEY_CTX + *ctx), + int (*verify_recover) (EVP_PKEY_CTX + *ctx, + unsigned char + *sig, + size_t *siglen, + const unsigned + char *tbs, + size_t tbslen)); +void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, + int (*signctx_init) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx), + int (*signctx) (EVP_PKEY_CTX *ctx, + unsigned char *sig, + size_t *siglen, + EVP_MD_CTX *mctx)); +void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, + int (*verifyctx_init) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx), + int (*verifyctx) (EVP_PKEY_CTX *ctx, + const unsigned char *sig, + int siglen, + EVP_MD_CTX *mctx)); +void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, + int (*encrypt_init) (EVP_PKEY_CTX *ctx), + int (*encryptfn) (EVP_PKEY_CTX *ctx, + unsigned char *out, + size_t *outlen, + const unsigned char *in, + size_t inlen)); +void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, + int (*decrypt_init) (EVP_PKEY_CTX *ctx), + int (*decrypt) (EVP_PKEY_CTX *ctx, + unsigned char *out, + size_t *outlen, + const unsigned char *in, + size_t inlen)); +void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, + int (*derive_init) (EVP_PKEY_CTX *ctx), + int (*derive) (EVP_PKEY_CTX *ctx, + unsigned char *key, + size_t *keylen)); +void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, + int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, + void *p2), + int (*ctrl_str) (EVP_PKEY_CTX *ctx, + const char *type, + const char *value)); +void EVP_PKEY_meth_set_check(EVP_PKEY_METHOD *pmeth, + int (*check) (EVP_PKEY *pkey)); +void EVP_PKEY_meth_set_public_check(EVP_PKEY_METHOD *pmeth, + int (*check) (EVP_PKEY *pkey)); +void EVP_PKEY_meth_set_param_check(EVP_PKEY_METHOD *pmeth, + int (*check) (EVP_PKEY *pkey)); +void EVP_PKEY_meth_set_digest_custom(EVP_PKEY_METHOD *pmeth, + int (*digest_custom) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx)); +void EVP_PKEY_meth_get_init(const EVP_PKEY_METHOD *pmeth, + int (**pinit) (EVP_PKEY_CTX *ctx)); +void EVP_PKEY_meth_get_copy(const EVP_PKEY_METHOD *pmeth, + int (**pcopy) (EVP_PKEY_CTX *dst, + EVP_PKEY_CTX *src)); +void EVP_PKEY_meth_get_cleanup(const EVP_PKEY_METHOD *pmeth, + void (**pcleanup) (EVP_PKEY_CTX *ctx)); +void EVP_PKEY_meth_get_paramgen(const EVP_PKEY_METHOD *pmeth, + int (**pparamgen_init) (EVP_PKEY_CTX *ctx), + int (**pparamgen) (EVP_PKEY_CTX *ctx, + EVP_PKEY *pkey)); +void EVP_PKEY_meth_get_keygen(const EVP_PKEY_METHOD *pmeth, + int (**pkeygen_init) (EVP_PKEY_CTX *ctx), + int (**pkeygen) (EVP_PKEY_CTX *ctx, + EVP_PKEY *pkey)); +void EVP_PKEY_meth_get_sign(const EVP_PKEY_METHOD *pmeth, + int (**psign_init) (EVP_PKEY_CTX *ctx), + int (**psign) (EVP_PKEY_CTX *ctx, + unsigned char *sig, size_t *siglen, + const unsigned char *tbs, + size_t tbslen)); +void EVP_PKEY_meth_get_verify(const EVP_PKEY_METHOD *pmeth, + int (**pverify_init) (EVP_PKEY_CTX *ctx), + int (**pverify) (EVP_PKEY_CTX *ctx, + const unsigned char *sig, + size_t siglen, + const unsigned char *tbs, + size_t tbslen)); +void EVP_PKEY_meth_get_verify_recover(const EVP_PKEY_METHOD *pmeth, + int (**pverify_recover_init) (EVP_PKEY_CTX + *ctx), + int (**pverify_recover) (EVP_PKEY_CTX + *ctx, + unsigned char + *sig, + size_t *siglen, + const unsigned + char *tbs, + size_t tbslen)); +void EVP_PKEY_meth_get_signctx(const EVP_PKEY_METHOD *pmeth, + int (**psignctx_init) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx), + int (**psignctx) (EVP_PKEY_CTX *ctx, + unsigned char *sig, + size_t *siglen, + EVP_MD_CTX *mctx)); +void EVP_PKEY_meth_get_verifyctx(const EVP_PKEY_METHOD *pmeth, + int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx), + int (**pverifyctx) (EVP_PKEY_CTX *ctx, + const unsigned char *sig, + int siglen, + EVP_MD_CTX *mctx)); +void EVP_PKEY_meth_get_encrypt(const EVP_PKEY_METHOD *pmeth, + int (**pencrypt_init) (EVP_PKEY_CTX *ctx), + int (**pencryptfn) (EVP_PKEY_CTX *ctx, + unsigned char *out, + size_t *outlen, + const unsigned char *in, + size_t inlen)); +void EVP_PKEY_meth_get_decrypt(const EVP_PKEY_METHOD *pmeth, + int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), + int (**pdecrypt) (EVP_PKEY_CTX *ctx, + unsigned char *out, + size_t *outlen, + const unsigned char *in, + size_t inlen)); +void EVP_PKEY_meth_get_derive(const EVP_PKEY_METHOD *pmeth, + int (**pderive_init) (EVP_PKEY_CTX *ctx), + int (**pderive) (EVP_PKEY_CTX *ctx, + unsigned char *key, + size_t *keylen)); +void EVP_PKEY_meth_get_ctrl(const EVP_PKEY_METHOD *pmeth, + int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, + void *p2), + int (**pctrl_str) (EVP_PKEY_CTX *ctx, + const char *type, + const char *value)); +void EVP_PKEY_meth_get_check(const EVP_PKEY_METHOD *pmeth, + int (**pcheck) (EVP_PKEY *pkey)); +void EVP_PKEY_meth_get_public_check(const EVP_PKEY_METHOD *pmeth, + int (**pcheck) (EVP_PKEY *pkey)); +void EVP_PKEY_meth_get_param_check(const EVP_PKEY_METHOD *pmeth, + int (**pcheck) (EVP_PKEY *pkey)); +void EVP_PKEY_meth_get_digest_custom(EVP_PKEY_METHOD *pmeth, + int (**pdigest_custom) (EVP_PKEY_CTX *ctx, + EVP_MD_CTX *mctx)); +void EVP_add_alg_module(void); + +// csrc/openssl/src/include/openssl/evperr.h +int ERR_load_EVP_strings(void); +enum { + EVP_F_AESNI_INIT_KEY = 165, + EVP_F_AESNI_XTS_INIT_KEY = 207, + EVP_F_AES_GCM_CTRL = 196, + EVP_F_AES_INIT_KEY = 133, + EVP_F_AES_OCB_CIPHER = 169, + EVP_F_AES_T4_INIT_KEY = 178, + EVP_F_AES_T4_XTS_INIT_KEY = 208, + EVP_F_AES_WRAP_CIPHER = 170, + EVP_F_AES_XTS_INIT_KEY = 209, + EVP_F_ALG_MODULE_INIT = 177, + EVP_F_ARIA_CCM_INIT_KEY = 175, + EVP_F_ARIA_GCM_CTRL = 197, + EVP_F_ARIA_GCM_INIT_KEY = 176, + EVP_F_ARIA_INIT_KEY = 185, + EVP_F_B64_NEW = 198, + EVP_F_CAMELLIA_INIT_KEY = 159, + EVP_F_CHACHA20_POLY1305_CTRL = 182, + EVP_F_CMLL_T4_INIT_KEY = 179, + EVP_F_DES_EDE3_WRAP_CIPHER = 171, + EVP_F_DO_SIGVER_INIT = 161, + EVP_F_ENC_NEW = 199, + EVP_F_EVP_CIPHERINIT_EX = 123, + EVP_F_EVP_CIPHER_ASN1_TO_PARAM = 204, + EVP_F_EVP_CIPHER_CTX_COPY = 163, + EVP_F_EVP_CIPHER_CTX_CTRL = 124, + EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH = 122, + EVP_F_EVP_CIPHER_PARAM_TO_ASN1 = 205, + EVP_F_EVP_DECRYPTFINAL_EX = 101, + EVP_F_EVP_DECRYPTUPDATE = 166, + EVP_F_EVP_DIGESTFINALXOF = 174, + EVP_F_EVP_DIGESTINIT_EX = 128, + EVP_F_EVP_ENCRYPTDECRYPTUPDATE = 219, + EVP_F_EVP_ENCRYPTFINAL_EX = 127, + EVP_F_EVP_ENCRYPTUPDATE = 167, + EVP_F_EVP_MD_CTX_COPY_EX = 110, + EVP_F_EVP_MD_SIZE = 162, + EVP_F_EVP_OPENINIT = 102, + EVP_F_EVP_PBE_ALG_ADD = 115, + EVP_F_EVP_PBE_ALG_ADD_TYPE = 160, + EVP_F_EVP_PBE_CIPHERINIT = 116, + EVP_F_EVP_PBE_SCRYPT = 181, + EVP_F_EVP_PKCS82PKEY = 111, + EVP_F_EVP_PKEY2PKCS8 = 113, + EVP_F_EVP_PKEY_ASN1_ADD0 = 188, + EVP_F_EVP_PKEY_CHECK = 186, + EVP_F_EVP_PKEY_COPY_PARAMETERS = 103, + EVP_F_EVP_PKEY_CTX_CTRL = 137, + EVP_F_EVP_PKEY_CTX_CTRL_STR = 150, + EVP_F_EVP_PKEY_CTX_DUP = 156, + EVP_F_EVP_PKEY_CTX_MD = 168, + EVP_F_EVP_PKEY_DECRYPT = 104, + EVP_F_EVP_PKEY_DECRYPT_INIT = 138, + EVP_F_EVP_PKEY_DECRYPT_OLD = 151, + EVP_F_EVP_PKEY_DERIVE = 153, + EVP_F_EVP_PKEY_DERIVE_INIT = 154, + EVP_F_EVP_PKEY_DERIVE_SET_PEER = 155, + EVP_F_EVP_PKEY_ENCRYPT = 105, + EVP_F_EVP_PKEY_ENCRYPT_INIT = 139, + EVP_F_EVP_PKEY_ENCRYPT_OLD = 152, + EVP_F_EVP_PKEY_GET0_DH = 119, + EVP_F_EVP_PKEY_GET0_DSA = 120, + EVP_F_EVP_PKEY_GET0_EC_KEY = 131, + EVP_F_EVP_PKEY_GET0_HMAC = 183, + EVP_F_EVP_PKEY_GET0_POLY1305 = 184, + EVP_F_EVP_PKEY_GET0_RSA = 121, + EVP_F_EVP_PKEY_GET0_SIPHASH = 172, + EVP_F_EVP_PKEY_GET_RAW_PRIVATE_KEY = 202, + EVP_F_EVP_PKEY_GET_RAW_PUBLIC_KEY = 203, + EVP_F_EVP_PKEY_KEYGEN = 146, + EVP_F_EVP_PKEY_KEYGEN_INIT = 147, + EVP_F_EVP_PKEY_METH_ADD0 = 194, + EVP_F_EVP_PKEY_METH_NEW = 195, + EVP_F_EVP_PKEY_NEW = 106, + EVP_F_EVP_PKEY_NEW_CMAC_KEY = 193, + EVP_F_EVP_PKEY_NEW_RAW_PRIVATE_KEY = 191, + EVP_F_EVP_PKEY_NEW_RAW_PUBLIC_KEY = 192, + EVP_F_EVP_PKEY_PARAMGEN = 148, + EVP_F_EVP_PKEY_PARAMGEN_INIT = 149, + EVP_F_EVP_PKEY_PARAM_CHECK = 189, + EVP_F_EVP_PKEY_PUBLIC_CHECK = 190, + EVP_F_EVP_PKEY_SET1_ENGINE = 187, + EVP_F_EVP_PKEY_SET_ALIAS_TYPE = 206, + EVP_F_EVP_PKEY_SIGN = 140, + EVP_F_EVP_PKEY_SIGN_INIT = 141, + EVP_F_EVP_PKEY_VERIFY = 142, + EVP_F_EVP_PKEY_VERIFY_INIT = 143, + EVP_F_EVP_PKEY_VERIFY_RECOVER = 144, + EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT = 145, + EVP_F_EVP_SIGNFINAL = 107, + EVP_F_EVP_VERIFYFINAL = 108, + EVP_F_INT_CTX_NEW = 157, + EVP_F_OK_NEW = 200, + EVP_F_PKCS5_PBE_KEYIVGEN = 117, + EVP_F_PKCS5_V2_PBE_KEYIVGEN = 118, + EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN = 164, + EVP_F_PKCS5_V2_SCRYPT_KEYIVGEN = 180, + EVP_F_PKEY_SET_TYPE = 158, + EVP_F_RC2_MAGIC_TO_METH = 109, + EVP_F_RC5_CTRL = 125, + EVP_F_R_32_12_16_INIT_KEY = 242, + EVP_F_S390X_AES_GCM_CTRL = 201, + EVP_F_UPDATE = 173, + EVP_R_AES_KEY_SETUP_FAILED = 143, + EVP_R_ARIA_KEY_SETUP_FAILED = 176, + EVP_R_BAD_DECRYPT = 100, + EVP_R_BAD_KEY_LENGTH = 195, + EVP_R_BUFFER_TOO_SMALL = 155, + EVP_R_CAMELLIA_KEY_SETUP_FAILED = 157, + EVP_R_CIPHER_PARAMETER_ERROR = 122, + EVP_R_COMMAND_NOT_SUPPORTED = 147, + EVP_R_COPY_ERROR = 173, + EVP_R_CTRL_NOT_IMPLEMENTED = 132, + EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED = 133, + EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH = 138, + EVP_R_DECODE_ERROR = 114, + EVP_R_DIFFERENT_KEY_TYPES = 101, + EVP_R_DIFFERENT_PARAMETERS = 153, + EVP_R_ERROR_LOADING_SECTION = 165, + EVP_R_ERROR_SETTING_FIPS_MODE = 166, + EVP_R_EXPECTING_AN_HMAC_KEY = 174, + EVP_R_EXPECTING_AN_RSA_KEY = 127, + EVP_R_EXPECTING_A_DH_KEY = 128, + EVP_R_EXPECTING_A_DSA_KEY = 129, + EVP_R_EXPECTING_A_EC_KEY = 142, + EVP_R_EXPECTING_A_POLY1305_KEY = 164, + EVP_R_EXPECTING_A_SIPHASH_KEY = 175, + EVP_R_FIPS_MODE_NOT_SUPPORTED = 167, + EVP_R_GET_RAW_KEY_FAILED = 182, + EVP_R_ILLEGAL_SCRYPT_PARAMETERS = 171, + EVP_R_INITIALIZATION_ERROR = 134, + EVP_R_INPUT_NOT_INITIALIZED = 111, + EVP_R_INVALID_DIGEST = 152, + EVP_R_INVALID_FIPS_MODE = 168, + EVP_R_INVALID_KEY = 163, + EVP_R_INVALID_KEY_LENGTH = 130, + EVP_R_INVALID_OPERATION = 148, + EVP_R_KEYGEN_FAILURE = 120, + EVP_R_KEY_SETUP_FAILED = 180, + EVP_R_MEMORY_LIMIT_EXCEEDED = 172, + EVP_R_MESSAGE_DIGEST_IS_NULL = 159, + EVP_R_METHOD_NOT_SUPPORTED = 144, + EVP_R_MISSING_PARAMETERS = 103, + EVP_R_NOT_XOF_OR_INVALID_LENGTH = 178, + EVP_R_NO_CIPHER_SET = 131, + EVP_R_NO_DEFAULT_DIGEST = 158, + EVP_R_NO_DIGEST_SET = 139, + EVP_R_NO_KEY_SET = 154, + EVP_R_NO_OPERATION_SET = 149, + EVP_R_ONLY_ONESHOT_SUPPORTED = 177, + EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE = 150, + EVP_R_OPERATON_NOT_INITIALIZED = 151, + EVP_R_PARTIALLY_OVERLAPPING = 162, + EVP_R_PBKDF2_ERROR = 181, + EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED = 179, + EVP_R_PRIVATE_KEY_DECODE_ERROR = 145, + EVP_R_PRIVATE_KEY_ENCODE_ERROR = 146, + EVP_R_PUBLIC_KEY_NOT_RSA = 106, + EVP_R_UNKNOWN_CIPHER = 160, + EVP_R_UNKNOWN_DIGEST = 161, + EVP_R_UNKNOWN_OPTION = 169, + EVP_R_UNKNOWN_PBE_ALGORITHM = 121, + EVP_R_UNSUPPORTED_ALGORITHM = 156, + EVP_R_UNSUPPORTED_CIPHER = 107, + EVP_R_UNSUPPORTED_KEYLENGTH = 123, + EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION = 124, + EVP_R_UNSUPPORTED_KEY_SIZE = 108, + EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS = 135, + EVP_R_UNSUPPORTED_PRF = 125, + EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM = 118, + EVP_R_UNSUPPORTED_SALT_TYPE = 126, + EVP_R_WRAP_MODE_NOT_ALLOWED = 170, + EVP_R_WRONG_FINAL_BLOCK_LENGTH = 109, + EVP_R_XTS_DUPLICATED_KEYS = 183, +}; diff --git a/libcrypto_h.lua b/libcrypto_h.lua new file mode 100644 index 0000000..1a60bea --- /dev/null +++ b/libcrypto_h.lua @@ -0,0 +1,205 @@ +local ffi = require'ffi' --crypto.h, cryptoerr.h +require'libcrypto_types_h' +ffi.cdef[[ +// crypto.h +typedef struct { + int dummy; +} CRYPTO_dynlock; +typedef void CRYPTO_RWLOCK; +CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void); +int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock); +int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock); +int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); +void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); +int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); +enum { + CRYPTO_MEM_CHECK_OFF = 0x0, + CRYPTO_MEM_CHECK_ON = 0x1, + CRYPTO_MEM_CHECK_ENABLE = 0x2, + CRYPTO_MEM_CHECK_DISABLE = 0x3, +}; +struct crypto_ex_data_st { + struct stack_st_void *sk; +}; +struct stack_st_void; typedef int (*sk_void_compfunc)(const void * const *a, const void *const *b); typedef void (*sk_void_freefunc)(void *a); typedef void * (*sk_void_copyfunc)(const void *a); static __attribute__((unused)) inline int sk_void_num(const struct stack_st_void *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void *sk_void_value(const struct stack_st_void *sk, int idx) { return (void *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_void *sk_void_new(sk_void_compfunc compare) { return (struct stack_st_void *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_void *sk_void_new_null(void) { return (struct stack_st_void *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_void *sk_void_new_reserve(sk_void_compfunc compare, int n) { return (struct stack_st_void *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_void_reserve(struct stack_st_void *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_void_free(struct stack_st_void *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_void_zero(struct stack_st_void *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void *sk_void_delete(struct stack_st_void *sk, int i) { return (void *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline void *sk_void_delete_ptr(struct stack_st_void *sk, void *ptr) { return (void *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_void_push(struct stack_st_void *sk, void *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_void_unshift(struct stack_st_void *sk, void *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void *sk_void_pop(struct stack_st_void *sk) { return (void *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void *sk_void_shift(struct stack_st_void *sk) { return (void *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_void_pop_free(struct stack_st_void *sk, sk_void_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_void_insert(struct stack_st_void *sk, void *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline void *sk_void_set(struct stack_st_void *sk, int idx, void *ptr) { return (void *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_void_find(struct stack_st_void *sk, void *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_void_find_ex(struct stack_st_void *sk, void *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_void_sort(struct stack_st_void *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_void_is_sorted(const struct stack_st_void *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_void * sk_void_dup(const struct stack_st_void *sk) { return (struct stack_st_void *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_void *sk_void_deep_copy(const struct stack_st_void *sk, sk_void_copyfunc copyfunc, sk_void_freefunc freefunc) { return (struct stack_st_void *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_void_compfunc sk_void_set_cmp_func(struct stack_st_void *sk, sk_void_compfunc compare) { return (sk_void_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +enum { + CRYPTO_EX_INDEX_SSL = 0, + CRYPTO_EX_INDEX_SSL_CTX = 1, + CRYPTO_EX_INDEX_SSL_SESSION = 2, + CRYPTO_EX_INDEX_X509 = 3, + CRYPTO_EX_INDEX_X509_STORE = 4, + CRYPTO_EX_INDEX_X509_STORE_CTX = 5, + CRYPTO_EX_INDEX_DH = 6, + CRYPTO_EX_INDEX_DSA = 7, + CRYPTO_EX_INDEX_EC_KEY = 8, + CRYPTO_EX_INDEX_RSA = 9, + CRYPTO_EX_INDEX_ENGINE = 10, + CRYPTO_EX_INDEX_UI = 11, + CRYPTO_EX_INDEX_BIO = 12, + CRYPTO_EX_INDEX_APP = 13, + CRYPTO_EX_INDEX_UI_METHOD = 14, + CRYPTO_EX_INDEX_DRBG = 15, + CRYPTO_EX_INDEX__COUNT = 16, +}; +int CRYPTO_mem_ctrl(int mode); +size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); +size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); +size_t OPENSSL_strnlen(const char *str, size_t maxlen); +char *OPENSSL_buf2hexstr(const unsigned char *buffer, long len); +unsigned char *OPENSSL_hexstr2buf(const char *str, long *len); +int OPENSSL_hexchar2int(unsigned char c); +unsigned long OpenSSL_version_num(void); +const char *OpenSSL_version(int type); +enum { + OPENSSL_VERSION = 0, + OPENSSL_CFLAGS = 1, + OPENSSL_BUILT_ON = 2, + OPENSSL_PLATFORM = 3, + OPENSSL_DIR = 4, + OPENSSL_ENGINES_DIR = 5, +}; +int OPENSSL_issetugid(void); +typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, + int idx, long argl, void *argp); +typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, + void *from_d, int idx, long argl, void *argp); + int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, + CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, + CRYPTO_EX_free *free_func); +int CRYPTO_free_ex_index(int class_index, int idx); +int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); +int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, + const CRYPTO_EX_DATA *from); +void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); +int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); +void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); +enum { + CRYPTO_LOCK = 1, + CRYPTO_UNLOCK = 2, + CRYPTO_READ = 4, + CRYPTO_WRITE = 8, +}; +typedef struct crypto_threadid_st { + int dummy; +} CRYPTO_THREADID; +int CRYPTO_set_mem_functions( + void *(*m) (size_t, const char *, int), + void *(*r) (void *, size_t, const char *, int), + void (*f) (void *, const char *, int)); +int CRYPTO_set_mem_debug(int flag); +void CRYPTO_get_mem_functions( + void *(**m) (size_t, const char *, int), + void *(**r) (void *, size_t, const char *, int), + void (**f) (void *, const char *, int)); +void *CRYPTO_malloc(size_t num, const char *file, int line); +void *CRYPTO_zalloc(size_t num, const char *file, int line); +void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); +char *CRYPTO_strdup(const char *str, const char *file, int line); +char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); +void CRYPTO_free(void *ptr, const char *file, int line); +void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); +void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); +void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, + const char *file, int line); +int CRYPTO_secure_malloc_init(size_t sz, int minsize); +int CRYPTO_secure_malloc_done(void); +void *CRYPTO_secure_malloc(size_t num, const char *file, int line); +void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); +void CRYPTO_secure_free(void *ptr, const char *file, int line); +void CRYPTO_secure_clear_free(void *ptr, size_t num, + const char *file, int line); +int CRYPTO_secure_allocated(const void *ptr); +int CRYPTO_secure_malloc_initialized(void); +size_t CRYPTO_secure_actual_size(void *ptr); +size_t CRYPTO_secure_used(void); +void OPENSSL_cleanse(void *ptr, size_t len); +void OPENSSL_die(const char *assertion, const char *file, int line); +int OPENSSL_isservice(void); +int FIPS_mode(void); +int FIPS_mode_set(int r); +void OPENSSL_init(void); +struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); +int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); +int OPENSSL_gmtime_diff(int *pday, int *psec, + const struct tm *from, const struct tm *to); +int CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len); +enum { + OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS = 0x00000001L, + OPENSSL_INIT_LOAD_CRYPTO_STRINGS = 0x00000002L, + OPENSSL_INIT_ADD_ALL_CIPHERS = 0x00000004L, + OPENSSL_INIT_ADD_ALL_DIGESTS = 0x00000008L, + OPENSSL_INIT_NO_ADD_ALL_CIPHERS = 0x00000010L, + OPENSSL_INIT_NO_ADD_ALL_DIGESTS = 0x00000020L, + OPENSSL_INIT_LOAD_CONFIG = 0x00000040L, + OPENSSL_INIT_NO_LOAD_CONFIG = 0x00000080L, + OPENSSL_INIT_ASYNC = 0x00000100L, + OPENSSL_INIT_ENGINE_RDRAND = 0x00000200L, + OPENSSL_INIT_ENGINE_DYNAMIC = 0x00000400L, + OPENSSL_INIT_ENGINE_OPENSSL = 0x00000800L, + OPENSSL_INIT_ENGINE_CRYPTODEV = 0x00001000L, + OPENSSL_INIT_ENGINE_CAPI = 0x00002000L, + OPENSSL_INIT_ENGINE_PADLOCK = 0x00004000L, + OPENSSL_INIT_ENGINE_AFALG = 0x00008000L, + OPENSSL_INIT_ATFORK = 0x00020000L, + OPENSSL_INIT_NO_ATEXIT = 0x00080000L, + OPENSSL_INIT_ENGINE_ALL_BUILTIN = (OPENSSL_INIT_ENGINE_RDRAND | OPENSSL_INIT_ENGINE_DYNAMIC | OPENSSL_INIT_ENGINE_CRYPTODEV | OPENSSL_INIT_ENGINE_CAPI | OPENSSL_INIT_ENGINE_PADLOCK), +}; +void OPENSSL_cleanup(void); +int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); +int OPENSSL_atexit(void (*handler)(void)); +void OPENSSL_thread_stop(void); +OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void); +int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, + const char *config_filename); +void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings, + unsigned long flags); +int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, + const char *config_appname); +void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); +typedef unsigned int CRYPTO_ONCE; +typedef unsigned int CRYPTO_THREAD_LOCAL; +typedef unsigned int CRYPTO_THREAD_ID; +enum { + CRYPTO_ONCE_STATIC_INIT = 0, +}; +int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void)); +int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *)); +void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key); +int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val); +int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key); +CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void); +int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b); + +// cryptoerr.h +int ERR_load_CRYPTO_strings(void); +enum { + CRYPTO_F_CMAC_CTX_NEW = 120, + CRYPTO_F_CRYPTO_DUP_EX_DATA = 110, + CRYPTO_F_CRYPTO_FREE_EX_DATA = 111, + CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX = 100, + CRYPTO_F_CRYPTO_MEMDUP = 115, + CRYPTO_F_CRYPTO_NEW_EX_DATA = 112, + CRYPTO_F_CRYPTO_OCB128_COPY_CTX = 121, + CRYPTO_F_CRYPTO_OCB128_INIT = 122, + CRYPTO_F_CRYPTO_SET_EX_DATA = 102, + CRYPTO_F_FIPS_MODE_SET = 109, + CRYPTO_F_GET_AND_LOCK = 113, + CRYPTO_F_OPENSSL_ATEXIT = 114, + CRYPTO_F_OPENSSL_BUF2HEXSTR = 117, + CRYPTO_F_OPENSSL_FOPEN = 119, + CRYPTO_F_OPENSSL_HEXSTR2BUF = 118, + CRYPTO_F_OPENSSL_INIT_CRYPTO = 116, + CRYPTO_F_OPENSSL_LH_NEW = 126, + CRYPTO_F_OPENSSL_SK_DEEP_COPY = 127, + CRYPTO_F_OPENSSL_SK_DUP = 128, + CRYPTO_F_PKEY_HMAC_INIT = 123, + CRYPTO_F_PKEY_POLY1305_INIT = 124, + CRYPTO_F_PKEY_SIPHASH_INIT = 125, + CRYPTO_F_SK_RESERVE = 129, + CRYPTO_R_FIPS_MODE_NOT_SUPPORTED = 101, + CRYPTO_R_ILLEGAL_HEX_DIGIT = 102, + CRYPTO_R_ODD_NUMBER_OF_DIGITS = 103, +}; +]] diff --git a/libcrypto_lhash_h.lua b/libcrypto_lhash_h.lua new file mode 100644 index 0000000..a40d29e --- /dev/null +++ b/libcrypto_lhash_h.lua @@ -0,0 +1,64 @@ +// csrc/openssl/src/include/openssl/lhash.h +typedef struct lhash_node_st OPENSSL_LH_NODE; +typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); +typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); +typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); +typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); +typedef struct lhash_st OPENSSL_LHASH; +#define DECLARE_LHASH_HASH_FN(name,o_type) unsigned long name ##_LHASH_HASH(const void *); +#define IMPLEMENT_LHASH_HASH_FN(name,o_type) unsigned long name ##_LHASH_HASH(const void *arg) { const o_type *a = arg; return name ##_hash(a); } +#define LHASH_HASH_FN(name) name ##_LHASH_HASH +#define DECLARE_LHASH_COMP_FN(name,o_type) int name ##_LHASH_COMP(const void *, const void *); +#define IMPLEMENT_LHASH_COMP_FN(name,o_type) int name ##_LHASH_COMP(const void *arg1, const void *arg2) { const o_type *a = arg1; const o_type *b = arg2; return name ##_cmp(a,b); } +#define LHASH_COMP_FN(name) name ##_LHASH_COMP +#define DECLARE_LHASH_DOALL_ARG_FN(name,o_type,a_type) void name ##_LHASH_DOALL_ARG(void *, void *); +#define IMPLEMENT_LHASH_DOALL_ARG_FN(name,o_type,a_type) void name ##_LHASH_DOALL_ARG(void *arg1, void *arg2) { o_type *a = arg1; a_type *b = arg2; name ##_doall_arg(a, b); } +#define LHASH_DOALL_ARG_FN(name) name ##_LHASH_DOALL_ARG +enum { + LH_LOAD_MULT = 256, +}; +int OPENSSL_LH_error(OPENSSL_LHASH *lh); +OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); +void OPENSSL_LH_free(OPENSSL_LHASH *lh); +void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); +void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); +void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); +void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); +void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); +unsigned long OPENSSL_LH_strhash(const char *c); +unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); +unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); +void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); +void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); +void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); +void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); +void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); +enum { + _LHASH = OPENSSL_LHASH, + LHASH_NODE = OPENSSL_LH_NODE, + lh_error = OPENSSL_LH_error, + lh_new = OPENSSL_LH_new, + lh_free = OPENSSL_LH_free, + lh_insert = OPENSSL_LH_insert, + lh_delete = OPENSSL_LH_delete, + lh_retrieve = OPENSSL_LH_retrieve, + lh_doall = OPENSSL_LH_doall, + lh_doall_arg = OPENSSL_LH_doall_arg, + lh_strhash = OPENSSL_LH_strhash, + lh_num_items = OPENSSL_LH_num_items, + lh_stats = OPENSSL_LH_stats, + lh_node_stats = OPENSSL_LH_node_stats, + lh_node_usage_stats = OPENSSL_LH_node_usage_stats, + lh_stats_bio = OPENSSL_LH_stats_bio, + lh_node_stats_bio = OPENSSL_LH_node_stats_bio, + lh_node_usage_stats_bio = OPENSSL_LH_node_usage_stats_bio, +}; +#define LHASH_OF(type) struct lhash_st_ ##type +#define DEFINE_LHASH_OF(type) LHASH_OF(type) { union lh_ ##type ##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; static ossl_inline LHASH_OF(type) * lh_ ##type ##_new(unsigned long (*hfn)(const type *), int (*cfn)(const type *, const type *)) { return (LHASH_OF(type) *) OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); } static ossl_unused ossl_inline void lh_ ##type ##_free(LHASH_OF(type) *lh) { OPENSSL_LH_free((OPENSSL_LHASH *)lh); } static ossl_unused ossl_inline type *lh_ ##type ##_insert(LHASH_OF(type) *lh, type *d) { return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); } static ossl_unused ossl_inline type *lh_ ##type ##_delete(LHASH_OF(type) *lh, const type *d) { return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); } static ossl_unused ossl_inline type *lh_ ##type ##_retrieve(LHASH_OF(type) *lh, const type *d) { return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); } static ossl_unused ossl_inline int lh_ ##type ##_error(LHASH_OF(type) *lh) { return OPENSSL_LH_error((OPENSSL_LHASH *)lh); } static ossl_unused ossl_inline unsigned long lh_ ##type ##_num_items(LHASH_OF(type) *lh) { return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); } static ossl_unused ossl_inline void lh_ ##type ##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) { OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); } static ossl_unused ossl_inline void lh_ ##type ##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) { OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); } static ossl_unused ossl_inline void lh_ ##type ##_stats_bio(const LHASH_OF(type) *lh, BIO *out) { OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); } static ossl_unused ossl_inline unsigned long lh_ ##type ##_get_down_load(LHASH_OF(type) *lh) { return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); } static ossl_unused ossl_inline void lh_ ##type ##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) { OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); } static ossl_unused ossl_inline void lh_ ##type ##_doall(LHASH_OF(type) *lh, void (*doall)(type *)) { OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); } LHASH_OF(type) +#define IMPLEMENT_LHASH_DOALL_ARG_CONST(type,argtype) int_implement_lhash_doall(type, argtype, const type) +#define IMPLEMENT_LHASH_DOALL_ARG(type,argtype) int_implement_lhash_doall(type, argtype, type) +#define int_implement_lhash_doall(type,argtype,cbargtype) static ossl_unused ossl_inline void lh_ ##type ##_doall_ ##argtype(LHASH_OF(type) *lh, void (*fn)(cbargtype *, argtype *), argtype *arg) { OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); } LHASH_OF(type) +struct lhash_st_OPENSSL_STRING { union lh_OPENSSL_STRING_dummy { void* d1; unsigned long d2; int d3; } dummy; }; static inline struct lhash_st_OPENSSL_STRING * lh_OPENSSL_STRING_new(unsigned long (*hfn)(const OPENSSL_STRING *), int (*cfn)(const OPENSSL_STRING *, const OPENSSL_STRING *)) { return (struct lhash_st_OPENSSL_STRING *) OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); } static __attribute__((unused)) inline void lh_OPENSSL_STRING_free(struct lhash_st_OPENSSL_STRING *lh) { OPENSSL_LH_free((OPENSSL_LHASH *)lh); } static __attribute__((unused)) inline OPENSSL_STRING *lh_OPENSSL_STRING_insert(struct lhash_st_OPENSSL_STRING *lh, OPENSSL_STRING *d) { return (OPENSSL_STRING *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); } static __attribute__((unused)) inline OPENSSL_STRING *lh_OPENSSL_STRING_delete(struct lhash_st_OPENSSL_STRING *lh, const OPENSSL_STRING *d) { return (OPENSSL_STRING *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); } static __attribute__((unused)) inline OPENSSL_STRING *lh_OPENSSL_STRING_retrieve(struct lhash_st_OPENSSL_STRING *lh, const OPENSSL_STRING *d) { return (OPENSSL_STRING *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); } static __attribute__((unused)) inline int lh_OPENSSL_STRING_error(struct lhash_st_OPENSSL_STRING *lh) { return OPENSSL_LH_error((OPENSSL_LHASH *)lh); } static __attribute__((unused)) inline unsigned long lh_OPENSSL_STRING_num_items(struct lhash_st_OPENSSL_STRING *lh) { return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); } static __attribute__((unused)) inline void lh_OPENSSL_STRING_node_stats_bio(const struct lhash_st_OPENSSL_STRING *lh, BIO *out) { OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); } static __attribute__((unused)) inline void lh_OPENSSL_STRING_node_usage_stats_bio(const struct lhash_st_OPENSSL_STRING *lh, BIO *out) { OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); } static __attribute__((unused)) inline void lh_OPENSSL_STRING_stats_bio(const struct lhash_st_OPENSSL_STRING *lh, BIO *out) { OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); } static __attribute__((unused)) inline unsigned long lh_OPENSSL_STRING_get_down_load(struct lhash_st_OPENSSL_STRING *lh) { return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); } static __attribute__((unused)) inline void lh_OPENSSL_STRING_set_down_load(struct lhash_st_OPENSSL_STRING *lh, unsigned long dl) { OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); } static __attribute__((unused)) inline void lh_OPENSSL_STRING_doall(struct lhash_st_OPENSSL_STRING *lh, void (*doall)(OPENSSL_STRING *)) { OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); } struct lhash_st_OPENSSL_STRING; +struct lhash_st_OPENSSL_CSTRING { union lh_OPENSSL_CSTRING_dummy { void* d1; unsigned long d2; int d3; } dummy; }; static inline struct lhash_st_OPENSSL_CSTRING * lh_OPENSSL_CSTRING_new(unsigned long (*hfn)(const OPENSSL_CSTRING *), int (*cfn)(const OPENSSL_CSTRING *, const OPENSSL_CSTRING *)) { return (struct lhash_st_OPENSSL_CSTRING *) OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); } static __attribute__((unused)) inline void lh_OPENSSL_CSTRING_free(struct lhash_st_OPENSSL_CSTRING *lh) { OPENSSL_LH_free((OPENSSL_LHASH *)lh); } static __attribute__((unused)) inline OPENSSL_CSTRING *lh_OPENSSL_CSTRING_insert(struct lhash_st_OPENSSL_CSTRING *lh, OPENSSL_CSTRING *d) { return (OPENSSL_CSTRING *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); } static __attribute__((unused)) inline OPENSSL_CSTRING *lh_OPENSSL_CSTRING_delete(struct lhash_st_OPENSSL_CSTRING *lh, const OPENSSL_CSTRING *d) { return (OPENSSL_CSTRING *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); } static __attribute__((unused)) inline OPENSSL_CSTRING *lh_OPENSSL_CSTRING_retrieve(struct lhash_st_OPENSSL_CSTRING *lh, const OPENSSL_CSTRING *d) { return (OPENSSL_CSTRING *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); } static __attribute__((unused)) inline int lh_OPENSSL_CSTRING_error(struct lhash_st_OPENSSL_CSTRING *lh) { return OPENSSL_LH_error((OPENSSL_LHASH *)lh); } static __attribute__((unused)) inline unsigned long lh_OPENSSL_CSTRING_num_items(struct lhash_st_OPENSSL_CSTRING *lh) { return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); } static __attribute__((unused)) inline void lh_OPENSSL_CSTRING_node_stats_bio(const struct lhash_st_OPENSSL_CSTRING *lh, BIO *out) { OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); } static __attribute__((unused)) inline void lh_OPENSSL_CSTRING_node_usage_stats_bio(const struct lhash_st_OPENSSL_CSTRING *lh, BIO *out) { OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); } static __attribute__((unused)) inline void lh_OPENSSL_CSTRING_stats_bio(const struct lhash_st_OPENSSL_CSTRING *lh, BIO *out) { OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); } static __attribute__((unused)) inline unsigned long lh_OPENSSL_CSTRING_get_down_load(struct lhash_st_OPENSSL_CSTRING *lh) { return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); } static __attribute__((unused)) inline void lh_OPENSSL_CSTRING_set_down_load(struct lhash_st_OPENSSL_CSTRING *lh, unsigned long dl) { OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); } static __attribute__((unused)) inline void lh_OPENSSL_CSTRING_doall(struct lhash_st_OPENSSL_CSTRING *lh, void (*doall)(OPENSSL_CSTRING *)) { OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); } struct lhash_st_OPENSSL_CSTRING; diff --git a/libcrypto_objects_h.lua b/libcrypto_objects_h.lua new file mode 100644 index 0000000..7a3fbd7 --- /dev/null +++ b/libcrypto_objects_h.lua @@ -0,0 +1,4061 @@ +// csrc/openssl/src/include/openssl/objects.h +enum { + OBJ_NAME_TYPE_UNDEF = 0x00, + OBJ_NAME_TYPE_MD_METH = 0x01, + OBJ_NAME_TYPE_CIPHER_METH = 0x02, + OBJ_NAME_TYPE_PKEY_METH = 0x03, + OBJ_NAME_TYPE_COMP_METH = 0x04, + OBJ_NAME_TYPE_NUM = 0x05, + OBJ_NAME_ALIAS = 0x8000, + OBJ_BSEARCH_VALUE_ON_NOMATCH = 0x01, + OBJ_BSEARCH_FIRST_VALUE_ON_MATCH = 0x02, +}; +typedef struct obj_name_st { + int type; + int alias; + const char *name; + const char *data; +} OBJ_NAME; +#define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c) +int OBJ_NAME_init(void); +int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), + int (*cmp_func) (const char *, const char *), + void (*free_func) (const char *, int, const char *)); +const char *OBJ_NAME_get(const char *name, int type); +int OBJ_NAME_add(const char *name, int type, const char *data); +int OBJ_NAME_remove(const char *name, int type); +void OBJ_NAME_cleanup(int type); +void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), + void *arg); +void OBJ_NAME_do_all_sorted(int type, + void (*fn) (const OBJ_NAME *, void *arg), + void *arg); +ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o); +ASN1_OBJECT *OBJ_nid2obj(int n); +const char *OBJ_nid2ln(int n); +const char *OBJ_nid2sn(int n); +int OBJ_obj2nid(const ASN1_OBJECT *o); +ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); +int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); +int OBJ_txt2nid(const char *s); +int OBJ_ln2nid(const char *s); +int OBJ_sn2nid(const char *s); +int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); +const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, + int (*cmp) (const void *, const void *)); +const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, + int size, + int (*cmp) (const void *, const void *), + int flags); +#define _DECLARE_OBJ_BSEARCH_CMP_FN(scope,type1,type2,nm) static int nm ##_cmp_BSEARCH_CMP_FN(const void *, const void *); static int nm ##_cmp(type1 const *, type2 const *); scope type2 * OBJ_bsearch_ ##nm(type1 *key, type2 const *base, int num) +#define DECLARE_OBJ_BSEARCH_CMP_FN(type1,type2,cmp) _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) +#define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1,type2,nm) type2 * OBJ_bsearch_ ##nm(type1 *key, type2 const *base, int num) +#define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1,type2,nm) static int nm ##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) { type1 const *a = a_; type2 const *b = b_; return nm ##_cmp(a,b); } static type2 *OBJ_bsearch_ ##nm(type1 *key, type2 const *base, int num) { return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), nm ##_cmp_BSEARCH_CMP_FN); } extern void dummy_prototype(void) +#define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1,type2,nm) static int nm ##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) { type1 const *a = a_; type2 const *b = b_; return nm ##_cmp(a,b); } type2 *OBJ_bsearch_ ##nm(type1 *key, type2 const *base, int num) { return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), nm ##_cmp_BSEARCH_CMP_FN); } extern void dummy_prototype(void) +#define OBJ_bsearch(type1,key,type2,base,num,cmp) ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), num,sizeof(type2), ((void)CHECKED_PTR_OF(type1,cmp ##_type_1), (void)CHECKED_PTR_OF(type2,cmp ##_type_2), cmp ##_BSEARCH_CMP_FN))) +#define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), num,sizeof(type2), ((void)CHECKED_PTR_OF(type1,cmp ##_type_1), (void)type_2=CHECKED_PTR_OF(type2,cmp ##_type_2), cmp ##_BSEARCH_CMP_FN)),flags) +int OBJ_new_nid(int num); +int OBJ_add_object(const ASN1_OBJECT *obj); +int OBJ_create(const char *oid, const char *sn, const char *ln); +#define OBJ_cleanup() while(0) continue +int OBJ_create_objects(BIO *in); +size_t OBJ_length(const ASN1_OBJECT *obj); +const unsigned char *OBJ_get0_data(const ASN1_OBJECT *obj); +int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); +int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); +int OBJ_add_sigid(int signid, int dig_id, int pkey_id); +void OBJ_sigid_free(void); + +// csrc/openssl/src/include/openssl/obj_mac.h +enum { + SN_undef = "UNDEF", + LN_undef = "undefined", + NID_undef = 0, + OBJ_undef = 0L, + SN_itu_t = "ITU-T", + LN_itu_t = "itu-t", + NID_itu_t = 645, + OBJ_itu_t = 0L, + NID_ccitt = 404, + OBJ_ccitt = OBJ_itu_t, + SN_iso = "ISO", + LN_iso = "iso", + NID_iso = 181, + OBJ_iso = 1L, + SN_joint_iso_itu_t = "JOINT-ISO-ITU-T", + LN_joint_iso_itu_t = "joint-iso-itu-t", + NID_joint_iso_itu_t = 646, + OBJ_joint_iso_itu_t = 2L, + NID_joint_iso_ccitt = 393, + OBJ_joint_iso_ccitt = OBJ_joint_iso_itu_t, + SN_member_body = "member-body", + LN_member_body = "ISO Member Body", + NID_member_body = 182, + OBJ_member_body = OBJ_iso,2L, + SN_identified_organization = "identified-organization", + NID_identified_organization = 676, + OBJ_identified_organization = OBJ_iso,3L, + SN_hmac_md5 = "HMAC-MD5", + LN_hmac_md5 = "hmac-md5", + NID_hmac_md5 = 780, + OBJ_hmac_md5 = OBJ_identified_organization,6L,1L,5L,5L,8L,1L,1L, + SN_hmac_sha1 = "HMAC-SHA1", + LN_hmac_sha1 = "hmac-sha1", + NID_hmac_sha1 = 781, + OBJ_hmac_sha1 = OBJ_identified_organization,6L,1L,5L,5L,8L,1L,2L, + SN_x509ExtAdmission = "x509ExtAdmission", + LN_x509ExtAdmission = "Professional Information or basis for Admission", + NID_x509ExtAdmission = 1093, + OBJ_x509ExtAdmission = OBJ_identified_organization,36L,8L,3L,3L, + SN_certicom_arc = "certicom-arc", + NID_certicom_arc = 677, + OBJ_certicom_arc = OBJ_identified_organization,132L, + SN_ieee = "ieee", + NID_ieee = 1170, + OBJ_ieee = OBJ_identified_organization,111L, + SN_ieee_siswg = "ieee-siswg", + LN_ieee_siswg = "IEEE Security in Storage Working Group", + NID_ieee_siswg = 1171, + OBJ_ieee_siswg = OBJ_ieee,2L,1619L, + SN_international_organizations = "international-organizations", + LN_international_organizations = "International Organizations", + NID_international_organizations = 647, + OBJ_international_organizations = OBJ_joint_iso_itu_t,23L, + SN_wap = "wap", + NID_wap = 678, + OBJ_wap = OBJ_international_organizations,43L, + SN_wap_wsg = "wap-wsg", + NID_wap_wsg = 679, + OBJ_wap_wsg = OBJ_wap,1L, + SN_selected_attribute_types = "selected-attribute-types", + LN_selected_attribute_types = "Selected Attribute Types", + NID_selected_attribute_types = 394, + OBJ_selected_attribute_types = OBJ_joint_iso_itu_t,5L,1L,5L, + SN_clearance = "clearance", + NID_clearance = 395, + OBJ_clearance = OBJ_selected_attribute_types,55L, + SN_ISO_US = "ISO-US", + LN_ISO_US = "ISO US Member Body", + NID_ISO_US = 183, + OBJ_ISO_US = OBJ_member_body,840L, + SN_X9_57 = "X9-57", + LN_X9_57 = "X9.57", + NID_X9_57 = 184, + OBJ_X9_57 = OBJ_ISO_US,10040L, + SN_X9cm = "X9cm", + LN_X9cm = "X9.57 CM ?", + NID_X9cm = 185, + OBJ_X9cm = OBJ_X9_57,4L, + SN_ISO_CN = "ISO-CN", + LN_ISO_CN = "ISO CN Member Body", + NID_ISO_CN = 1140, + OBJ_ISO_CN = OBJ_member_body,156L, + SN_oscca = "oscca", + NID_oscca = 1141, + OBJ_oscca = OBJ_ISO_CN,10197L, + SN_sm_scheme = "sm-scheme", + NID_sm_scheme = 1142, + OBJ_sm_scheme = OBJ_oscca,1L, + SN_dsa = "DSA", + LN_dsa = "dsaEncryption", + NID_dsa = 116, + OBJ_dsa = OBJ_X9cm,1L, + SN_dsaWithSHA1 = "DSA-SHA1", + LN_dsaWithSHA1 = "dsaWithSHA1", + NID_dsaWithSHA1 = 113, + OBJ_dsaWithSHA1 = OBJ_X9cm,3L, + SN_ansi_X9_62 = "ansi-X9-62", + LN_ansi_X9_62 = "ANSI X9.62", + NID_ansi_X9_62 = 405, + OBJ_ansi_X9_62 = OBJ_ISO_US,10045L, + OBJ_X9_62_id_fieldType = OBJ_ansi_X9_62,1L, + SN_X9_62_prime_field = "prime-field", + NID_X9_62_prime_field = 406, + OBJ_X9_62_prime_field = OBJ_X9_62_id_fieldType,1L, + SN_X9_62_characteristic_two_field = "characteristic-two-field", + NID_X9_62_characteristic_two_field = 407, + OBJ_X9_62_characteristic_two_field = OBJ_X9_62_id_fieldType,2L, + SN_X9_62_id_characteristic_two_basis = "id-characteristic-two-basis", + NID_X9_62_id_characteristic_two_basis = 680, + OBJ_X9_62_id_characteristic_two_basis = OBJ_X9_62_characteristic_two_field,3L, + SN_X9_62_onBasis = "onBasis", + NID_X9_62_onBasis = 681, + OBJ_X9_62_onBasis = OBJ_X9_62_id_characteristic_two_basis,1L, + SN_X9_62_tpBasis = "tpBasis", + NID_X9_62_tpBasis = 682, + OBJ_X9_62_tpBasis = OBJ_X9_62_id_characteristic_two_basis,2L, + SN_X9_62_ppBasis = "ppBasis", + NID_X9_62_ppBasis = 683, + OBJ_X9_62_ppBasis = OBJ_X9_62_id_characteristic_two_basis,3L, + OBJ_X9_62_id_publicKeyType = OBJ_ansi_X9_62,2L, + SN_X9_62_id_ecPublicKey = "id-ecPublicKey", + NID_X9_62_id_ecPublicKey = 408, + OBJ_X9_62_id_ecPublicKey = OBJ_X9_62_id_publicKeyType,1L, + OBJ_X9_62_ellipticCurve = OBJ_ansi_X9_62,3L, + OBJ_X9_62_c_TwoCurve = OBJ_X9_62_ellipticCurve,0L, + SN_X9_62_c2pnb163v1 = "c2pnb163v1", + NID_X9_62_c2pnb163v1 = 684, + OBJ_X9_62_c2pnb163v1 = OBJ_X9_62_c_TwoCurve,1L, + SN_X9_62_c2pnb163v2 = "c2pnb163v2", + NID_X9_62_c2pnb163v2 = 685, + OBJ_X9_62_c2pnb163v2 = OBJ_X9_62_c_TwoCurve,2L, + SN_X9_62_c2pnb163v3 = "c2pnb163v3", + NID_X9_62_c2pnb163v3 = 686, + OBJ_X9_62_c2pnb163v3 = OBJ_X9_62_c_TwoCurve,3L, + SN_X9_62_c2pnb176v1 = "c2pnb176v1", + NID_X9_62_c2pnb176v1 = 687, + OBJ_X9_62_c2pnb176v1 = OBJ_X9_62_c_TwoCurve,4L, + SN_X9_62_c2tnb191v1 = "c2tnb191v1", + NID_X9_62_c2tnb191v1 = 688, + OBJ_X9_62_c2tnb191v1 = OBJ_X9_62_c_TwoCurve,5L, + SN_X9_62_c2tnb191v2 = "c2tnb191v2", + NID_X9_62_c2tnb191v2 = 689, + OBJ_X9_62_c2tnb191v2 = OBJ_X9_62_c_TwoCurve,6L, + SN_X9_62_c2tnb191v3 = "c2tnb191v3", + NID_X9_62_c2tnb191v3 = 690, + OBJ_X9_62_c2tnb191v3 = OBJ_X9_62_c_TwoCurve,7L, + SN_X9_62_c2onb191v4 = "c2onb191v4", + NID_X9_62_c2onb191v4 = 691, + OBJ_X9_62_c2onb191v4 = OBJ_X9_62_c_TwoCurve,8L, + SN_X9_62_c2onb191v5 = "c2onb191v5", + NID_X9_62_c2onb191v5 = 692, + OBJ_X9_62_c2onb191v5 = OBJ_X9_62_c_TwoCurve,9L, + SN_X9_62_c2pnb208w1 = "c2pnb208w1", + NID_X9_62_c2pnb208w1 = 693, + OBJ_X9_62_c2pnb208w1 = OBJ_X9_62_c_TwoCurve,10L, + SN_X9_62_c2tnb239v1 = "c2tnb239v1", + NID_X9_62_c2tnb239v1 = 694, + OBJ_X9_62_c2tnb239v1 = OBJ_X9_62_c_TwoCurve,11L, + SN_X9_62_c2tnb239v2 = "c2tnb239v2", + NID_X9_62_c2tnb239v2 = 695, + OBJ_X9_62_c2tnb239v2 = OBJ_X9_62_c_TwoCurve,12L, + SN_X9_62_c2tnb239v3 = "c2tnb239v3", + NID_X9_62_c2tnb239v3 = 696, + OBJ_X9_62_c2tnb239v3 = OBJ_X9_62_c_TwoCurve,13L, + SN_X9_62_c2onb239v4 = "c2onb239v4", + NID_X9_62_c2onb239v4 = 697, + OBJ_X9_62_c2onb239v4 = OBJ_X9_62_c_TwoCurve,14L, + SN_X9_62_c2onb239v5 = "c2onb239v5", + NID_X9_62_c2onb239v5 = 698, + OBJ_X9_62_c2onb239v5 = OBJ_X9_62_c_TwoCurve,15L, + SN_X9_62_c2pnb272w1 = "c2pnb272w1", + NID_X9_62_c2pnb272w1 = 699, + OBJ_X9_62_c2pnb272w1 = OBJ_X9_62_c_TwoCurve,16L, + SN_X9_62_c2pnb304w1 = "c2pnb304w1", + NID_X9_62_c2pnb304w1 = 700, + OBJ_X9_62_c2pnb304w1 = OBJ_X9_62_c_TwoCurve,17L, + SN_X9_62_c2tnb359v1 = "c2tnb359v1", + NID_X9_62_c2tnb359v1 = 701, + OBJ_X9_62_c2tnb359v1 = OBJ_X9_62_c_TwoCurve,18L, + SN_X9_62_c2pnb368w1 = "c2pnb368w1", + NID_X9_62_c2pnb368w1 = 702, + OBJ_X9_62_c2pnb368w1 = OBJ_X9_62_c_TwoCurve,19L, + SN_X9_62_c2tnb431r1 = "c2tnb431r1", + NID_X9_62_c2tnb431r1 = 703, + OBJ_X9_62_c2tnb431r1 = OBJ_X9_62_c_TwoCurve,20L, + OBJ_X9_62_primeCurve = OBJ_X9_62_ellipticCurve,1L, + SN_X9_62_prime192v1 = "prime192v1", + NID_X9_62_prime192v1 = 409, + OBJ_X9_62_prime192v1 = OBJ_X9_62_primeCurve,1L, + SN_X9_62_prime192v2 = "prime192v2", + NID_X9_62_prime192v2 = 410, + OBJ_X9_62_prime192v2 = OBJ_X9_62_primeCurve,2L, + SN_X9_62_prime192v3 = "prime192v3", + NID_X9_62_prime192v3 = 411, + OBJ_X9_62_prime192v3 = OBJ_X9_62_primeCurve,3L, + SN_X9_62_prime239v1 = "prime239v1", + NID_X9_62_prime239v1 = 412, + OBJ_X9_62_prime239v1 = OBJ_X9_62_primeCurve,4L, + SN_X9_62_prime239v2 = "prime239v2", + NID_X9_62_prime239v2 = 413, + OBJ_X9_62_prime239v2 = OBJ_X9_62_primeCurve,5L, + SN_X9_62_prime239v3 = "prime239v3", + NID_X9_62_prime239v3 = 414, + OBJ_X9_62_prime239v3 = OBJ_X9_62_primeCurve,6L, + SN_X9_62_prime256v1 = "prime256v1", + NID_X9_62_prime256v1 = 415, + OBJ_X9_62_prime256v1 = OBJ_X9_62_primeCurve,7L, + OBJ_X9_62_id_ecSigType = OBJ_ansi_X9_62,4L, + SN_ecdsa_with_SHA1 = "ecdsa-with-SHA1", + NID_ecdsa_with_SHA1 = 416, + OBJ_ecdsa_with_SHA1 = OBJ_X9_62_id_ecSigType,1L, + SN_ecdsa_with_Recommended = "ecdsa-with-Recommended", + NID_ecdsa_with_Recommended = 791, + OBJ_ecdsa_with_Recommended = OBJ_X9_62_id_ecSigType,2L, + SN_ecdsa_with_Specified = "ecdsa-with-Specified", + NID_ecdsa_with_Specified = 792, + OBJ_ecdsa_with_Specified = OBJ_X9_62_id_ecSigType,3L, + SN_ecdsa_with_SHA224 = "ecdsa-with-SHA224", + NID_ecdsa_with_SHA224 = 793, + OBJ_ecdsa_with_SHA224 = OBJ_ecdsa_with_Specified,1L, + SN_ecdsa_with_SHA256 = "ecdsa-with-SHA256", + NID_ecdsa_with_SHA256 = 794, + OBJ_ecdsa_with_SHA256 = OBJ_ecdsa_with_Specified,2L, + SN_ecdsa_with_SHA384 = "ecdsa-with-SHA384", + NID_ecdsa_with_SHA384 = 795, + OBJ_ecdsa_with_SHA384 = OBJ_ecdsa_with_Specified,3L, + SN_ecdsa_with_SHA512 = "ecdsa-with-SHA512", + NID_ecdsa_with_SHA512 = 796, + OBJ_ecdsa_with_SHA512 = OBJ_ecdsa_with_Specified,4L, + OBJ_secg_ellipticCurve = OBJ_certicom_arc,0L, + SN_secp112r1 = "secp112r1", + NID_secp112r1 = 704, + OBJ_secp112r1 = OBJ_secg_ellipticCurve,6L, + SN_secp112r2 = "secp112r2", + NID_secp112r2 = 705, + OBJ_secp112r2 = OBJ_secg_ellipticCurve,7L, + SN_secp128r1 = "secp128r1", + NID_secp128r1 = 706, + OBJ_secp128r1 = OBJ_secg_ellipticCurve,28L, + SN_secp128r2 = "secp128r2", + NID_secp128r2 = 707, + OBJ_secp128r2 = OBJ_secg_ellipticCurve,29L, + SN_secp160k1 = "secp160k1", + NID_secp160k1 = 708, + OBJ_secp160k1 = OBJ_secg_ellipticCurve,9L, + SN_secp160r1 = "secp160r1", + NID_secp160r1 = 709, + OBJ_secp160r1 = OBJ_secg_ellipticCurve,8L, + SN_secp160r2 = "secp160r2", + NID_secp160r2 = 710, + OBJ_secp160r2 = OBJ_secg_ellipticCurve,30L, + SN_secp192k1 = "secp192k1", + NID_secp192k1 = 711, + OBJ_secp192k1 = OBJ_secg_ellipticCurve,31L, + SN_secp224k1 = "secp224k1", + NID_secp224k1 = 712, + OBJ_secp224k1 = OBJ_secg_ellipticCurve,32L, + SN_secp224r1 = "secp224r1", + NID_secp224r1 = 713, + OBJ_secp224r1 = OBJ_secg_ellipticCurve,33L, + SN_secp256k1 = "secp256k1", + NID_secp256k1 = 714, + OBJ_secp256k1 = OBJ_secg_ellipticCurve,10L, + SN_secp384r1 = "secp384r1", + NID_secp384r1 = 715, + OBJ_secp384r1 = OBJ_secg_ellipticCurve,34L, + SN_secp521r1 = "secp521r1", + NID_secp521r1 = 716, + OBJ_secp521r1 = OBJ_secg_ellipticCurve,35L, + SN_sect113r1 = "sect113r1", + NID_sect113r1 = 717, + OBJ_sect113r1 = OBJ_secg_ellipticCurve,4L, + SN_sect113r2 = "sect113r2", + NID_sect113r2 = 718, + OBJ_sect113r2 = OBJ_secg_ellipticCurve,5L, + SN_sect131r1 = "sect131r1", + NID_sect131r1 = 719, + OBJ_sect131r1 = OBJ_secg_ellipticCurve,22L, + SN_sect131r2 = "sect131r2", + NID_sect131r2 = 720, + OBJ_sect131r2 = OBJ_secg_ellipticCurve,23L, + SN_sect163k1 = "sect163k1", + NID_sect163k1 = 721, + OBJ_sect163k1 = OBJ_secg_ellipticCurve,1L, + SN_sect163r1 = "sect163r1", + NID_sect163r1 = 722, + OBJ_sect163r1 = OBJ_secg_ellipticCurve,2L, + SN_sect163r2 = "sect163r2", + NID_sect163r2 = 723, + OBJ_sect163r2 = OBJ_secg_ellipticCurve,15L, + SN_sect193r1 = "sect193r1", + NID_sect193r1 = 724, + OBJ_sect193r1 = OBJ_secg_ellipticCurve,24L, + SN_sect193r2 = "sect193r2", + NID_sect193r2 = 725, + OBJ_sect193r2 = OBJ_secg_ellipticCurve,25L, + SN_sect233k1 = "sect233k1", + NID_sect233k1 = 726, + OBJ_sect233k1 = OBJ_secg_ellipticCurve,26L, + SN_sect233r1 = "sect233r1", + NID_sect233r1 = 727, + OBJ_sect233r1 = OBJ_secg_ellipticCurve,27L, + SN_sect239k1 = "sect239k1", + NID_sect239k1 = 728, + OBJ_sect239k1 = OBJ_secg_ellipticCurve,3L, + SN_sect283k1 = "sect283k1", + NID_sect283k1 = 729, + OBJ_sect283k1 = OBJ_secg_ellipticCurve,16L, + SN_sect283r1 = "sect283r1", + NID_sect283r1 = 730, + OBJ_sect283r1 = OBJ_secg_ellipticCurve,17L, + SN_sect409k1 = "sect409k1", + NID_sect409k1 = 731, + OBJ_sect409k1 = OBJ_secg_ellipticCurve,36L, + SN_sect409r1 = "sect409r1", + NID_sect409r1 = 732, + OBJ_sect409r1 = OBJ_secg_ellipticCurve,37L, + SN_sect571k1 = "sect571k1", + NID_sect571k1 = 733, + OBJ_sect571k1 = OBJ_secg_ellipticCurve,38L, + SN_sect571r1 = "sect571r1", + NID_sect571r1 = 734, + OBJ_sect571r1 = OBJ_secg_ellipticCurve,39L, + OBJ_wap_wsg_idm_ecid = OBJ_wap_wsg,4L, + SN_wap_wsg_idm_ecid_wtls1 = "wap-wsg-idm-ecid-wtls1", + NID_wap_wsg_idm_ecid_wtls1 = 735, + OBJ_wap_wsg_idm_ecid_wtls1 = OBJ_wap_wsg_idm_ecid,1L, + SN_wap_wsg_idm_ecid_wtls3 = "wap-wsg-idm-ecid-wtls3", + NID_wap_wsg_idm_ecid_wtls3 = 736, + OBJ_wap_wsg_idm_ecid_wtls3 = OBJ_wap_wsg_idm_ecid,3L, + SN_wap_wsg_idm_ecid_wtls4 = "wap-wsg-idm-ecid-wtls4", + NID_wap_wsg_idm_ecid_wtls4 = 737, + OBJ_wap_wsg_idm_ecid_wtls4 = OBJ_wap_wsg_idm_ecid,4L, + SN_wap_wsg_idm_ecid_wtls5 = "wap-wsg-idm-ecid-wtls5", + NID_wap_wsg_idm_ecid_wtls5 = 738, + OBJ_wap_wsg_idm_ecid_wtls5 = OBJ_wap_wsg_idm_ecid,5L, + SN_wap_wsg_idm_ecid_wtls6 = "wap-wsg-idm-ecid-wtls6", + NID_wap_wsg_idm_ecid_wtls6 = 739, + OBJ_wap_wsg_idm_ecid_wtls6 = OBJ_wap_wsg_idm_ecid,6L, + SN_wap_wsg_idm_ecid_wtls7 = "wap-wsg-idm-ecid-wtls7", + NID_wap_wsg_idm_ecid_wtls7 = 740, + OBJ_wap_wsg_idm_ecid_wtls7 = OBJ_wap_wsg_idm_ecid,7L, + SN_wap_wsg_idm_ecid_wtls8 = "wap-wsg-idm-ecid-wtls8", + NID_wap_wsg_idm_ecid_wtls8 = 741, + OBJ_wap_wsg_idm_ecid_wtls8 = OBJ_wap_wsg_idm_ecid,8L, + SN_wap_wsg_idm_ecid_wtls9 = "wap-wsg-idm-ecid-wtls9", + NID_wap_wsg_idm_ecid_wtls9 = 742, + OBJ_wap_wsg_idm_ecid_wtls9 = OBJ_wap_wsg_idm_ecid,9L, + SN_wap_wsg_idm_ecid_wtls10 = "wap-wsg-idm-ecid-wtls10", + NID_wap_wsg_idm_ecid_wtls10 = 743, + OBJ_wap_wsg_idm_ecid_wtls10 = OBJ_wap_wsg_idm_ecid,10L, + SN_wap_wsg_idm_ecid_wtls11 = "wap-wsg-idm-ecid-wtls11", + NID_wap_wsg_idm_ecid_wtls11 = 744, + OBJ_wap_wsg_idm_ecid_wtls11 = OBJ_wap_wsg_idm_ecid,11L, + SN_wap_wsg_idm_ecid_wtls12 = "wap-wsg-idm-ecid-wtls12", + NID_wap_wsg_idm_ecid_wtls12 = 745, + OBJ_wap_wsg_idm_ecid_wtls12 = OBJ_wap_wsg_idm_ecid,12L, + SN_cast5_cbc = "CAST5-CBC", + LN_cast5_cbc = "cast5-cbc", + NID_cast5_cbc = 108, + OBJ_cast5_cbc = OBJ_ISO_US,113533L,7L,66L,10L, + SN_cast5_ecb = "CAST5-ECB", + LN_cast5_ecb = "cast5-ecb", + NID_cast5_ecb = 109, + SN_cast5_cfb64 = "CAST5-CFB", + LN_cast5_cfb64 = "cast5-cfb", + NID_cast5_cfb64 = 110, + SN_cast5_ofb64 = "CAST5-OFB", + LN_cast5_ofb64 = "cast5-ofb", + NID_cast5_ofb64 = 111, + LN_pbeWithMD5AndCast5_CBC = "pbeWithMD5AndCast5CBC", + NID_pbeWithMD5AndCast5_CBC = 112, + OBJ_pbeWithMD5AndCast5_CBC = OBJ_ISO_US,113533L,7L,66L,12L, + SN_id_PasswordBasedMAC = "id-PasswordBasedMAC", + LN_id_PasswordBasedMAC = "password based MAC", + NID_id_PasswordBasedMAC = 782, + OBJ_id_PasswordBasedMAC = OBJ_ISO_US,113533L,7L,66L,13L, + SN_id_DHBasedMac = "id-DHBasedMac", + LN_id_DHBasedMac = "Diffie-Hellman based MAC", + NID_id_DHBasedMac = 783, + OBJ_id_DHBasedMac = OBJ_ISO_US,113533L,7L,66L,30L, + SN_rsadsi = "rsadsi", + LN_rsadsi = "RSA Data Security, Inc.", + NID_rsadsi = 1, + OBJ_rsadsi = OBJ_ISO_US,113549L, + SN_pkcs = "pkcs", + LN_pkcs = "RSA Data Security, Inc. PKCS", + NID_pkcs = 2, + OBJ_pkcs = OBJ_rsadsi,1L, + SN_pkcs1 = "pkcs1", + NID_pkcs1 = 186, + OBJ_pkcs1 = OBJ_pkcs,1L, + LN_rsaEncryption = "rsaEncryption", + NID_rsaEncryption = 6, + OBJ_rsaEncryption = OBJ_pkcs1,1L, + SN_md2WithRSAEncryption = "RSA-MD2", + LN_md2WithRSAEncryption = "md2WithRSAEncryption", + NID_md2WithRSAEncryption = 7, + OBJ_md2WithRSAEncryption = OBJ_pkcs1,2L, + SN_md4WithRSAEncryption = "RSA-MD4", + LN_md4WithRSAEncryption = "md4WithRSAEncryption", + NID_md4WithRSAEncryption = 396, + OBJ_md4WithRSAEncryption = OBJ_pkcs1,3L, + SN_md5WithRSAEncryption = "RSA-MD5", + LN_md5WithRSAEncryption = "md5WithRSAEncryption", + NID_md5WithRSAEncryption = 8, + OBJ_md5WithRSAEncryption = OBJ_pkcs1,4L, + SN_sha1WithRSAEncryption = "RSA-SHA1", + LN_sha1WithRSAEncryption = "sha1WithRSAEncryption", + NID_sha1WithRSAEncryption = 65, + OBJ_sha1WithRSAEncryption = OBJ_pkcs1,5L, + SN_rsaesOaep = "RSAES-OAEP", + LN_rsaesOaep = "rsaesOaep", + NID_rsaesOaep = 919, + OBJ_rsaesOaep = OBJ_pkcs1,7L, + SN_mgf1 = "MGF1", + LN_mgf1 = "mgf1", + NID_mgf1 = 911, + OBJ_mgf1 = OBJ_pkcs1,8L, + SN_pSpecified = "PSPECIFIED", + LN_pSpecified = "pSpecified", + NID_pSpecified = 935, + OBJ_pSpecified = OBJ_pkcs1,9L, + SN_rsassaPss = "RSASSA-PSS", + LN_rsassaPss = "rsassaPss", + NID_rsassaPss = 912, + OBJ_rsassaPss = OBJ_pkcs1,10L, + SN_sha256WithRSAEncryption = "RSA-SHA256", + LN_sha256WithRSAEncryption = "sha256WithRSAEncryption", + NID_sha256WithRSAEncryption = 668, + OBJ_sha256WithRSAEncryption = OBJ_pkcs1,11L, + SN_sha384WithRSAEncryption = "RSA-SHA384", + LN_sha384WithRSAEncryption = "sha384WithRSAEncryption", + NID_sha384WithRSAEncryption = 669, + OBJ_sha384WithRSAEncryption = OBJ_pkcs1,12L, + SN_sha512WithRSAEncryption = "RSA-SHA512", + LN_sha512WithRSAEncryption = "sha512WithRSAEncryption", + NID_sha512WithRSAEncryption = 670, + OBJ_sha512WithRSAEncryption = OBJ_pkcs1,13L, + SN_sha224WithRSAEncryption = "RSA-SHA224", + LN_sha224WithRSAEncryption = "sha224WithRSAEncryption", + NID_sha224WithRSAEncryption = 671, + OBJ_sha224WithRSAEncryption = OBJ_pkcs1,14L, + SN_sha512_224WithRSAEncryption = "RSA-SHA512/224", + LN_sha512_224WithRSAEncryption = "sha512-224WithRSAEncryption", + NID_sha512_224WithRSAEncryption = 1145, + OBJ_sha512_224WithRSAEncryption = OBJ_pkcs1,15L, + SN_sha512_256WithRSAEncryption = "RSA-SHA512/256", + LN_sha512_256WithRSAEncryption = "sha512-256WithRSAEncryption", + NID_sha512_256WithRSAEncryption = 1146, + OBJ_sha512_256WithRSAEncryption = OBJ_pkcs1,16L, + SN_pkcs3 = "pkcs3", + NID_pkcs3 = 27, + OBJ_pkcs3 = OBJ_pkcs,3L, + LN_dhKeyAgreement = "dhKeyAgreement", + NID_dhKeyAgreement = 28, + OBJ_dhKeyAgreement = OBJ_pkcs3,1L, + SN_pkcs5 = "pkcs5", + NID_pkcs5 = 187, + OBJ_pkcs5 = OBJ_pkcs,5L, + SN_pbeWithMD2AndDES_CBC = "PBE-MD2-DES", + LN_pbeWithMD2AndDES_CBC = "pbeWithMD2AndDES-CBC", + NID_pbeWithMD2AndDES_CBC = 9, + OBJ_pbeWithMD2AndDES_CBC = OBJ_pkcs5,1L, + SN_pbeWithMD5AndDES_CBC = "PBE-MD5-DES", + LN_pbeWithMD5AndDES_CBC = "pbeWithMD5AndDES-CBC", + NID_pbeWithMD5AndDES_CBC = 10, + OBJ_pbeWithMD5AndDES_CBC = OBJ_pkcs5,3L, + SN_pbeWithMD2AndRC2_CBC = "PBE-MD2-RC2-64", + LN_pbeWithMD2AndRC2_CBC = "pbeWithMD2AndRC2-CBC", + NID_pbeWithMD2AndRC2_CBC = 168, + OBJ_pbeWithMD2AndRC2_CBC = OBJ_pkcs5,4L, + SN_pbeWithMD5AndRC2_CBC = "PBE-MD5-RC2-64", + LN_pbeWithMD5AndRC2_CBC = "pbeWithMD5AndRC2-CBC", + NID_pbeWithMD5AndRC2_CBC = 169, + OBJ_pbeWithMD5AndRC2_CBC = OBJ_pkcs5,6L, + SN_pbeWithSHA1AndDES_CBC = "PBE-SHA1-DES", + LN_pbeWithSHA1AndDES_CBC = "pbeWithSHA1AndDES-CBC", + NID_pbeWithSHA1AndDES_CBC = 170, + OBJ_pbeWithSHA1AndDES_CBC = OBJ_pkcs5,10L, + SN_pbeWithSHA1AndRC2_CBC = "PBE-SHA1-RC2-64", + LN_pbeWithSHA1AndRC2_CBC = "pbeWithSHA1AndRC2-CBC", + NID_pbeWithSHA1AndRC2_CBC = 68, + OBJ_pbeWithSHA1AndRC2_CBC = OBJ_pkcs5,11L, + LN_id_pbkdf2 = "PBKDF2", + NID_id_pbkdf2 = 69, + OBJ_id_pbkdf2 = OBJ_pkcs5,12L, + LN_pbes2 = "PBES2", + NID_pbes2 = 161, + OBJ_pbes2 = OBJ_pkcs5,13L, + LN_pbmac1 = "PBMAC1", + NID_pbmac1 = 162, + OBJ_pbmac1 = OBJ_pkcs5,14L, + SN_pkcs7 = "pkcs7", + NID_pkcs7 = 20, + OBJ_pkcs7 = OBJ_pkcs,7L, + LN_pkcs7_data = "pkcs7-data", + NID_pkcs7_data = 21, + OBJ_pkcs7_data = OBJ_pkcs7,1L, + LN_pkcs7_signed = "pkcs7-signedData", + NID_pkcs7_signed = 22, + OBJ_pkcs7_signed = OBJ_pkcs7,2L, + LN_pkcs7_enveloped = "pkcs7-envelopedData", + NID_pkcs7_enveloped = 23, + OBJ_pkcs7_enveloped = OBJ_pkcs7,3L, + LN_pkcs7_signedAndEnveloped = "pkcs7-signedAndEnvelopedData", + NID_pkcs7_signedAndEnveloped = 24, + OBJ_pkcs7_signedAndEnveloped = OBJ_pkcs7,4L, + LN_pkcs7_digest = "pkcs7-digestData", + NID_pkcs7_digest = 25, + OBJ_pkcs7_digest = OBJ_pkcs7,5L, + LN_pkcs7_encrypted = "pkcs7-encryptedData", + NID_pkcs7_encrypted = 26, + OBJ_pkcs7_encrypted = OBJ_pkcs7,6L, + SN_pkcs9 = "pkcs9", + NID_pkcs9 = 47, + OBJ_pkcs9 = OBJ_pkcs,9L, + LN_pkcs9_emailAddress = "emailAddress", + NID_pkcs9_emailAddress = 48, + OBJ_pkcs9_emailAddress = OBJ_pkcs9,1L, + LN_pkcs9_unstructuredName = "unstructuredName", + NID_pkcs9_unstructuredName = 49, + OBJ_pkcs9_unstructuredName = OBJ_pkcs9,2L, + LN_pkcs9_contentType = "contentType", + NID_pkcs9_contentType = 50, + OBJ_pkcs9_contentType = OBJ_pkcs9,3L, + LN_pkcs9_messageDigest = "messageDigest", + NID_pkcs9_messageDigest = 51, + OBJ_pkcs9_messageDigest = OBJ_pkcs9,4L, + LN_pkcs9_signingTime = "signingTime", + NID_pkcs9_signingTime = 52, + OBJ_pkcs9_signingTime = OBJ_pkcs9,5L, + LN_pkcs9_countersignature = "countersignature", + NID_pkcs9_countersignature = 53, + OBJ_pkcs9_countersignature = OBJ_pkcs9,6L, + LN_pkcs9_challengePassword = "challengePassword", + NID_pkcs9_challengePassword = 54, + OBJ_pkcs9_challengePassword = OBJ_pkcs9,7L, + LN_pkcs9_unstructuredAddress = "unstructuredAddress", + NID_pkcs9_unstructuredAddress = 55, + OBJ_pkcs9_unstructuredAddress = OBJ_pkcs9,8L, + LN_pkcs9_extCertAttributes = "extendedCertificateAttributes", + NID_pkcs9_extCertAttributes = 56, + OBJ_pkcs9_extCertAttributes = OBJ_pkcs9,9L, + SN_ext_req = "extReq", + LN_ext_req = "Extension Request", + NID_ext_req = 172, + OBJ_ext_req = OBJ_pkcs9,14L, + SN_SMIMECapabilities = "SMIME-CAPS", + LN_SMIMECapabilities = "S/MIME Capabilities", + NID_SMIMECapabilities = 167, + OBJ_SMIMECapabilities = OBJ_pkcs9,15L, + SN_SMIME = "SMIME", + LN_SMIME = "S/MIME", + NID_SMIME = 188, + OBJ_SMIME = OBJ_pkcs9,16L, + SN_id_smime_mod = "id-smime-mod", + NID_id_smime_mod = 189, + OBJ_id_smime_mod = OBJ_SMIME,0L, + SN_id_smime_ct = "id-smime-ct", + NID_id_smime_ct = 190, + OBJ_id_smime_ct = OBJ_SMIME,1L, + SN_id_smime_aa = "id-smime-aa", + NID_id_smime_aa = 191, + OBJ_id_smime_aa = OBJ_SMIME,2L, + SN_id_smime_alg = "id-smime-alg", + NID_id_smime_alg = 192, + OBJ_id_smime_alg = OBJ_SMIME,3L, + SN_id_smime_cd = "id-smime-cd", + NID_id_smime_cd = 193, + OBJ_id_smime_cd = OBJ_SMIME,4L, + SN_id_smime_spq = "id-smime-spq", + NID_id_smime_spq = 194, + OBJ_id_smime_spq = OBJ_SMIME,5L, + SN_id_smime_cti = "id-smime-cti", + NID_id_smime_cti = 195, + OBJ_id_smime_cti = OBJ_SMIME,6L, + SN_id_smime_mod_cms = "id-smime-mod-cms", + NID_id_smime_mod_cms = 196, + OBJ_id_smime_mod_cms = OBJ_id_smime_mod,1L, + SN_id_smime_mod_ess = "id-smime-mod-ess", + NID_id_smime_mod_ess = 197, + OBJ_id_smime_mod_ess = OBJ_id_smime_mod,2L, + SN_id_smime_mod_oid = "id-smime-mod-oid", + NID_id_smime_mod_oid = 198, + OBJ_id_smime_mod_oid = OBJ_id_smime_mod,3L, + SN_id_smime_mod_msg_v3 = "id-smime-mod-msg-v3", + NID_id_smime_mod_msg_v3 = 199, + OBJ_id_smime_mod_msg_v3 = OBJ_id_smime_mod,4L, + SN_id_smime_mod_ets_eSignature_88 = "id-smime-mod-ets-eSignature-88", + NID_id_smime_mod_ets_eSignature_88 = 200, + OBJ_id_smime_mod_ets_eSignature_88 = OBJ_id_smime_mod,5L, + SN_id_smime_mod_ets_eSignature_97 = "id-smime-mod-ets-eSignature-97", + NID_id_smime_mod_ets_eSignature_97 = 201, + OBJ_id_smime_mod_ets_eSignature_97 = OBJ_id_smime_mod,6L, + SN_id_smime_mod_ets_eSigPolicy_88 = "id-smime-mod-ets-eSigPolicy-88", + NID_id_smime_mod_ets_eSigPolicy_88 = 202, + OBJ_id_smime_mod_ets_eSigPolicy_88 = OBJ_id_smime_mod,7L, + SN_id_smime_mod_ets_eSigPolicy_97 = "id-smime-mod-ets-eSigPolicy-97", + NID_id_smime_mod_ets_eSigPolicy_97 = 203, + OBJ_id_smime_mod_ets_eSigPolicy_97 = OBJ_id_smime_mod,8L, + SN_id_smime_ct_receipt = "id-smime-ct-receipt", + NID_id_smime_ct_receipt = 204, + OBJ_id_smime_ct_receipt = OBJ_id_smime_ct,1L, + SN_id_smime_ct_authData = "id-smime-ct-authData", + NID_id_smime_ct_authData = 205, + OBJ_id_smime_ct_authData = OBJ_id_smime_ct,2L, + SN_id_smime_ct_publishCert = "id-smime-ct-publishCert", + NID_id_smime_ct_publishCert = 206, + OBJ_id_smime_ct_publishCert = OBJ_id_smime_ct,3L, + SN_id_smime_ct_TSTInfo = "id-smime-ct-TSTInfo", + NID_id_smime_ct_TSTInfo = 207, + OBJ_id_smime_ct_TSTInfo = OBJ_id_smime_ct,4L, + SN_id_smime_ct_TDTInfo = "id-smime-ct-TDTInfo", + NID_id_smime_ct_TDTInfo = 208, + OBJ_id_smime_ct_TDTInfo = OBJ_id_smime_ct,5L, + SN_id_smime_ct_contentInfo = "id-smime-ct-contentInfo", + NID_id_smime_ct_contentInfo = 209, + OBJ_id_smime_ct_contentInfo = OBJ_id_smime_ct,6L, + SN_id_smime_ct_DVCSRequestData = "id-smime-ct-DVCSRequestData", + NID_id_smime_ct_DVCSRequestData = 210, + OBJ_id_smime_ct_DVCSRequestData = OBJ_id_smime_ct,7L, + SN_id_smime_ct_DVCSResponseData = "id-smime-ct-DVCSResponseData", + NID_id_smime_ct_DVCSResponseData = 211, + OBJ_id_smime_ct_DVCSResponseData = OBJ_id_smime_ct,8L, + SN_id_smime_ct_compressedData = "id-smime-ct-compressedData", + NID_id_smime_ct_compressedData = 786, + OBJ_id_smime_ct_compressedData = OBJ_id_smime_ct,9L, + SN_id_smime_ct_contentCollection = "id-smime-ct-contentCollection", + NID_id_smime_ct_contentCollection = 1058, + OBJ_id_smime_ct_contentCollection = OBJ_id_smime_ct,19L, + SN_id_smime_ct_authEnvelopedData = "id-smime-ct-authEnvelopedData", + NID_id_smime_ct_authEnvelopedData = 1059, + OBJ_id_smime_ct_authEnvelopedData = OBJ_id_smime_ct,23L, + SN_id_ct_asciiTextWithCRLF = "id-ct-asciiTextWithCRLF", + NID_id_ct_asciiTextWithCRLF = 787, + OBJ_id_ct_asciiTextWithCRLF = OBJ_id_smime_ct,27L, + SN_id_ct_xml = "id-ct-xml", + NID_id_ct_xml = 1060, + OBJ_id_ct_xml = OBJ_id_smime_ct,28L, + SN_id_smime_aa_receiptRequest = "id-smime-aa-receiptRequest", + NID_id_smime_aa_receiptRequest = 212, + OBJ_id_smime_aa_receiptRequest = OBJ_id_smime_aa,1L, + SN_id_smime_aa_securityLabel = "id-smime-aa-securityLabel", + NID_id_smime_aa_securityLabel = 213, + OBJ_id_smime_aa_securityLabel = OBJ_id_smime_aa,2L, + SN_id_smime_aa_mlExpandHistory = "id-smime-aa-mlExpandHistory", + NID_id_smime_aa_mlExpandHistory = 214, + OBJ_id_smime_aa_mlExpandHistory = OBJ_id_smime_aa,3L, + SN_id_smime_aa_contentHint = "id-smime-aa-contentHint", + NID_id_smime_aa_contentHint = 215, + OBJ_id_smime_aa_contentHint = OBJ_id_smime_aa,4L, + SN_id_smime_aa_msgSigDigest = "id-smime-aa-msgSigDigest", + NID_id_smime_aa_msgSigDigest = 216, + OBJ_id_smime_aa_msgSigDigest = OBJ_id_smime_aa,5L, + SN_id_smime_aa_encapContentType = "id-smime-aa-encapContentType", + NID_id_smime_aa_encapContentType = 217, + OBJ_id_smime_aa_encapContentType = OBJ_id_smime_aa,6L, + SN_id_smime_aa_contentIdentifier = "id-smime-aa-contentIdentifier", + NID_id_smime_aa_contentIdentifier = 218, + OBJ_id_smime_aa_contentIdentifier = OBJ_id_smime_aa,7L, + SN_id_smime_aa_macValue = "id-smime-aa-macValue", + NID_id_smime_aa_macValue = 219, + OBJ_id_smime_aa_macValue = OBJ_id_smime_aa,8L, + SN_id_smime_aa_equivalentLabels = "id-smime-aa-equivalentLabels", + NID_id_smime_aa_equivalentLabels = 220, + OBJ_id_smime_aa_equivalentLabels = OBJ_id_smime_aa,9L, + SN_id_smime_aa_contentReference = "id-smime-aa-contentReference", + NID_id_smime_aa_contentReference = 221, + OBJ_id_smime_aa_contentReference = OBJ_id_smime_aa,10L, + SN_id_smime_aa_encrypKeyPref = "id-smime-aa-encrypKeyPref", + NID_id_smime_aa_encrypKeyPref = 222, + OBJ_id_smime_aa_encrypKeyPref = OBJ_id_smime_aa,11L, + SN_id_smime_aa_signingCertificate = "id-smime-aa-signingCertificate", + NID_id_smime_aa_signingCertificate = 223, + OBJ_id_smime_aa_signingCertificate = OBJ_id_smime_aa,12L, + SN_id_smime_aa_smimeEncryptCerts = "id-smime-aa-smimeEncryptCerts", + NID_id_smime_aa_smimeEncryptCerts = 224, + OBJ_id_smime_aa_smimeEncryptCerts = OBJ_id_smime_aa,13L, + SN_id_smime_aa_timeStampToken = "id-smime-aa-timeStampToken", + NID_id_smime_aa_timeStampToken = 225, + OBJ_id_smime_aa_timeStampToken = OBJ_id_smime_aa,14L, + SN_id_smime_aa_ets_sigPolicyId = "id-smime-aa-ets-sigPolicyId", + NID_id_smime_aa_ets_sigPolicyId = 226, + OBJ_id_smime_aa_ets_sigPolicyId = OBJ_id_smime_aa,15L, + SN_id_smime_aa_ets_commitmentType = "id-smime-aa-ets-commitmentType", + NID_id_smime_aa_ets_commitmentType = 227, + OBJ_id_smime_aa_ets_commitmentType = OBJ_id_smime_aa,16L, + SN_id_smime_aa_ets_signerLocation = "id-smime-aa-ets-signerLocation", + NID_id_smime_aa_ets_signerLocation = 228, + OBJ_id_smime_aa_ets_signerLocation = OBJ_id_smime_aa,17L, + SN_id_smime_aa_ets_signerAttr = "id-smime-aa-ets-signerAttr", + NID_id_smime_aa_ets_signerAttr = 229, + OBJ_id_smime_aa_ets_signerAttr = OBJ_id_smime_aa,18L, + SN_id_smime_aa_ets_otherSigCert = "id-smime-aa-ets-otherSigCert", + NID_id_smime_aa_ets_otherSigCert = 230, + OBJ_id_smime_aa_ets_otherSigCert = OBJ_id_smime_aa,19L, + SN_id_smime_aa_ets_contentTimestamp = "id-smime-aa-ets-contentTimestamp", + NID_id_smime_aa_ets_contentTimestamp = 231, + OBJ_id_smime_aa_ets_contentTimestamp = OBJ_id_smime_aa,20L, + SN_id_smime_aa_ets_CertificateRefs = "id-smime-aa-ets-CertificateRefs", + NID_id_smime_aa_ets_CertificateRefs = 232, + OBJ_id_smime_aa_ets_CertificateRefs = OBJ_id_smime_aa,21L, + SN_id_smime_aa_ets_RevocationRefs = "id-smime-aa-ets-RevocationRefs", + NID_id_smime_aa_ets_RevocationRefs = 233, + OBJ_id_smime_aa_ets_RevocationRefs = OBJ_id_smime_aa,22L, + SN_id_smime_aa_ets_certValues = "id-smime-aa-ets-certValues", + NID_id_smime_aa_ets_certValues = 234, + OBJ_id_smime_aa_ets_certValues = OBJ_id_smime_aa,23L, + SN_id_smime_aa_ets_revocationValues = "id-smime-aa-ets-revocationValues", + NID_id_smime_aa_ets_revocationValues = 235, + OBJ_id_smime_aa_ets_revocationValues = OBJ_id_smime_aa,24L, + SN_id_smime_aa_ets_escTimeStamp = "id-smime-aa-ets-escTimeStamp", + NID_id_smime_aa_ets_escTimeStamp = 236, + OBJ_id_smime_aa_ets_escTimeStamp = OBJ_id_smime_aa,25L, + SN_id_smime_aa_ets_certCRLTimestamp = "id-smime-aa-ets-certCRLTimestamp", + NID_id_smime_aa_ets_certCRLTimestamp = 237, + OBJ_id_smime_aa_ets_certCRLTimestamp = OBJ_id_smime_aa,26L, + SN_id_smime_aa_ets_archiveTimeStamp = "id-smime-aa-ets-archiveTimeStamp", + NID_id_smime_aa_ets_archiveTimeStamp = 238, + OBJ_id_smime_aa_ets_archiveTimeStamp = OBJ_id_smime_aa,27L, + SN_id_smime_aa_signatureType = "id-smime-aa-signatureType", + NID_id_smime_aa_signatureType = 239, + OBJ_id_smime_aa_signatureType = OBJ_id_smime_aa,28L, + SN_id_smime_aa_dvcs_dvc = "id-smime-aa-dvcs-dvc", + NID_id_smime_aa_dvcs_dvc = 240, + OBJ_id_smime_aa_dvcs_dvc = OBJ_id_smime_aa,29L, + SN_id_smime_aa_signingCertificateV2 = "id-smime-aa-signingCertificateV2", + NID_id_smime_aa_signingCertificateV2 = 1086, + OBJ_id_smime_aa_signingCertificateV2 = OBJ_id_smime_aa,47L, + SN_id_smime_alg_ESDHwith3DES = "id-smime-alg-ESDHwith3DES", + NID_id_smime_alg_ESDHwith3DES = 241, + OBJ_id_smime_alg_ESDHwith3DES = OBJ_id_smime_alg,1L, + SN_id_smime_alg_ESDHwithRC2 = "id-smime-alg-ESDHwithRC2", + NID_id_smime_alg_ESDHwithRC2 = 242, + OBJ_id_smime_alg_ESDHwithRC2 = OBJ_id_smime_alg,2L, + SN_id_smime_alg_3DESwrap = "id-smime-alg-3DESwrap", + NID_id_smime_alg_3DESwrap = 243, + OBJ_id_smime_alg_3DESwrap = OBJ_id_smime_alg,3L, + SN_id_smime_alg_RC2wrap = "id-smime-alg-RC2wrap", + NID_id_smime_alg_RC2wrap = 244, + OBJ_id_smime_alg_RC2wrap = OBJ_id_smime_alg,4L, + SN_id_smime_alg_ESDH = "id-smime-alg-ESDH", + NID_id_smime_alg_ESDH = 245, + OBJ_id_smime_alg_ESDH = OBJ_id_smime_alg,5L, + SN_id_smime_alg_CMS3DESwrap = "id-smime-alg-CMS3DESwrap", + NID_id_smime_alg_CMS3DESwrap = 246, + OBJ_id_smime_alg_CMS3DESwrap = OBJ_id_smime_alg,6L, + SN_id_smime_alg_CMSRC2wrap = "id-smime-alg-CMSRC2wrap", + NID_id_smime_alg_CMSRC2wrap = 247, + OBJ_id_smime_alg_CMSRC2wrap = OBJ_id_smime_alg,7L, + SN_id_alg_PWRI_KEK = "id-alg-PWRI-KEK", + NID_id_alg_PWRI_KEK = 893, + OBJ_id_alg_PWRI_KEK = OBJ_id_smime_alg,9L, + SN_id_smime_cd_ldap = "id-smime-cd-ldap", + NID_id_smime_cd_ldap = 248, + OBJ_id_smime_cd_ldap = OBJ_id_smime_cd,1L, + SN_id_smime_spq_ets_sqt_uri = "id-smime-spq-ets-sqt-uri", + NID_id_smime_spq_ets_sqt_uri = 249, + OBJ_id_smime_spq_ets_sqt_uri = OBJ_id_smime_spq,1L, + SN_id_smime_spq_ets_sqt_unotice = "id-smime-spq-ets-sqt-unotice", + NID_id_smime_spq_ets_sqt_unotice = 250, + OBJ_id_smime_spq_ets_sqt_unotice = OBJ_id_smime_spq,2L, + SN_id_smime_cti_ets_proofOfOrigin = "id-smime-cti-ets-proofOfOrigin", + NID_id_smime_cti_ets_proofOfOrigin = 251, + OBJ_id_smime_cti_ets_proofOfOrigin = OBJ_id_smime_cti,1L, + SN_id_smime_cti_ets_proofOfReceipt = "id-smime-cti-ets-proofOfReceipt", + NID_id_smime_cti_ets_proofOfReceipt = 252, + OBJ_id_smime_cti_ets_proofOfReceipt = OBJ_id_smime_cti,2L, + SN_id_smime_cti_ets_proofOfDelivery = "id-smime-cti-ets-proofOfDelivery", + NID_id_smime_cti_ets_proofOfDelivery = 253, + OBJ_id_smime_cti_ets_proofOfDelivery = OBJ_id_smime_cti,3L, + SN_id_smime_cti_ets_proofOfSender = "id-smime-cti-ets-proofOfSender", + NID_id_smime_cti_ets_proofOfSender = 254, + OBJ_id_smime_cti_ets_proofOfSender = OBJ_id_smime_cti,4L, + SN_id_smime_cti_ets_proofOfApproval = "id-smime-cti-ets-proofOfApproval", + NID_id_smime_cti_ets_proofOfApproval = 255, + OBJ_id_smime_cti_ets_proofOfApproval = OBJ_id_smime_cti,5L, + SN_id_smime_cti_ets_proofOfCreation = "id-smime-cti-ets-proofOfCreation", + NID_id_smime_cti_ets_proofOfCreation = 256, + OBJ_id_smime_cti_ets_proofOfCreation = OBJ_id_smime_cti,6L, + LN_friendlyName = "friendlyName", + NID_friendlyName = 156, + OBJ_friendlyName = OBJ_pkcs9,20L, + LN_localKeyID = "localKeyID", + NID_localKeyID = 157, + OBJ_localKeyID = OBJ_pkcs9,21L, + SN_ms_csp_name = "CSPName", + LN_ms_csp_name = "Microsoft CSP Name", + NID_ms_csp_name = 417, + OBJ_ms_csp_name = 1L,3L,6L,1L,4L,1L,311L,17L,1L, + SN_LocalKeySet = "LocalKeySet", + LN_LocalKeySet = "Microsoft Local Key set", + NID_LocalKeySet = 856, + OBJ_LocalKeySet = 1L,3L,6L,1L,4L,1L,311L,17L,2L, + OBJ_certTypes = OBJ_pkcs9,22L, + LN_x509Certificate = "x509Certificate", + NID_x509Certificate = 158, + OBJ_x509Certificate = OBJ_certTypes,1L, + LN_sdsiCertificate = "sdsiCertificate", + NID_sdsiCertificate = 159, + OBJ_sdsiCertificate = OBJ_certTypes,2L, + OBJ_crlTypes = OBJ_pkcs9,23L, + LN_x509Crl = "x509Crl", + NID_x509Crl = 160, + OBJ_x509Crl = OBJ_crlTypes,1L, + OBJ_pkcs12 = OBJ_pkcs,12L, + OBJ_pkcs12_pbeids = OBJ_pkcs12,1L, + SN_pbe_WithSHA1And128BitRC4 = "PBE-SHA1-RC4-128", + LN_pbe_WithSHA1And128BitRC4 = "pbeWithSHA1And128BitRC4", + NID_pbe_WithSHA1And128BitRC4 = 144, + OBJ_pbe_WithSHA1And128BitRC4 = OBJ_pkcs12_pbeids,1L, + SN_pbe_WithSHA1And40BitRC4 = "PBE-SHA1-RC4-40", + LN_pbe_WithSHA1And40BitRC4 = "pbeWithSHA1And40BitRC4", + NID_pbe_WithSHA1And40BitRC4 = 145, + OBJ_pbe_WithSHA1And40BitRC4 = OBJ_pkcs12_pbeids,2L, + SN_pbe_WithSHA1And3_Key_TripleDES_CBC = "PBE-SHA1-3DES", + LN_pbe_WithSHA1And3_Key_TripleDES_CBC = "pbeWithSHA1And3-KeyTripleDES-CBC", + NID_pbe_WithSHA1And3_Key_TripleDES_CBC = 146, + OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC = OBJ_pkcs12_pbeids,3L, + SN_pbe_WithSHA1And2_Key_TripleDES_CBC = "PBE-SHA1-2DES", + LN_pbe_WithSHA1And2_Key_TripleDES_CBC = "pbeWithSHA1And2-KeyTripleDES-CBC", + NID_pbe_WithSHA1And2_Key_TripleDES_CBC = 147, + OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC = OBJ_pkcs12_pbeids,4L, + SN_pbe_WithSHA1And128BitRC2_CBC = "PBE-SHA1-RC2-128", + LN_pbe_WithSHA1And128BitRC2_CBC = "pbeWithSHA1And128BitRC2-CBC", + NID_pbe_WithSHA1And128BitRC2_CBC = 148, + OBJ_pbe_WithSHA1And128BitRC2_CBC = OBJ_pkcs12_pbeids,5L, + SN_pbe_WithSHA1And40BitRC2_CBC = "PBE-SHA1-RC2-40", + LN_pbe_WithSHA1And40BitRC2_CBC = "pbeWithSHA1And40BitRC2-CBC", + NID_pbe_WithSHA1And40BitRC2_CBC = 149, + OBJ_pbe_WithSHA1And40BitRC2_CBC = OBJ_pkcs12_pbeids,6L, + OBJ_pkcs12_Version1 = OBJ_pkcs12,10L, + OBJ_pkcs12_BagIds = OBJ_pkcs12_Version1,1L, + LN_keyBag = "keyBag", + NID_keyBag = 150, + OBJ_keyBag = OBJ_pkcs12_BagIds,1L, + LN_pkcs8ShroudedKeyBag = "pkcs8ShroudedKeyBag", + NID_pkcs8ShroudedKeyBag = 151, + OBJ_pkcs8ShroudedKeyBag = OBJ_pkcs12_BagIds,2L, + LN_certBag = "certBag", + NID_certBag = 152, + OBJ_certBag = OBJ_pkcs12_BagIds,3L, + LN_crlBag = "crlBag", + NID_crlBag = 153, + OBJ_crlBag = OBJ_pkcs12_BagIds,4L, + LN_secretBag = "secretBag", + NID_secretBag = 154, + OBJ_secretBag = OBJ_pkcs12_BagIds,5L, + LN_safeContentsBag = "safeContentsBag", + NID_safeContentsBag = 155, + OBJ_safeContentsBag = OBJ_pkcs12_BagIds,6L, + SN_md2 = "MD2", + LN_md2 = "md2", + NID_md2 = 3, + OBJ_md2 = OBJ_rsadsi,2L,2L, + SN_md4 = "MD4", + LN_md4 = "md4", + NID_md4 = 257, + OBJ_md4 = OBJ_rsadsi,2L,4L, + SN_md5 = "MD5", + LN_md5 = "md5", + NID_md5 = 4, + OBJ_md5 = OBJ_rsadsi,2L,5L, + SN_md5_sha1 = "MD5-SHA1", + LN_md5_sha1 = "md5-sha1", + NID_md5_sha1 = 114, + LN_hmacWithMD5 = "hmacWithMD5", + NID_hmacWithMD5 = 797, + OBJ_hmacWithMD5 = OBJ_rsadsi,2L,6L, + LN_hmacWithSHA1 = "hmacWithSHA1", + NID_hmacWithSHA1 = 163, + OBJ_hmacWithSHA1 = OBJ_rsadsi,2L,7L, + SN_sm2 = "SM2", + LN_sm2 = "sm2", + NID_sm2 = 1172, + OBJ_sm2 = OBJ_sm_scheme,301L, + SN_sm3 = "SM3", + LN_sm3 = "sm3", + NID_sm3 = 1143, + OBJ_sm3 = OBJ_sm_scheme,401L, + SN_sm3WithRSAEncryption = "RSA-SM3", + LN_sm3WithRSAEncryption = "sm3WithRSAEncryption", + NID_sm3WithRSAEncryption = 1144, + OBJ_sm3WithRSAEncryption = OBJ_sm_scheme,504L, + LN_hmacWithSHA224 = "hmacWithSHA224", + NID_hmacWithSHA224 = 798, + OBJ_hmacWithSHA224 = OBJ_rsadsi,2L,8L, + LN_hmacWithSHA256 = "hmacWithSHA256", + NID_hmacWithSHA256 = 799, + OBJ_hmacWithSHA256 = OBJ_rsadsi,2L,9L, + LN_hmacWithSHA384 = "hmacWithSHA384", + NID_hmacWithSHA384 = 800, + OBJ_hmacWithSHA384 = OBJ_rsadsi,2L,10L, + LN_hmacWithSHA512 = "hmacWithSHA512", + NID_hmacWithSHA512 = 801, + OBJ_hmacWithSHA512 = OBJ_rsadsi,2L,11L, + LN_hmacWithSHA512_224 = "hmacWithSHA512-224", + NID_hmacWithSHA512_224 = 1193, + OBJ_hmacWithSHA512_224 = OBJ_rsadsi,2L,12L, + LN_hmacWithSHA512_256 = "hmacWithSHA512-256", + NID_hmacWithSHA512_256 = 1194, + OBJ_hmacWithSHA512_256 = OBJ_rsadsi,2L,13L, + SN_rc2_cbc = "RC2-CBC", + LN_rc2_cbc = "rc2-cbc", + NID_rc2_cbc = 37, + OBJ_rc2_cbc = OBJ_rsadsi,3L,2L, + SN_rc2_ecb = "RC2-ECB", + LN_rc2_ecb = "rc2-ecb", + NID_rc2_ecb = 38, + SN_rc2_cfb64 = "RC2-CFB", + LN_rc2_cfb64 = "rc2-cfb", + NID_rc2_cfb64 = 39, + SN_rc2_ofb64 = "RC2-OFB", + LN_rc2_ofb64 = "rc2-ofb", + NID_rc2_ofb64 = 40, + SN_rc2_40_cbc = "RC2-40-CBC", + LN_rc2_40_cbc = "rc2-40-cbc", + NID_rc2_40_cbc = 98, + SN_rc2_64_cbc = "RC2-64-CBC", + LN_rc2_64_cbc = "rc2-64-cbc", + NID_rc2_64_cbc = 166, + SN_rc4 = "RC4", + LN_rc4 = "rc4", + NID_rc4 = 5, + OBJ_rc4 = OBJ_rsadsi,3L,4L, + SN_rc4_40 = "RC4-40", + LN_rc4_40 = "rc4-40", + NID_rc4_40 = 97, + SN_des_ede3_cbc = "DES-EDE3-CBC", + LN_des_ede3_cbc = "des-ede3-cbc", + NID_des_ede3_cbc = 44, + OBJ_des_ede3_cbc = OBJ_rsadsi,3L,7L, + SN_rc5_cbc = "RC5-CBC", + LN_rc5_cbc = "rc5-cbc", + NID_rc5_cbc = 120, + OBJ_rc5_cbc = OBJ_rsadsi,3L,8L, + SN_rc5_ecb = "RC5-ECB", + LN_rc5_ecb = "rc5-ecb", + NID_rc5_ecb = 121, + SN_rc5_cfb64 = "RC5-CFB", + LN_rc5_cfb64 = "rc5-cfb", + NID_rc5_cfb64 = 122, + SN_rc5_ofb64 = "RC5-OFB", + LN_rc5_ofb64 = "rc5-ofb", + NID_rc5_ofb64 = 123, + SN_ms_ext_req = "msExtReq", + LN_ms_ext_req = "Microsoft Extension Request", + NID_ms_ext_req = 171, + OBJ_ms_ext_req = 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L, + SN_ms_code_ind = "msCodeInd", + LN_ms_code_ind = "Microsoft Individual Code Signing", + NID_ms_code_ind = 134, + OBJ_ms_code_ind = 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L, + SN_ms_code_com = "msCodeCom", + LN_ms_code_com = "Microsoft Commercial Code Signing", + NID_ms_code_com = 135, + OBJ_ms_code_com = 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L, + SN_ms_ctl_sign = "msCTLSign", + LN_ms_ctl_sign = "Microsoft Trust List Signing", + NID_ms_ctl_sign = 136, + OBJ_ms_ctl_sign = 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L, + SN_ms_sgc = "msSGC", + LN_ms_sgc = "Microsoft Server Gated Crypto", + NID_ms_sgc = 137, + OBJ_ms_sgc = 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L, + SN_ms_efs = "msEFS", + LN_ms_efs = "Microsoft Encrypted File System", + NID_ms_efs = 138, + OBJ_ms_efs = 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L, + SN_ms_smartcard_login = "msSmartcardLogin", + LN_ms_smartcard_login = "Microsoft Smartcardlogin", + NID_ms_smartcard_login = 648, + OBJ_ms_smartcard_login = 1L,3L,6L,1L,4L,1L,311L,20L,2L,2L, + SN_ms_upn = "msUPN", + LN_ms_upn = "Microsoft Universal Principal Name", + NID_ms_upn = 649, + OBJ_ms_upn = 1L,3L,6L,1L,4L,1L,311L,20L,2L,3L, + SN_idea_cbc = "IDEA-CBC", + LN_idea_cbc = "idea-cbc", + NID_idea_cbc = 34, + OBJ_idea_cbc = 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L, + SN_idea_ecb = "IDEA-ECB", + LN_idea_ecb = "idea-ecb", + NID_idea_ecb = 36, + SN_idea_cfb64 = "IDEA-CFB", + LN_idea_cfb64 = "idea-cfb", + NID_idea_cfb64 = 35, + SN_idea_ofb64 = "IDEA-OFB", + LN_idea_ofb64 = "idea-ofb", + NID_idea_ofb64 = 46, + SN_bf_cbc = "BF-CBC", + LN_bf_cbc = "bf-cbc", + NID_bf_cbc = 91, + OBJ_bf_cbc = 1L,3L,6L,1L,4L,1L,3029L,1L,2L, + SN_bf_ecb = "BF-ECB", + LN_bf_ecb = "bf-ecb", + NID_bf_ecb = 92, + SN_bf_cfb64 = "BF-CFB", + LN_bf_cfb64 = "bf-cfb", + NID_bf_cfb64 = 93, + SN_bf_ofb64 = "BF-OFB", + LN_bf_ofb64 = "bf-ofb", + NID_bf_ofb64 = 94, + SN_id_pkix = "PKIX", + NID_id_pkix = 127, + OBJ_id_pkix = 1L,3L,6L,1L,5L,5L,7L, + SN_id_pkix_mod = "id-pkix-mod", + NID_id_pkix_mod = 258, + OBJ_id_pkix_mod = OBJ_id_pkix,0L, + SN_id_pe = "id-pe", + NID_id_pe = 175, + OBJ_id_pe = OBJ_id_pkix,1L, + SN_id_qt = "id-qt", + NID_id_qt = 259, + OBJ_id_qt = OBJ_id_pkix,2L, + SN_id_kp = "id-kp", + NID_id_kp = 128, + OBJ_id_kp = OBJ_id_pkix,3L, + SN_id_it = "id-it", + NID_id_it = 260, + OBJ_id_it = OBJ_id_pkix,4L, + SN_id_pkip = "id-pkip", + NID_id_pkip = 261, + OBJ_id_pkip = OBJ_id_pkix,5L, + SN_id_alg = "id-alg", + NID_id_alg = 262, + OBJ_id_alg = OBJ_id_pkix,6L, + SN_id_cmc = "id-cmc", + NID_id_cmc = 263, + OBJ_id_cmc = OBJ_id_pkix,7L, + SN_id_on = "id-on", + NID_id_on = 264, + OBJ_id_on = OBJ_id_pkix,8L, + SN_id_pda = "id-pda", + NID_id_pda = 265, + OBJ_id_pda = OBJ_id_pkix,9L, + SN_id_aca = "id-aca", + NID_id_aca = 266, + OBJ_id_aca = OBJ_id_pkix,10L, + SN_id_qcs = "id-qcs", + NID_id_qcs = 267, + OBJ_id_qcs = OBJ_id_pkix,11L, + SN_id_cct = "id-cct", + NID_id_cct = 268, + OBJ_id_cct = OBJ_id_pkix,12L, + SN_id_ppl = "id-ppl", + NID_id_ppl = 662, + OBJ_id_ppl = OBJ_id_pkix,21L, + SN_id_ad = "id-ad", + NID_id_ad = 176, + OBJ_id_ad = OBJ_id_pkix,48L, + SN_id_pkix1_explicit_88 = "id-pkix1-explicit-88", + NID_id_pkix1_explicit_88 = 269, + OBJ_id_pkix1_explicit_88 = OBJ_id_pkix_mod,1L, + SN_id_pkix1_implicit_88 = "id-pkix1-implicit-88", + NID_id_pkix1_implicit_88 = 270, + OBJ_id_pkix1_implicit_88 = OBJ_id_pkix_mod,2L, + SN_id_pkix1_explicit_93 = "id-pkix1-explicit-93", + NID_id_pkix1_explicit_93 = 271, + OBJ_id_pkix1_explicit_93 = OBJ_id_pkix_mod,3L, + SN_id_pkix1_implicit_93 = "id-pkix1-implicit-93", + NID_id_pkix1_implicit_93 = 272, + OBJ_id_pkix1_implicit_93 = OBJ_id_pkix_mod,4L, + SN_id_mod_crmf = "id-mod-crmf", + NID_id_mod_crmf = 273, + OBJ_id_mod_crmf = OBJ_id_pkix_mod,5L, + SN_id_mod_cmc = "id-mod-cmc", + NID_id_mod_cmc = 274, + OBJ_id_mod_cmc = OBJ_id_pkix_mod,6L, + SN_id_mod_kea_profile_88 = "id-mod-kea-profile-88", + NID_id_mod_kea_profile_88 = 275, + OBJ_id_mod_kea_profile_88 = OBJ_id_pkix_mod,7L, + SN_id_mod_kea_profile_93 = "id-mod-kea-profile-93", + NID_id_mod_kea_profile_93 = 276, + OBJ_id_mod_kea_profile_93 = OBJ_id_pkix_mod,8L, + SN_id_mod_cmp = "id-mod-cmp", + NID_id_mod_cmp = 277, + OBJ_id_mod_cmp = OBJ_id_pkix_mod,9L, + SN_id_mod_qualified_cert_88 = "id-mod-qualified-cert-88", + NID_id_mod_qualified_cert_88 = 278, + OBJ_id_mod_qualified_cert_88 = OBJ_id_pkix_mod,10L, + SN_id_mod_qualified_cert_93 = "id-mod-qualified-cert-93", + NID_id_mod_qualified_cert_93 = 279, + OBJ_id_mod_qualified_cert_93 = OBJ_id_pkix_mod,11L, + SN_id_mod_attribute_cert = "id-mod-attribute-cert", + NID_id_mod_attribute_cert = 280, + OBJ_id_mod_attribute_cert = OBJ_id_pkix_mod,12L, + SN_id_mod_timestamp_protocol = "id-mod-timestamp-protocol", + NID_id_mod_timestamp_protocol = 281, + OBJ_id_mod_timestamp_protocol = OBJ_id_pkix_mod,13L, + SN_id_mod_ocsp = "id-mod-ocsp", + NID_id_mod_ocsp = 282, + OBJ_id_mod_ocsp = OBJ_id_pkix_mod,14L, + SN_id_mod_dvcs = "id-mod-dvcs", + NID_id_mod_dvcs = 283, + OBJ_id_mod_dvcs = OBJ_id_pkix_mod,15L, + SN_id_mod_cmp2000 = "id-mod-cmp2000", + NID_id_mod_cmp2000 = 284, + OBJ_id_mod_cmp2000 = OBJ_id_pkix_mod,16L, + SN_info_access = "authorityInfoAccess", + LN_info_access = "Authority Information Access", + NID_info_access = 177, + OBJ_info_access = OBJ_id_pe,1L, + SN_biometricInfo = "biometricInfo", + LN_biometricInfo = "Biometric Info", + NID_biometricInfo = 285, + OBJ_biometricInfo = OBJ_id_pe,2L, + SN_qcStatements = "qcStatements", + NID_qcStatements = 286, + OBJ_qcStatements = OBJ_id_pe,3L, + SN_ac_auditEntity = "ac-auditEntity", + NID_ac_auditEntity = 287, + OBJ_ac_auditEntity = OBJ_id_pe,4L, + SN_ac_targeting = "ac-targeting", + NID_ac_targeting = 288, + OBJ_ac_targeting = OBJ_id_pe,5L, + SN_aaControls = "aaControls", + NID_aaControls = 289, + OBJ_aaControls = OBJ_id_pe,6L, + SN_sbgp_ipAddrBlock = "sbgp-ipAddrBlock", + NID_sbgp_ipAddrBlock = 290, + OBJ_sbgp_ipAddrBlock = OBJ_id_pe,7L, + SN_sbgp_autonomousSysNum = "sbgp-autonomousSysNum", + NID_sbgp_autonomousSysNum = 291, + OBJ_sbgp_autonomousSysNum = OBJ_id_pe,8L, + SN_sbgp_routerIdentifier = "sbgp-routerIdentifier", + NID_sbgp_routerIdentifier = 292, + OBJ_sbgp_routerIdentifier = OBJ_id_pe,9L, + SN_ac_proxying = "ac-proxying", + NID_ac_proxying = 397, + OBJ_ac_proxying = OBJ_id_pe,10L, + SN_sinfo_access = "subjectInfoAccess", + LN_sinfo_access = "Subject Information Access", + NID_sinfo_access = 398, + OBJ_sinfo_access = OBJ_id_pe,11L, + SN_proxyCertInfo = "proxyCertInfo", + LN_proxyCertInfo = "Proxy Certificate Information", + NID_proxyCertInfo = 663, + OBJ_proxyCertInfo = OBJ_id_pe,14L, + SN_tlsfeature = "tlsfeature", + LN_tlsfeature = "TLS Feature", + NID_tlsfeature = 1020, + OBJ_tlsfeature = OBJ_id_pe,24L, + SN_id_qt_cps = "id-qt-cps", + LN_id_qt_cps = "Policy Qualifier CPS", + NID_id_qt_cps = 164, + OBJ_id_qt_cps = OBJ_id_qt,1L, + SN_id_qt_unotice = "id-qt-unotice", + LN_id_qt_unotice = "Policy Qualifier User Notice", + NID_id_qt_unotice = 165, + OBJ_id_qt_unotice = OBJ_id_qt,2L, + SN_textNotice = "textNotice", + NID_textNotice = 293, + OBJ_textNotice = OBJ_id_qt,3L, + SN_server_auth = "serverAuth", + LN_server_auth = "TLS Web Server Authentication", + NID_server_auth = 129, + OBJ_server_auth = OBJ_id_kp,1L, + SN_client_auth = "clientAuth", + LN_client_auth = "TLS Web Client Authentication", + NID_client_auth = 130, + OBJ_client_auth = OBJ_id_kp,2L, + SN_code_sign = "codeSigning", + LN_code_sign = "Code Signing", + NID_code_sign = 131, + OBJ_code_sign = OBJ_id_kp,3L, + SN_email_protect = "emailProtection", + LN_email_protect = "E-mail Protection", + NID_email_protect = 132, + OBJ_email_protect = OBJ_id_kp,4L, + SN_ipsecEndSystem = "ipsecEndSystem", + LN_ipsecEndSystem = "IPSec End System", + NID_ipsecEndSystem = 294, + OBJ_ipsecEndSystem = OBJ_id_kp,5L, + SN_ipsecTunnel = "ipsecTunnel", + LN_ipsecTunnel = "IPSec Tunnel", + NID_ipsecTunnel = 295, + OBJ_ipsecTunnel = OBJ_id_kp,6L, + SN_ipsecUser = "ipsecUser", + LN_ipsecUser = "IPSec User", + NID_ipsecUser = 296, + OBJ_ipsecUser = OBJ_id_kp,7L, + SN_time_stamp = "timeStamping", + LN_time_stamp = "Time Stamping", + NID_time_stamp = 133, + OBJ_time_stamp = OBJ_id_kp,8L, + SN_OCSP_sign = "OCSPSigning", + LN_OCSP_sign = "OCSP Signing", + NID_OCSP_sign = 180, + OBJ_OCSP_sign = OBJ_id_kp,9L, + SN_dvcs = "DVCS", + LN_dvcs = "dvcs", + NID_dvcs = 297, + OBJ_dvcs = OBJ_id_kp,10L, + SN_ipsec_IKE = "ipsecIKE", + LN_ipsec_IKE = "ipsec Internet Key Exchange", + NID_ipsec_IKE = 1022, + OBJ_ipsec_IKE = OBJ_id_kp,17L, + SN_capwapAC = "capwapAC", + LN_capwapAC = "Ctrl/provision WAP Access", + NID_capwapAC = 1023, + OBJ_capwapAC = OBJ_id_kp,18L, + SN_capwapWTP = "capwapWTP", + LN_capwapWTP = "Ctrl/Provision WAP Termination", + NID_capwapWTP = 1024, + OBJ_capwapWTP = OBJ_id_kp,19L, + SN_sshClient = "secureShellClient", + LN_sshClient = "SSH Client", + NID_sshClient = 1025, + OBJ_sshClient = OBJ_id_kp,21L, + SN_sshServer = "secureShellServer", + LN_sshServer = "SSH Server", + NID_sshServer = 1026, + OBJ_sshServer = OBJ_id_kp,22L, + SN_sendRouter = "sendRouter", + LN_sendRouter = "Send Router", + NID_sendRouter = 1027, + OBJ_sendRouter = OBJ_id_kp,23L, + SN_sendProxiedRouter = "sendProxiedRouter", + LN_sendProxiedRouter = "Send Proxied Router", + NID_sendProxiedRouter = 1028, + OBJ_sendProxiedRouter = OBJ_id_kp,24L, + SN_sendOwner = "sendOwner", + LN_sendOwner = "Send Owner", + NID_sendOwner = 1029, + OBJ_sendOwner = OBJ_id_kp,25L, + SN_sendProxiedOwner = "sendProxiedOwner", + LN_sendProxiedOwner = "Send Proxied Owner", + NID_sendProxiedOwner = 1030, + OBJ_sendProxiedOwner = OBJ_id_kp,26L, + SN_cmcCA = "cmcCA", + LN_cmcCA = "CMC Certificate Authority", + NID_cmcCA = 1131, + OBJ_cmcCA = OBJ_id_kp,27L, + SN_cmcRA = "cmcRA", + LN_cmcRA = "CMC Registration Authority", + NID_cmcRA = 1132, + OBJ_cmcRA = OBJ_id_kp,28L, + SN_id_it_caProtEncCert = "id-it-caProtEncCert", + NID_id_it_caProtEncCert = 298, + OBJ_id_it_caProtEncCert = OBJ_id_it,1L, + SN_id_it_signKeyPairTypes = "id-it-signKeyPairTypes", + NID_id_it_signKeyPairTypes = 299, + OBJ_id_it_signKeyPairTypes = OBJ_id_it,2L, + SN_id_it_encKeyPairTypes = "id-it-encKeyPairTypes", + NID_id_it_encKeyPairTypes = 300, + OBJ_id_it_encKeyPairTypes = OBJ_id_it,3L, + SN_id_it_preferredSymmAlg = "id-it-preferredSymmAlg", + NID_id_it_preferredSymmAlg = 301, + OBJ_id_it_preferredSymmAlg = OBJ_id_it,4L, + SN_id_it_caKeyUpdateInfo = "id-it-caKeyUpdateInfo", + NID_id_it_caKeyUpdateInfo = 302, + OBJ_id_it_caKeyUpdateInfo = OBJ_id_it,5L, + SN_id_it_currentCRL = "id-it-currentCRL", + NID_id_it_currentCRL = 303, + OBJ_id_it_currentCRL = OBJ_id_it,6L, + SN_id_it_unsupportedOIDs = "id-it-unsupportedOIDs", + NID_id_it_unsupportedOIDs = 304, + OBJ_id_it_unsupportedOIDs = OBJ_id_it,7L, + SN_id_it_subscriptionRequest = "id-it-subscriptionRequest", + NID_id_it_subscriptionRequest = 305, + OBJ_id_it_subscriptionRequest = OBJ_id_it,8L, + SN_id_it_subscriptionResponse = "id-it-subscriptionResponse", + NID_id_it_subscriptionResponse = 306, + OBJ_id_it_subscriptionResponse = OBJ_id_it,9L, + SN_id_it_keyPairParamReq = "id-it-keyPairParamReq", + NID_id_it_keyPairParamReq = 307, + OBJ_id_it_keyPairParamReq = OBJ_id_it,10L, + SN_id_it_keyPairParamRep = "id-it-keyPairParamRep", + NID_id_it_keyPairParamRep = 308, + OBJ_id_it_keyPairParamRep = OBJ_id_it,11L, + SN_id_it_revPassphrase = "id-it-revPassphrase", + NID_id_it_revPassphrase = 309, + OBJ_id_it_revPassphrase = OBJ_id_it,12L, + SN_id_it_implicitConfirm = "id-it-implicitConfirm", + NID_id_it_implicitConfirm = 310, + OBJ_id_it_implicitConfirm = OBJ_id_it,13L, + SN_id_it_confirmWaitTime = "id-it-confirmWaitTime", + NID_id_it_confirmWaitTime = 311, + OBJ_id_it_confirmWaitTime = OBJ_id_it,14L, + SN_id_it_origPKIMessage = "id-it-origPKIMessage", + NID_id_it_origPKIMessage = 312, + OBJ_id_it_origPKIMessage = OBJ_id_it,15L, + SN_id_it_suppLangTags = "id-it-suppLangTags", + NID_id_it_suppLangTags = 784, + OBJ_id_it_suppLangTags = OBJ_id_it,16L, + SN_id_regCtrl = "id-regCtrl", + NID_id_regCtrl = 313, + OBJ_id_regCtrl = OBJ_id_pkip,1L, + SN_id_regInfo = "id-regInfo", + NID_id_regInfo = 314, + OBJ_id_regInfo = OBJ_id_pkip,2L, + SN_id_regCtrl_regToken = "id-regCtrl-regToken", + NID_id_regCtrl_regToken = 315, + OBJ_id_regCtrl_regToken = OBJ_id_regCtrl,1L, + SN_id_regCtrl_authenticator = "id-regCtrl-authenticator", + NID_id_regCtrl_authenticator = 316, + OBJ_id_regCtrl_authenticator = OBJ_id_regCtrl,2L, + SN_id_regCtrl_pkiPublicationInfo = "id-regCtrl-pkiPublicationInfo", + NID_id_regCtrl_pkiPublicationInfo = 317, + OBJ_id_regCtrl_pkiPublicationInfo = OBJ_id_regCtrl,3L, + SN_id_regCtrl_pkiArchiveOptions = "id-regCtrl-pkiArchiveOptions", + NID_id_regCtrl_pkiArchiveOptions = 318, + OBJ_id_regCtrl_pkiArchiveOptions = OBJ_id_regCtrl,4L, + SN_id_regCtrl_oldCertID = "id-regCtrl-oldCertID", + NID_id_regCtrl_oldCertID = 319, + OBJ_id_regCtrl_oldCertID = OBJ_id_regCtrl,5L, + SN_id_regCtrl_protocolEncrKey = "id-regCtrl-protocolEncrKey", + NID_id_regCtrl_protocolEncrKey = 320, + OBJ_id_regCtrl_protocolEncrKey = OBJ_id_regCtrl,6L, + SN_id_regInfo_utf8Pairs = "id-regInfo-utf8Pairs", + NID_id_regInfo_utf8Pairs = 321, + OBJ_id_regInfo_utf8Pairs = OBJ_id_regInfo,1L, + SN_id_regInfo_certReq = "id-regInfo-certReq", + NID_id_regInfo_certReq = 322, + OBJ_id_regInfo_certReq = OBJ_id_regInfo,2L, + SN_id_alg_des40 = "id-alg-des40", + NID_id_alg_des40 = 323, + OBJ_id_alg_des40 = OBJ_id_alg,1L, + SN_id_alg_noSignature = "id-alg-noSignature", + NID_id_alg_noSignature = 324, + OBJ_id_alg_noSignature = OBJ_id_alg,2L, + SN_id_alg_dh_sig_hmac_sha1 = "id-alg-dh-sig-hmac-sha1", + NID_id_alg_dh_sig_hmac_sha1 = 325, + OBJ_id_alg_dh_sig_hmac_sha1 = OBJ_id_alg,3L, + SN_id_alg_dh_pop = "id-alg-dh-pop", + NID_id_alg_dh_pop = 326, + OBJ_id_alg_dh_pop = OBJ_id_alg,4L, + SN_id_cmc_statusInfo = "id-cmc-statusInfo", + NID_id_cmc_statusInfo = 327, + OBJ_id_cmc_statusInfo = OBJ_id_cmc,1L, + SN_id_cmc_identification = "id-cmc-identification", + NID_id_cmc_identification = 328, + OBJ_id_cmc_identification = OBJ_id_cmc,2L, + SN_id_cmc_identityProof = "id-cmc-identityProof", + NID_id_cmc_identityProof = 329, + OBJ_id_cmc_identityProof = OBJ_id_cmc,3L, + SN_id_cmc_dataReturn = "id-cmc-dataReturn", + NID_id_cmc_dataReturn = 330, + OBJ_id_cmc_dataReturn = OBJ_id_cmc,4L, + SN_id_cmc_transactionId = "id-cmc-transactionId", + NID_id_cmc_transactionId = 331, + OBJ_id_cmc_transactionId = OBJ_id_cmc,5L, + SN_id_cmc_senderNonce = "id-cmc-senderNonce", + NID_id_cmc_senderNonce = 332, + OBJ_id_cmc_senderNonce = OBJ_id_cmc,6L, + SN_id_cmc_recipientNonce = "id-cmc-recipientNonce", + NID_id_cmc_recipientNonce = 333, + OBJ_id_cmc_recipientNonce = OBJ_id_cmc,7L, + SN_id_cmc_addExtensions = "id-cmc-addExtensions", + NID_id_cmc_addExtensions = 334, + OBJ_id_cmc_addExtensions = OBJ_id_cmc,8L, + SN_id_cmc_encryptedPOP = "id-cmc-encryptedPOP", + NID_id_cmc_encryptedPOP = 335, + OBJ_id_cmc_encryptedPOP = OBJ_id_cmc,9L, + SN_id_cmc_decryptedPOP = "id-cmc-decryptedPOP", + NID_id_cmc_decryptedPOP = 336, + OBJ_id_cmc_decryptedPOP = OBJ_id_cmc,10L, + SN_id_cmc_lraPOPWitness = "id-cmc-lraPOPWitness", + NID_id_cmc_lraPOPWitness = 337, + OBJ_id_cmc_lraPOPWitness = OBJ_id_cmc,11L, + SN_id_cmc_getCert = "id-cmc-getCert", + NID_id_cmc_getCert = 338, + OBJ_id_cmc_getCert = OBJ_id_cmc,15L, + SN_id_cmc_getCRL = "id-cmc-getCRL", + NID_id_cmc_getCRL = 339, + OBJ_id_cmc_getCRL = OBJ_id_cmc,16L, + SN_id_cmc_revokeRequest = "id-cmc-revokeRequest", + NID_id_cmc_revokeRequest = 340, + OBJ_id_cmc_revokeRequest = OBJ_id_cmc,17L, + SN_id_cmc_regInfo = "id-cmc-regInfo", + NID_id_cmc_regInfo = 341, + OBJ_id_cmc_regInfo = OBJ_id_cmc,18L, + SN_id_cmc_responseInfo = "id-cmc-responseInfo", + NID_id_cmc_responseInfo = 342, + OBJ_id_cmc_responseInfo = OBJ_id_cmc,19L, + SN_id_cmc_queryPending = "id-cmc-queryPending", + NID_id_cmc_queryPending = 343, + OBJ_id_cmc_queryPending = OBJ_id_cmc,21L, + SN_id_cmc_popLinkRandom = "id-cmc-popLinkRandom", + NID_id_cmc_popLinkRandom = 344, + OBJ_id_cmc_popLinkRandom = OBJ_id_cmc,22L, + SN_id_cmc_popLinkWitness = "id-cmc-popLinkWitness", + NID_id_cmc_popLinkWitness = 345, + OBJ_id_cmc_popLinkWitness = OBJ_id_cmc,23L, + SN_id_cmc_confirmCertAcceptance = "id-cmc-confirmCertAcceptance", + NID_id_cmc_confirmCertAcceptance = 346, + OBJ_id_cmc_confirmCertAcceptance = OBJ_id_cmc,24L, + SN_id_on_personalData = "id-on-personalData", + NID_id_on_personalData = 347, + OBJ_id_on_personalData = OBJ_id_on,1L, + SN_id_on_permanentIdentifier = "id-on-permanentIdentifier", + LN_id_on_permanentIdentifier = "Permanent Identifier", + NID_id_on_permanentIdentifier = 858, + OBJ_id_on_permanentIdentifier = OBJ_id_on,3L, + SN_id_pda_dateOfBirth = "id-pda-dateOfBirth", + NID_id_pda_dateOfBirth = 348, + OBJ_id_pda_dateOfBirth = OBJ_id_pda,1L, + SN_id_pda_placeOfBirth = "id-pda-placeOfBirth", + NID_id_pda_placeOfBirth = 349, + OBJ_id_pda_placeOfBirth = OBJ_id_pda,2L, + SN_id_pda_gender = "id-pda-gender", + NID_id_pda_gender = 351, + OBJ_id_pda_gender = OBJ_id_pda,3L, + SN_id_pda_countryOfCitizenship = "id-pda-countryOfCitizenship", + NID_id_pda_countryOfCitizenship = 352, + OBJ_id_pda_countryOfCitizenship = OBJ_id_pda,4L, + SN_id_pda_countryOfResidence = "id-pda-countryOfResidence", + NID_id_pda_countryOfResidence = 353, + OBJ_id_pda_countryOfResidence = OBJ_id_pda,5L, + SN_id_aca_authenticationInfo = "id-aca-authenticationInfo", + NID_id_aca_authenticationInfo = 354, + OBJ_id_aca_authenticationInfo = OBJ_id_aca,1L, + SN_id_aca_accessIdentity = "id-aca-accessIdentity", + NID_id_aca_accessIdentity = 355, + OBJ_id_aca_accessIdentity = OBJ_id_aca,2L, + SN_id_aca_chargingIdentity = "id-aca-chargingIdentity", + NID_id_aca_chargingIdentity = 356, + OBJ_id_aca_chargingIdentity = OBJ_id_aca,3L, + SN_id_aca_group = "id-aca-group", + NID_id_aca_group = 357, + OBJ_id_aca_group = OBJ_id_aca,4L, + SN_id_aca_role = "id-aca-role", + NID_id_aca_role = 358, + OBJ_id_aca_role = OBJ_id_aca,5L, + SN_id_aca_encAttrs = "id-aca-encAttrs", + NID_id_aca_encAttrs = 399, + OBJ_id_aca_encAttrs = OBJ_id_aca,6L, + SN_id_qcs_pkixQCSyntax_v1 = "id-qcs-pkixQCSyntax-v1", + NID_id_qcs_pkixQCSyntax_v1 = 359, + OBJ_id_qcs_pkixQCSyntax_v1 = OBJ_id_qcs,1L, + SN_id_cct_crs = "id-cct-crs", + NID_id_cct_crs = 360, + OBJ_id_cct_crs = OBJ_id_cct,1L, + SN_id_cct_PKIData = "id-cct-PKIData", + NID_id_cct_PKIData = 361, + OBJ_id_cct_PKIData = OBJ_id_cct,2L, + SN_id_cct_PKIResponse = "id-cct-PKIResponse", + NID_id_cct_PKIResponse = 362, + OBJ_id_cct_PKIResponse = OBJ_id_cct,3L, + SN_id_ppl_anyLanguage = "id-ppl-anyLanguage", + LN_id_ppl_anyLanguage = "Any language", + NID_id_ppl_anyLanguage = 664, + OBJ_id_ppl_anyLanguage = OBJ_id_ppl,0L, + SN_id_ppl_inheritAll = "id-ppl-inheritAll", + LN_id_ppl_inheritAll = "Inherit all", + NID_id_ppl_inheritAll = 665, + OBJ_id_ppl_inheritAll = OBJ_id_ppl,1L, + SN_Independent = "id-ppl-independent", + LN_Independent = "Independent", + NID_Independent = 667, + OBJ_Independent = OBJ_id_ppl,2L, + SN_ad_OCSP = "OCSP", + LN_ad_OCSP = "OCSP", + NID_ad_OCSP = 178, + OBJ_ad_OCSP = OBJ_id_ad,1L, + SN_ad_ca_issuers = "caIssuers", + LN_ad_ca_issuers = "CA Issuers", + NID_ad_ca_issuers = 179, + OBJ_ad_ca_issuers = OBJ_id_ad,2L, + SN_ad_timeStamping = "ad_timestamping", + LN_ad_timeStamping = "AD Time Stamping", + NID_ad_timeStamping = 363, + OBJ_ad_timeStamping = OBJ_id_ad,3L, + SN_ad_dvcs = "AD_DVCS", + LN_ad_dvcs = "ad dvcs", + NID_ad_dvcs = 364, + OBJ_ad_dvcs = OBJ_id_ad,4L, + SN_caRepository = "caRepository", + LN_caRepository = "CA Repository", + NID_caRepository = 785, + OBJ_caRepository = OBJ_id_ad,5L, + OBJ_id_pkix_OCSP = OBJ_ad_OCSP, + SN_id_pkix_OCSP_basic = "basicOCSPResponse", + LN_id_pkix_OCSP_basic = "Basic OCSP Response", + NID_id_pkix_OCSP_basic = 365, + OBJ_id_pkix_OCSP_basic = OBJ_id_pkix_OCSP,1L, + SN_id_pkix_OCSP_Nonce = "Nonce", + LN_id_pkix_OCSP_Nonce = "OCSP Nonce", + NID_id_pkix_OCSP_Nonce = 366, + OBJ_id_pkix_OCSP_Nonce = OBJ_id_pkix_OCSP,2L, + SN_id_pkix_OCSP_CrlID = "CrlID", + LN_id_pkix_OCSP_CrlID = "OCSP CRL ID", + NID_id_pkix_OCSP_CrlID = 367, + OBJ_id_pkix_OCSP_CrlID = OBJ_id_pkix_OCSP,3L, + SN_id_pkix_OCSP_acceptableResponses = "acceptableResponses", + LN_id_pkix_OCSP_acceptableResponses = "Acceptable OCSP Responses", + NID_id_pkix_OCSP_acceptableResponses = 368, + OBJ_id_pkix_OCSP_acceptableResponses = OBJ_id_pkix_OCSP,4L, + SN_id_pkix_OCSP_noCheck = "noCheck", + LN_id_pkix_OCSP_noCheck = "OCSP No Check", + NID_id_pkix_OCSP_noCheck = 369, + OBJ_id_pkix_OCSP_noCheck = OBJ_id_pkix_OCSP,5L, + SN_id_pkix_OCSP_archiveCutoff = "archiveCutoff", + LN_id_pkix_OCSP_archiveCutoff = "OCSP Archive Cutoff", + NID_id_pkix_OCSP_archiveCutoff = 370, + OBJ_id_pkix_OCSP_archiveCutoff = OBJ_id_pkix_OCSP,6L, + SN_id_pkix_OCSP_serviceLocator = "serviceLocator", + LN_id_pkix_OCSP_serviceLocator = "OCSP Service Locator", + NID_id_pkix_OCSP_serviceLocator = 371, + OBJ_id_pkix_OCSP_serviceLocator = OBJ_id_pkix_OCSP,7L, + SN_id_pkix_OCSP_extendedStatus = "extendedStatus", + LN_id_pkix_OCSP_extendedStatus = "Extended OCSP Status", + NID_id_pkix_OCSP_extendedStatus = 372, + OBJ_id_pkix_OCSP_extendedStatus = OBJ_id_pkix_OCSP,8L, + SN_id_pkix_OCSP_valid = "valid", + NID_id_pkix_OCSP_valid = 373, + OBJ_id_pkix_OCSP_valid = OBJ_id_pkix_OCSP,9L, + SN_id_pkix_OCSP_path = "path", + NID_id_pkix_OCSP_path = 374, + OBJ_id_pkix_OCSP_path = OBJ_id_pkix_OCSP,10L, + SN_id_pkix_OCSP_trustRoot = "trustRoot", + LN_id_pkix_OCSP_trustRoot = "Trust Root", + NID_id_pkix_OCSP_trustRoot = 375, + OBJ_id_pkix_OCSP_trustRoot = OBJ_id_pkix_OCSP,11L, + SN_algorithm = "algorithm", + LN_algorithm = "algorithm", + NID_algorithm = 376, + OBJ_algorithm = 1L,3L,14L,3L,2L, + SN_md5WithRSA = "RSA-NP-MD5", + LN_md5WithRSA = "md5WithRSA", + NID_md5WithRSA = 104, + OBJ_md5WithRSA = OBJ_algorithm,3L, + SN_des_ecb = "DES-ECB", + LN_des_ecb = "des-ecb", + NID_des_ecb = 29, + OBJ_des_ecb = OBJ_algorithm,6L, + SN_des_cbc = "DES-CBC", + LN_des_cbc = "des-cbc", + NID_des_cbc = 31, + OBJ_des_cbc = OBJ_algorithm,7L, + SN_des_ofb64 = "DES-OFB", + LN_des_ofb64 = "des-ofb", + NID_des_ofb64 = 45, + OBJ_des_ofb64 = OBJ_algorithm,8L, + SN_des_cfb64 = "DES-CFB", + LN_des_cfb64 = "des-cfb", + NID_des_cfb64 = 30, + OBJ_des_cfb64 = OBJ_algorithm,9L, + SN_rsaSignature = "rsaSignature", + NID_rsaSignature = 377, + OBJ_rsaSignature = OBJ_algorithm,11L, + SN_dsa_2 = "DSA-old", + LN_dsa_2 = "dsaEncryption-old", + NID_dsa_2 = 67, + OBJ_dsa_2 = OBJ_algorithm,12L, + SN_dsaWithSHA = "DSA-SHA", + LN_dsaWithSHA = "dsaWithSHA", + NID_dsaWithSHA = 66, + OBJ_dsaWithSHA = OBJ_algorithm,13L, + SN_shaWithRSAEncryption = "RSA-SHA", + LN_shaWithRSAEncryption = "shaWithRSAEncryption", + NID_shaWithRSAEncryption = 42, + OBJ_shaWithRSAEncryption = OBJ_algorithm,15L, + SN_des_ede_ecb = "DES-EDE", + LN_des_ede_ecb = "des-ede", + NID_des_ede_ecb = 32, + OBJ_des_ede_ecb = OBJ_algorithm,17L, + SN_des_ede3_ecb = "DES-EDE3", + LN_des_ede3_ecb = "des-ede3", + NID_des_ede3_ecb = 33, + SN_des_ede_cbc = "DES-EDE-CBC", + LN_des_ede_cbc = "des-ede-cbc", + NID_des_ede_cbc = 43, + SN_des_ede_cfb64 = "DES-EDE-CFB", + LN_des_ede_cfb64 = "des-ede-cfb", + NID_des_ede_cfb64 = 60, + SN_des_ede3_cfb64 = "DES-EDE3-CFB", + LN_des_ede3_cfb64 = "des-ede3-cfb", + NID_des_ede3_cfb64 = 61, + SN_des_ede_ofb64 = "DES-EDE-OFB", + LN_des_ede_ofb64 = "des-ede-ofb", + NID_des_ede_ofb64 = 62, + SN_des_ede3_ofb64 = "DES-EDE3-OFB", + LN_des_ede3_ofb64 = "des-ede3-ofb", + NID_des_ede3_ofb64 = 63, + SN_desx_cbc = "DESX-CBC", + LN_desx_cbc = "desx-cbc", + NID_desx_cbc = 80, + SN_sha = "SHA", + LN_sha = "sha", + NID_sha = 41, + OBJ_sha = OBJ_algorithm,18L, + SN_sha1 = "SHA1", + LN_sha1 = "sha1", + NID_sha1 = 64, + OBJ_sha1 = OBJ_algorithm,26L, + SN_dsaWithSHA1_2 = "DSA-SHA1-old", + LN_dsaWithSHA1_2 = "dsaWithSHA1-old", + NID_dsaWithSHA1_2 = 70, + OBJ_dsaWithSHA1_2 = OBJ_algorithm,27L, + SN_sha1WithRSA = "RSA-SHA1-2", + LN_sha1WithRSA = "sha1WithRSA", + NID_sha1WithRSA = 115, + OBJ_sha1WithRSA = OBJ_algorithm,29L, + SN_ripemd160 = "RIPEMD160", + LN_ripemd160 = "ripemd160", + NID_ripemd160 = 117, + OBJ_ripemd160 = 1L,3L,36L,3L,2L,1L, + SN_ripemd160WithRSA = "RSA-RIPEMD160", + LN_ripemd160WithRSA = "ripemd160WithRSA", + NID_ripemd160WithRSA = 119, + OBJ_ripemd160WithRSA = 1L,3L,36L,3L,3L,1L,2L, + SN_blake2b512 = "BLAKE2b512", + LN_blake2b512 = "blake2b512", + NID_blake2b512 = 1056, + OBJ_blake2b512 = 1L,3L,6L,1L,4L,1L,1722L,12L,2L,1L,16L, + SN_blake2s256 = "BLAKE2s256", + LN_blake2s256 = "blake2s256", + NID_blake2s256 = 1057, + OBJ_blake2s256 = 1L,3L,6L,1L,4L,1L,1722L,12L,2L,2L,8L, + SN_sxnet = "SXNetID", + LN_sxnet = "Strong Extranet ID", + NID_sxnet = 143, + OBJ_sxnet = 1L,3L,101L,1L,4L,1L, + SN_X500 = "X500", + LN_X500 = "directory services (X.500)", + NID_X500 = 11, + OBJ_X500 = 2L,5L, + SN_X509 = "X509", + NID_X509 = 12, + OBJ_X509 = OBJ_X500,4L, + SN_commonName = "CN", + LN_commonName = "commonName", + NID_commonName = 13, + OBJ_commonName = OBJ_X509,3L, + SN_surname = "SN", + LN_surname = "surname", + NID_surname = 100, + OBJ_surname = OBJ_X509,4L, + LN_serialNumber = "serialNumber", + NID_serialNumber = 105, + OBJ_serialNumber = OBJ_X509,5L, + SN_countryName = "C", + LN_countryName = "countryName", + NID_countryName = 14, + OBJ_countryName = OBJ_X509,6L, + SN_localityName = "L", + LN_localityName = "localityName", + NID_localityName = 15, + OBJ_localityName = OBJ_X509,7L, + SN_stateOrProvinceName = "ST", + LN_stateOrProvinceName = "stateOrProvinceName", + NID_stateOrProvinceName = 16, + OBJ_stateOrProvinceName = OBJ_X509,8L, + SN_streetAddress = "street", + LN_streetAddress = "streetAddress", + NID_streetAddress = 660, + OBJ_streetAddress = OBJ_X509,9L, + SN_organizationName = "O", + LN_organizationName = "organizationName", + NID_organizationName = 17, + OBJ_organizationName = OBJ_X509,10L, + SN_organizationalUnitName = "OU", + LN_organizationalUnitName = "organizationalUnitName", + NID_organizationalUnitName = 18, + OBJ_organizationalUnitName = OBJ_X509,11L, + SN_title = "title", + LN_title = "title", + NID_title = 106, + OBJ_title = OBJ_X509,12L, + LN_description = "description", + NID_description = 107, + OBJ_description = OBJ_X509,13L, + LN_searchGuide = "searchGuide", + NID_searchGuide = 859, + OBJ_searchGuide = OBJ_X509,14L, + LN_businessCategory = "businessCategory", + NID_businessCategory = 860, + OBJ_businessCategory = OBJ_X509,15L, + LN_postalAddress = "postalAddress", + NID_postalAddress = 861, + OBJ_postalAddress = OBJ_X509,16L, + LN_postalCode = "postalCode", + NID_postalCode = 661, + OBJ_postalCode = OBJ_X509,17L, + LN_postOfficeBox = "postOfficeBox", + NID_postOfficeBox = 862, + OBJ_postOfficeBox = OBJ_X509,18L, + LN_physicalDeliveryOfficeName = "physicalDeliveryOfficeName", + NID_physicalDeliveryOfficeName = 863, + OBJ_physicalDeliveryOfficeName = OBJ_X509,19L, + LN_telephoneNumber = "telephoneNumber", + NID_telephoneNumber = 864, + OBJ_telephoneNumber = OBJ_X509,20L, + LN_telexNumber = "telexNumber", + NID_telexNumber = 865, + OBJ_telexNumber = OBJ_X509,21L, + LN_teletexTerminalIdentifier = "teletexTerminalIdentifier", + NID_teletexTerminalIdentifier = 866, + OBJ_teletexTerminalIdentifier = OBJ_X509,22L, + LN_facsimileTelephoneNumber = "facsimileTelephoneNumber", + NID_facsimileTelephoneNumber = 867, + OBJ_facsimileTelephoneNumber = OBJ_X509,23L, + LN_x121Address = "x121Address", + NID_x121Address = 868, + OBJ_x121Address = OBJ_X509,24L, + LN_internationaliSDNNumber = "internationaliSDNNumber", + NID_internationaliSDNNumber = 869, + OBJ_internationaliSDNNumber = OBJ_X509,25L, + LN_registeredAddress = "registeredAddress", + NID_registeredAddress = 870, + OBJ_registeredAddress = OBJ_X509,26L, + LN_destinationIndicator = "destinationIndicator", + NID_destinationIndicator = 871, + OBJ_destinationIndicator = OBJ_X509,27L, + LN_preferredDeliveryMethod = "preferredDeliveryMethod", + NID_preferredDeliveryMethod = 872, + OBJ_preferredDeliveryMethod = OBJ_X509,28L, + LN_presentationAddress = "presentationAddress", + NID_presentationAddress = 873, + OBJ_presentationAddress = OBJ_X509,29L, + LN_supportedApplicationContext = "supportedApplicationContext", + NID_supportedApplicationContext = 874, + OBJ_supportedApplicationContext = OBJ_X509,30L, + SN_member = "member", + NID_member = 875, + OBJ_member = OBJ_X509,31L, + SN_owner = "owner", + NID_owner = 876, + OBJ_owner = OBJ_X509,32L, + LN_roleOccupant = "roleOccupant", + NID_roleOccupant = 877, + OBJ_roleOccupant = OBJ_X509,33L, + SN_seeAlso = "seeAlso", + NID_seeAlso = 878, + OBJ_seeAlso = OBJ_X509,34L, + LN_userPassword = "userPassword", + NID_userPassword = 879, + OBJ_userPassword = OBJ_X509,35L, + LN_userCertificate = "userCertificate", + NID_userCertificate = 880, + OBJ_userCertificate = OBJ_X509,36L, + LN_cACertificate = "cACertificate", + NID_cACertificate = 881, + OBJ_cACertificate = OBJ_X509,37L, + LN_authorityRevocationList = "authorityRevocationList", + NID_authorityRevocationList = 882, + OBJ_authorityRevocationList = OBJ_X509,38L, + LN_certificateRevocationList = "certificateRevocationList", + NID_certificateRevocationList = 883, + OBJ_certificateRevocationList = OBJ_X509,39L, + LN_crossCertificatePair = "crossCertificatePair", + NID_crossCertificatePair = 884, + OBJ_crossCertificatePair = OBJ_X509,40L, + SN_name = "name", + LN_name = "name", + NID_name = 173, + OBJ_name = OBJ_X509,41L, + SN_givenName = "GN", + LN_givenName = "givenName", + NID_givenName = 99, + OBJ_givenName = OBJ_X509,42L, + SN_initials = "initials", + LN_initials = "initials", + NID_initials = 101, + OBJ_initials = OBJ_X509,43L, + LN_generationQualifier = "generationQualifier", + NID_generationQualifier = 509, + OBJ_generationQualifier = OBJ_X509,44L, + LN_x500UniqueIdentifier = "x500UniqueIdentifier", + NID_x500UniqueIdentifier = 503, + OBJ_x500UniqueIdentifier = OBJ_X509,45L, + SN_dnQualifier = "dnQualifier", + LN_dnQualifier = "dnQualifier", + NID_dnQualifier = 174, + OBJ_dnQualifier = OBJ_X509,46L, + LN_enhancedSearchGuide = "enhancedSearchGuide", + NID_enhancedSearchGuide = 885, + OBJ_enhancedSearchGuide = OBJ_X509,47L, + LN_protocolInformation = "protocolInformation", + NID_protocolInformation = 886, + OBJ_protocolInformation = OBJ_X509,48L, + LN_distinguishedName = "distinguishedName", + NID_distinguishedName = 887, + OBJ_distinguishedName = OBJ_X509,49L, + LN_uniqueMember = "uniqueMember", + NID_uniqueMember = 888, + OBJ_uniqueMember = OBJ_X509,50L, + LN_houseIdentifier = "houseIdentifier", + NID_houseIdentifier = 889, + OBJ_houseIdentifier = OBJ_X509,51L, + LN_supportedAlgorithms = "supportedAlgorithms", + NID_supportedAlgorithms = 890, + OBJ_supportedAlgorithms = OBJ_X509,52L, + LN_deltaRevocationList = "deltaRevocationList", + NID_deltaRevocationList = 891, + OBJ_deltaRevocationList = OBJ_X509,53L, + SN_dmdName = "dmdName", + NID_dmdName = 892, + OBJ_dmdName = OBJ_X509,54L, + LN_pseudonym = "pseudonym", + NID_pseudonym = 510, + OBJ_pseudonym = OBJ_X509,65L, + SN_role = "role", + LN_role = "role", + NID_role = 400, + OBJ_role = OBJ_X509,72L, + LN_organizationIdentifier = "organizationIdentifier", + NID_organizationIdentifier = 1089, + OBJ_organizationIdentifier = OBJ_X509,97L, + SN_countryCode3c = "c3", + LN_countryCode3c = "countryCode3c", + NID_countryCode3c = 1090, + OBJ_countryCode3c = OBJ_X509,98L, + SN_countryCode3n = "n3", + LN_countryCode3n = "countryCode3n", + NID_countryCode3n = 1091, + OBJ_countryCode3n = OBJ_X509,99L, + LN_dnsName = "dnsName", + NID_dnsName = 1092, + OBJ_dnsName = OBJ_X509,100L, + SN_X500algorithms = "X500algorithms", + LN_X500algorithms = "directory services - algorithms", + NID_X500algorithms = 378, + OBJ_X500algorithms = OBJ_X500,8L, + SN_rsa = "RSA", + LN_rsa = "rsa", + NID_rsa = 19, + OBJ_rsa = OBJ_X500algorithms,1L,1L, + SN_mdc2WithRSA = "RSA-MDC2", + LN_mdc2WithRSA = "mdc2WithRSA", + NID_mdc2WithRSA = 96, + OBJ_mdc2WithRSA = OBJ_X500algorithms,3L,100L, + SN_mdc2 = "MDC2", + LN_mdc2 = "mdc2", + NID_mdc2 = 95, + OBJ_mdc2 = OBJ_X500algorithms,3L,101L, + SN_id_ce = "id-ce", + NID_id_ce = 81, + OBJ_id_ce = OBJ_X500,29L, + SN_subject_directory_attributes = "subjectDirectoryAttributes", + LN_subject_directory_attributes = "X509v3 Subject Directory Attributes", + NID_subject_directory_attributes = 769, + OBJ_subject_directory_attributes = OBJ_id_ce,9L, + SN_subject_key_identifier = "subjectKeyIdentifier", + LN_subject_key_identifier = "X509v3 Subject Key Identifier", + NID_subject_key_identifier = 82, + OBJ_subject_key_identifier = OBJ_id_ce,14L, + SN_key_usage = "keyUsage", + LN_key_usage = "X509v3 Key Usage", + NID_key_usage = 83, + OBJ_key_usage = OBJ_id_ce,15L, + SN_private_key_usage_period = "privateKeyUsagePeriod", + LN_private_key_usage_period = "X509v3 Private Key Usage Period", + NID_private_key_usage_period = 84, + OBJ_private_key_usage_period = OBJ_id_ce,16L, + SN_subject_alt_name = "subjectAltName", + LN_subject_alt_name = "X509v3 Subject Alternative Name", + NID_subject_alt_name = 85, + OBJ_subject_alt_name = OBJ_id_ce,17L, + SN_issuer_alt_name = "issuerAltName", + LN_issuer_alt_name = "X509v3 Issuer Alternative Name", + NID_issuer_alt_name = 86, + OBJ_issuer_alt_name = OBJ_id_ce,18L, + SN_basic_constraints = "basicConstraints", + LN_basic_constraints = "X509v3 Basic Constraints", + NID_basic_constraints = 87, + OBJ_basic_constraints = OBJ_id_ce,19L, + SN_crl_number = "crlNumber", + LN_crl_number = "X509v3 CRL Number", + NID_crl_number = 88, + OBJ_crl_number = OBJ_id_ce,20L, + SN_crl_reason = "CRLReason", + LN_crl_reason = "X509v3 CRL Reason Code", + NID_crl_reason = 141, + OBJ_crl_reason = OBJ_id_ce,21L, + SN_invalidity_date = "invalidityDate", + LN_invalidity_date = "Invalidity Date", + NID_invalidity_date = 142, + OBJ_invalidity_date = OBJ_id_ce,24L, + SN_delta_crl = "deltaCRL", + LN_delta_crl = "X509v3 Delta CRL Indicator", + NID_delta_crl = 140, + OBJ_delta_crl = OBJ_id_ce,27L, + SN_issuing_distribution_point = "issuingDistributionPoint", + LN_issuing_distribution_point = "X509v3 Issuing Distribution Point", + NID_issuing_distribution_point = 770, + OBJ_issuing_distribution_point = OBJ_id_ce,28L, + SN_certificate_issuer = "certificateIssuer", + LN_certificate_issuer = "X509v3 Certificate Issuer", + NID_certificate_issuer = 771, + OBJ_certificate_issuer = OBJ_id_ce,29L, + SN_name_constraints = "nameConstraints", + LN_name_constraints = "X509v3 Name Constraints", + NID_name_constraints = 666, + OBJ_name_constraints = OBJ_id_ce,30L, + SN_crl_distribution_points = "crlDistributionPoints", + LN_crl_distribution_points = "X509v3 CRL Distribution Points", + NID_crl_distribution_points = 103, + OBJ_crl_distribution_points = OBJ_id_ce,31L, + SN_certificate_policies = "certificatePolicies", + LN_certificate_policies = "X509v3 Certificate Policies", + NID_certificate_policies = 89, + OBJ_certificate_policies = OBJ_id_ce,32L, + SN_any_policy = "anyPolicy", + LN_any_policy = "X509v3 Any Policy", + NID_any_policy = 746, + OBJ_any_policy = OBJ_certificate_policies,0L, + SN_policy_mappings = "policyMappings", + LN_policy_mappings = "X509v3 Policy Mappings", + NID_policy_mappings = 747, + OBJ_policy_mappings = OBJ_id_ce,33L, + SN_authority_key_identifier = "authorityKeyIdentifier", + LN_authority_key_identifier = "X509v3 Authority Key Identifier", + NID_authority_key_identifier = 90, + OBJ_authority_key_identifier = OBJ_id_ce,35L, + SN_policy_constraints = "policyConstraints", + LN_policy_constraints = "X509v3 Policy Constraints", + NID_policy_constraints = 401, + OBJ_policy_constraints = OBJ_id_ce,36L, + SN_ext_key_usage = "extendedKeyUsage", + LN_ext_key_usage = "X509v3 Extended Key Usage", + NID_ext_key_usage = 126, + OBJ_ext_key_usage = OBJ_id_ce,37L, + SN_freshest_crl = "freshestCRL", + LN_freshest_crl = "X509v3 Freshest CRL", + NID_freshest_crl = 857, + OBJ_freshest_crl = OBJ_id_ce,46L, + SN_inhibit_any_policy = "inhibitAnyPolicy", + LN_inhibit_any_policy = "X509v3 Inhibit Any Policy", + NID_inhibit_any_policy = 748, + OBJ_inhibit_any_policy = OBJ_id_ce,54L, + SN_target_information = "targetInformation", + LN_target_information = "X509v3 AC Targeting", + NID_target_information = 402, + OBJ_target_information = OBJ_id_ce,55L, + SN_no_rev_avail = "noRevAvail", + LN_no_rev_avail = "X509v3 No Revocation Available", + NID_no_rev_avail = 403, + OBJ_no_rev_avail = OBJ_id_ce,56L, + SN_anyExtendedKeyUsage = "anyExtendedKeyUsage", + LN_anyExtendedKeyUsage = "Any Extended Key Usage", + NID_anyExtendedKeyUsage = 910, + OBJ_anyExtendedKeyUsage = OBJ_ext_key_usage,0L, + SN_netscape = "Netscape", + LN_netscape = "Netscape Communications Corp.", + NID_netscape = 57, + OBJ_netscape = 2L,16L,840L,1L,113730L, + SN_netscape_cert_extension = "nsCertExt", + LN_netscape_cert_extension = "Netscape Certificate Extension", + NID_netscape_cert_extension = 58, + OBJ_netscape_cert_extension = OBJ_netscape,1L, + SN_netscape_data_type = "nsDataType", + LN_netscape_data_type = "Netscape Data Type", + NID_netscape_data_type = 59, + OBJ_netscape_data_type = OBJ_netscape,2L, + SN_netscape_cert_type = "nsCertType", + LN_netscape_cert_type = "Netscape Cert Type", + NID_netscape_cert_type = 71, + OBJ_netscape_cert_type = OBJ_netscape_cert_extension,1L, + SN_netscape_base_url = "nsBaseUrl", + LN_netscape_base_url = "Netscape Base Url", + NID_netscape_base_url = 72, + OBJ_netscape_base_url = OBJ_netscape_cert_extension,2L, + SN_netscape_revocation_url = "nsRevocationUrl", + LN_netscape_revocation_url = "Netscape Revocation Url", + NID_netscape_revocation_url = 73, + OBJ_netscape_revocation_url = OBJ_netscape_cert_extension,3L, + SN_netscape_ca_revocation_url = "nsCaRevocationUrl", + LN_netscape_ca_revocation_url = "Netscape CA Revocation Url", + NID_netscape_ca_revocation_url = 74, + OBJ_netscape_ca_revocation_url = OBJ_netscape_cert_extension,4L, + SN_netscape_renewal_url = "nsRenewalUrl", + LN_netscape_renewal_url = "Netscape Renewal Url", + NID_netscape_renewal_url = 75, + OBJ_netscape_renewal_url = OBJ_netscape_cert_extension,7L, + SN_netscape_ca_policy_url = "nsCaPolicyUrl", + LN_netscape_ca_policy_url = "Netscape CA Policy Url", + NID_netscape_ca_policy_url = 76, + OBJ_netscape_ca_policy_url = OBJ_netscape_cert_extension,8L, + SN_netscape_ssl_server_name = "nsSslServerName", + LN_netscape_ssl_server_name = "Netscape SSL Server Name", + NID_netscape_ssl_server_name = 77, + OBJ_netscape_ssl_server_name = OBJ_netscape_cert_extension,12L, + SN_netscape_comment = "nsComment", + LN_netscape_comment = "Netscape Comment", + NID_netscape_comment = 78, + OBJ_netscape_comment = OBJ_netscape_cert_extension,13L, + SN_netscape_cert_sequence = "nsCertSequence", + LN_netscape_cert_sequence = "Netscape Certificate Sequence", + NID_netscape_cert_sequence = 79, + OBJ_netscape_cert_sequence = OBJ_netscape_data_type,5L, + SN_ns_sgc = "nsSGC", + LN_ns_sgc = "Netscape Server Gated Crypto", + NID_ns_sgc = 139, + OBJ_ns_sgc = OBJ_netscape,4L,1L, + SN_org = "ORG", + LN_org = "org", + NID_org = 379, + OBJ_org = OBJ_iso,3L, + SN_dod = "DOD", + LN_dod = "dod", + NID_dod = 380, + OBJ_dod = OBJ_org,6L, + SN_iana = "IANA", + LN_iana = "iana", + NID_iana = 381, + OBJ_iana = OBJ_dod,1L, + OBJ_internet = OBJ_iana, + SN_Directory = "directory", + LN_Directory = "Directory", + NID_Directory = 382, + OBJ_Directory = OBJ_internet,1L, + SN_Management = "mgmt", + LN_Management = "Management", + NID_Management = 383, + OBJ_Management = OBJ_internet,2L, + SN_Experimental = "experimental", + LN_Experimental = "Experimental", + NID_Experimental = 384, + OBJ_Experimental = OBJ_internet,3L, + SN_Private = "private", + LN_Private = "Private", + NID_Private = 385, + OBJ_Private = OBJ_internet,4L, + SN_Security = "security", + LN_Security = "Security", + NID_Security = 386, + OBJ_Security = OBJ_internet,5L, + SN_SNMPv2 = "snmpv2", + LN_SNMPv2 = "SNMPv2", + NID_SNMPv2 = 387, + OBJ_SNMPv2 = OBJ_internet,6L, + LN_Mail = "Mail", + NID_Mail = 388, + OBJ_Mail = OBJ_internet,7L, + SN_Enterprises = "enterprises", + LN_Enterprises = "Enterprises", + NID_Enterprises = 389, + OBJ_Enterprises = OBJ_Private,1L, + SN_dcObject = "dcobject", + LN_dcObject = "dcObject", + NID_dcObject = 390, + OBJ_dcObject = OBJ_Enterprises,1466L,344L, + SN_mime_mhs = "mime-mhs", + LN_mime_mhs = "MIME MHS", + NID_mime_mhs = 504, + OBJ_mime_mhs = OBJ_Mail,1L, + SN_mime_mhs_headings = "mime-mhs-headings", + LN_mime_mhs_headings = "mime-mhs-headings", + NID_mime_mhs_headings = 505, + OBJ_mime_mhs_headings = OBJ_mime_mhs,1L, + SN_mime_mhs_bodies = "mime-mhs-bodies", + LN_mime_mhs_bodies = "mime-mhs-bodies", + NID_mime_mhs_bodies = 506, + OBJ_mime_mhs_bodies = OBJ_mime_mhs,2L, + SN_id_hex_partial_message = "id-hex-partial-message", + LN_id_hex_partial_message = "id-hex-partial-message", + NID_id_hex_partial_message = 507, + OBJ_id_hex_partial_message = OBJ_mime_mhs_headings,1L, + SN_id_hex_multipart_message = "id-hex-multipart-message", + LN_id_hex_multipart_message = "id-hex-multipart-message", + NID_id_hex_multipart_message = 508, + OBJ_id_hex_multipart_message = OBJ_mime_mhs_headings,2L, + SN_zlib_compression = "ZLIB", + LN_zlib_compression = "zlib compression", + NID_zlib_compression = 125, + OBJ_zlib_compression = OBJ_id_smime_alg,8L, + OBJ_csor = 2L,16L,840L,1L,101L,3L, + OBJ_nistAlgorithms = OBJ_csor,4L, + OBJ_aes = OBJ_nistAlgorithms,1L, + SN_aes_128_ecb = "AES-128-ECB", + LN_aes_128_ecb = "aes-128-ecb", + NID_aes_128_ecb = 418, + OBJ_aes_128_ecb = OBJ_aes,1L, + SN_aes_128_cbc = "AES-128-CBC", + LN_aes_128_cbc = "aes-128-cbc", + NID_aes_128_cbc = 419, + OBJ_aes_128_cbc = OBJ_aes,2L, + SN_aes_128_ofb128 = "AES-128-OFB", + LN_aes_128_ofb128 = "aes-128-ofb", + NID_aes_128_ofb128 = 420, + OBJ_aes_128_ofb128 = OBJ_aes,3L, + SN_aes_128_cfb128 = "AES-128-CFB", + LN_aes_128_cfb128 = "aes-128-cfb", + NID_aes_128_cfb128 = 421, + OBJ_aes_128_cfb128 = OBJ_aes,4L, + SN_id_aes128_wrap = "id-aes128-wrap", + NID_id_aes128_wrap = 788, + OBJ_id_aes128_wrap = OBJ_aes,5L, + SN_aes_128_gcm = "id-aes128-GCM", + LN_aes_128_gcm = "aes-128-gcm", + NID_aes_128_gcm = 895, + OBJ_aes_128_gcm = OBJ_aes,6L, + SN_aes_128_ccm = "id-aes128-CCM", + LN_aes_128_ccm = "aes-128-ccm", + NID_aes_128_ccm = 896, + OBJ_aes_128_ccm = OBJ_aes,7L, + SN_id_aes128_wrap_pad = "id-aes128-wrap-pad", + NID_id_aes128_wrap_pad = 897, + OBJ_id_aes128_wrap_pad = OBJ_aes,8L, + SN_aes_192_ecb = "AES-192-ECB", + LN_aes_192_ecb = "aes-192-ecb", + NID_aes_192_ecb = 422, + OBJ_aes_192_ecb = OBJ_aes,21L, + SN_aes_192_cbc = "AES-192-CBC", + LN_aes_192_cbc = "aes-192-cbc", + NID_aes_192_cbc = 423, + OBJ_aes_192_cbc = OBJ_aes,22L, + SN_aes_192_ofb128 = "AES-192-OFB", + LN_aes_192_ofb128 = "aes-192-ofb", + NID_aes_192_ofb128 = 424, + OBJ_aes_192_ofb128 = OBJ_aes,23L, + SN_aes_192_cfb128 = "AES-192-CFB", + LN_aes_192_cfb128 = "aes-192-cfb", + NID_aes_192_cfb128 = 425, + OBJ_aes_192_cfb128 = OBJ_aes,24L, + SN_id_aes192_wrap = "id-aes192-wrap", + NID_id_aes192_wrap = 789, + OBJ_id_aes192_wrap = OBJ_aes,25L, + SN_aes_192_gcm = "id-aes192-GCM", + LN_aes_192_gcm = "aes-192-gcm", + NID_aes_192_gcm = 898, + OBJ_aes_192_gcm = OBJ_aes,26L, + SN_aes_192_ccm = "id-aes192-CCM", + LN_aes_192_ccm = "aes-192-ccm", + NID_aes_192_ccm = 899, + OBJ_aes_192_ccm = OBJ_aes,27L, + SN_id_aes192_wrap_pad = "id-aes192-wrap-pad", + NID_id_aes192_wrap_pad = 900, + OBJ_id_aes192_wrap_pad = OBJ_aes,28L, + SN_aes_256_ecb = "AES-256-ECB", + LN_aes_256_ecb = "aes-256-ecb", + NID_aes_256_ecb = 426, + OBJ_aes_256_ecb = OBJ_aes,41L, + SN_aes_256_cbc = "AES-256-CBC", + LN_aes_256_cbc = "aes-256-cbc", + NID_aes_256_cbc = 427, + OBJ_aes_256_cbc = OBJ_aes,42L, + SN_aes_256_ofb128 = "AES-256-OFB", + LN_aes_256_ofb128 = "aes-256-ofb", + NID_aes_256_ofb128 = 428, + OBJ_aes_256_ofb128 = OBJ_aes,43L, + SN_aes_256_cfb128 = "AES-256-CFB", + LN_aes_256_cfb128 = "aes-256-cfb", + NID_aes_256_cfb128 = 429, + OBJ_aes_256_cfb128 = OBJ_aes,44L, + SN_id_aes256_wrap = "id-aes256-wrap", + NID_id_aes256_wrap = 790, + OBJ_id_aes256_wrap = OBJ_aes,45L, + SN_aes_256_gcm = "id-aes256-GCM", + LN_aes_256_gcm = "aes-256-gcm", + NID_aes_256_gcm = 901, + OBJ_aes_256_gcm = OBJ_aes,46L, + SN_aes_256_ccm = "id-aes256-CCM", + LN_aes_256_ccm = "aes-256-ccm", + NID_aes_256_ccm = 902, + OBJ_aes_256_ccm = OBJ_aes,47L, + SN_id_aes256_wrap_pad = "id-aes256-wrap-pad", + NID_id_aes256_wrap_pad = 903, + OBJ_id_aes256_wrap_pad = OBJ_aes,48L, + SN_aes_128_xts = "AES-128-XTS", + LN_aes_128_xts = "aes-128-xts", + NID_aes_128_xts = 913, + OBJ_aes_128_xts = OBJ_ieee_siswg,0L,1L,1L, + SN_aes_256_xts = "AES-256-XTS", + LN_aes_256_xts = "aes-256-xts", + NID_aes_256_xts = 914, + OBJ_aes_256_xts = OBJ_ieee_siswg,0L,1L,2L, + SN_aes_128_cfb1 = "AES-128-CFB1", + LN_aes_128_cfb1 = "aes-128-cfb1", + NID_aes_128_cfb1 = 650, + SN_aes_192_cfb1 = "AES-192-CFB1", + LN_aes_192_cfb1 = "aes-192-cfb1", + NID_aes_192_cfb1 = 651, + SN_aes_256_cfb1 = "AES-256-CFB1", + LN_aes_256_cfb1 = "aes-256-cfb1", + NID_aes_256_cfb1 = 652, + SN_aes_128_cfb8 = "AES-128-CFB8", + LN_aes_128_cfb8 = "aes-128-cfb8", + NID_aes_128_cfb8 = 653, + SN_aes_192_cfb8 = "AES-192-CFB8", + LN_aes_192_cfb8 = "aes-192-cfb8", + NID_aes_192_cfb8 = 654, + SN_aes_256_cfb8 = "AES-256-CFB8", + LN_aes_256_cfb8 = "aes-256-cfb8", + NID_aes_256_cfb8 = 655, + SN_aes_128_ctr = "AES-128-CTR", + LN_aes_128_ctr = "aes-128-ctr", + NID_aes_128_ctr = 904, + SN_aes_192_ctr = "AES-192-CTR", + LN_aes_192_ctr = "aes-192-ctr", + NID_aes_192_ctr = 905, + SN_aes_256_ctr = "AES-256-CTR", + LN_aes_256_ctr = "aes-256-ctr", + NID_aes_256_ctr = 906, + SN_aes_128_ocb = "AES-128-OCB", + LN_aes_128_ocb = "aes-128-ocb", + NID_aes_128_ocb = 958, + SN_aes_192_ocb = "AES-192-OCB", + LN_aes_192_ocb = "aes-192-ocb", + NID_aes_192_ocb = 959, + SN_aes_256_ocb = "AES-256-OCB", + LN_aes_256_ocb = "aes-256-ocb", + NID_aes_256_ocb = 960, + SN_des_cfb1 = "DES-CFB1", + LN_des_cfb1 = "des-cfb1", + NID_des_cfb1 = 656, + SN_des_cfb8 = "DES-CFB8", + LN_des_cfb8 = "des-cfb8", + NID_des_cfb8 = 657, + SN_des_ede3_cfb1 = "DES-EDE3-CFB1", + LN_des_ede3_cfb1 = "des-ede3-cfb1", + NID_des_ede3_cfb1 = 658, + SN_des_ede3_cfb8 = "DES-EDE3-CFB8", + LN_des_ede3_cfb8 = "des-ede3-cfb8", + NID_des_ede3_cfb8 = 659, + OBJ_nist_hashalgs = OBJ_nistAlgorithms,2L, + SN_sha256 = "SHA256", + LN_sha256 = "sha256", + NID_sha256 = 672, + OBJ_sha256 = OBJ_nist_hashalgs,1L, + SN_sha384 = "SHA384", + LN_sha384 = "sha384", + NID_sha384 = 673, + OBJ_sha384 = OBJ_nist_hashalgs,2L, + SN_sha512 = "SHA512", + LN_sha512 = "sha512", + NID_sha512 = 674, + OBJ_sha512 = OBJ_nist_hashalgs,3L, + SN_sha224 = "SHA224", + LN_sha224 = "sha224", + NID_sha224 = 675, + OBJ_sha224 = OBJ_nist_hashalgs,4L, + SN_sha512_224 = "SHA512-224", + LN_sha512_224 = "sha512-224", + NID_sha512_224 = 1094, + OBJ_sha512_224 = OBJ_nist_hashalgs,5L, + SN_sha512_256 = "SHA512-256", + LN_sha512_256 = "sha512-256", + NID_sha512_256 = 1095, + OBJ_sha512_256 = OBJ_nist_hashalgs,6L, + SN_sha3_224 = "SHA3-224", + LN_sha3_224 = "sha3-224", + NID_sha3_224 = 1096, + OBJ_sha3_224 = OBJ_nist_hashalgs,7L, + SN_sha3_256 = "SHA3-256", + LN_sha3_256 = "sha3-256", + NID_sha3_256 = 1097, + OBJ_sha3_256 = OBJ_nist_hashalgs,8L, + SN_sha3_384 = "SHA3-384", + LN_sha3_384 = "sha3-384", + NID_sha3_384 = 1098, + OBJ_sha3_384 = OBJ_nist_hashalgs,9L, + SN_sha3_512 = "SHA3-512", + LN_sha3_512 = "sha3-512", + NID_sha3_512 = 1099, + OBJ_sha3_512 = OBJ_nist_hashalgs,10L, + SN_shake128 = "SHAKE128", + LN_shake128 = "shake128", + NID_shake128 = 1100, + OBJ_shake128 = OBJ_nist_hashalgs,11L, + SN_shake256 = "SHAKE256", + LN_shake256 = "shake256", + NID_shake256 = 1101, + OBJ_shake256 = OBJ_nist_hashalgs,12L, + SN_hmac_sha3_224 = "id-hmacWithSHA3-224", + LN_hmac_sha3_224 = "hmac-sha3-224", + NID_hmac_sha3_224 = 1102, + OBJ_hmac_sha3_224 = OBJ_nist_hashalgs,13L, + SN_hmac_sha3_256 = "id-hmacWithSHA3-256", + LN_hmac_sha3_256 = "hmac-sha3-256", + NID_hmac_sha3_256 = 1103, + OBJ_hmac_sha3_256 = OBJ_nist_hashalgs,14L, + SN_hmac_sha3_384 = "id-hmacWithSHA3-384", + LN_hmac_sha3_384 = "hmac-sha3-384", + NID_hmac_sha3_384 = 1104, + OBJ_hmac_sha3_384 = OBJ_nist_hashalgs,15L, + SN_hmac_sha3_512 = "id-hmacWithSHA3-512", + LN_hmac_sha3_512 = "hmac-sha3-512", + NID_hmac_sha3_512 = 1105, + OBJ_hmac_sha3_512 = OBJ_nist_hashalgs,16L, + OBJ_dsa_with_sha2 = OBJ_nistAlgorithms,3L, + SN_dsa_with_SHA224 = "dsa_with_SHA224", + NID_dsa_with_SHA224 = 802, + OBJ_dsa_with_SHA224 = OBJ_dsa_with_sha2,1L, + SN_dsa_with_SHA256 = "dsa_with_SHA256", + NID_dsa_with_SHA256 = 803, + OBJ_dsa_with_SHA256 = OBJ_dsa_with_sha2,2L, + OBJ_sigAlgs = OBJ_nistAlgorithms,3L, + SN_dsa_with_SHA384 = "id-dsa-with-sha384", + LN_dsa_with_SHA384 = "dsa_with_SHA384", + NID_dsa_with_SHA384 = 1106, + OBJ_dsa_with_SHA384 = OBJ_sigAlgs,3L, + SN_dsa_with_SHA512 = "id-dsa-with-sha512", + LN_dsa_with_SHA512 = "dsa_with_SHA512", + NID_dsa_with_SHA512 = 1107, + OBJ_dsa_with_SHA512 = OBJ_sigAlgs,4L, + SN_dsa_with_SHA3_224 = "id-dsa-with-sha3-224", + LN_dsa_with_SHA3_224 = "dsa_with_SHA3-224", + NID_dsa_with_SHA3_224 = 1108, + OBJ_dsa_with_SHA3_224 = OBJ_sigAlgs,5L, + SN_dsa_with_SHA3_256 = "id-dsa-with-sha3-256", + LN_dsa_with_SHA3_256 = "dsa_with_SHA3-256", + NID_dsa_with_SHA3_256 = 1109, + OBJ_dsa_with_SHA3_256 = OBJ_sigAlgs,6L, + SN_dsa_with_SHA3_384 = "id-dsa-with-sha3-384", + LN_dsa_with_SHA3_384 = "dsa_with_SHA3-384", + NID_dsa_with_SHA3_384 = 1110, + OBJ_dsa_with_SHA3_384 = OBJ_sigAlgs,7L, + SN_dsa_with_SHA3_512 = "id-dsa-with-sha3-512", + LN_dsa_with_SHA3_512 = "dsa_with_SHA3-512", + NID_dsa_with_SHA3_512 = 1111, + OBJ_dsa_with_SHA3_512 = OBJ_sigAlgs,8L, + SN_ecdsa_with_SHA3_224 = "id-ecdsa-with-sha3-224", + LN_ecdsa_with_SHA3_224 = "ecdsa_with_SHA3-224", + NID_ecdsa_with_SHA3_224 = 1112, + OBJ_ecdsa_with_SHA3_224 = OBJ_sigAlgs,9L, + SN_ecdsa_with_SHA3_256 = "id-ecdsa-with-sha3-256", + LN_ecdsa_with_SHA3_256 = "ecdsa_with_SHA3-256", + NID_ecdsa_with_SHA3_256 = 1113, + OBJ_ecdsa_with_SHA3_256 = OBJ_sigAlgs,10L, + SN_ecdsa_with_SHA3_384 = "id-ecdsa-with-sha3-384", + LN_ecdsa_with_SHA3_384 = "ecdsa_with_SHA3-384", + NID_ecdsa_with_SHA3_384 = 1114, + OBJ_ecdsa_with_SHA3_384 = OBJ_sigAlgs,11L, + SN_ecdsa_with_SHA3_512 = "id-ecdsa-with-sha3-512", + LN_ecdsa_with_SHA3_512 = "ecdsa_with_SHA3-512", + NID_ecdsa_with_SHA3_512 = 1115, + OBJ_ecdsa_with_SHA3_512 = OBJ_sigAlgs,12L, + SN_RSA_SHA3_224 = "id-rsassa-pkcs1-v1_5-with-sha3-224", + LN_RSA_SHA3_224 = "RSA-SHA3-224", + NID_RSA_SHA3_224 = 1116, + OBJ_RSA_SHA3_224 = OBJ_sigAlgs,13L, + SN_RSA_SHA3_256 = "id-rsassa-pkcs1-v1_5-with-sha3-256", + LN_RSA_SHA3_256 = "RSA-SHA3-256", + NID_RSA_SHA3_256 = 1117, + OBJ_RSA_SHA3_256 = OBJ_sigAlgs,14L, + SN_RSA_SHA3_384 = "id-rsassa-pkcs1-v1_5-with-sha3-384", + LN_RSA_SHA3_384 = "RSA-SHA3-384", + NID_RSA_SHA3_384 = 1118, + OBJ_RSA_SHA3_384 = OBJ_sigAlgs,15L, + SN_RSA_SHA3_512 = "id-rsassa-pkcs1-v1_5-with-sha3-512", + LN_RSA_SHA3_512 = "RSA-SHA3-512", + NID_RSA_SHA3_512 = 1119, + OBJ_RSA_SHA3_512 = OBJ_sigAlgs,16L, + SN_hold_instruction_code = "holdInstructionCode", + LN_hold_instruction_code = "Hold Instruction Code", + NID_hold_instruction_code = 430, + OBJ_hold_instruction_code = OBJ_id_ce,23L, + OBJ_holdInstruction = OBJ_X9_57,2L, + SN_hold_instruction_none = "holdInstructionNone", + LN_hold_instruction_none = "Hold Instruction None", + NID_hold_instruction_none = 431, + OBJ_hold_instruction_none = OBJ_holdInstruction,1L, + SN_hold_instruction_call_issuer = "holdInstructionCallIssuer", + LN_hold_instruction_call_issuer = "Hold Instruction Call Issuer", + NID_hold_instruction_call_issuer = 432, + OBJ_hold_instruction_call_issuer = OBJ_holdInstruction,2L, + SN_hold_instruction_reject = "holdInstructionReject", + LN_hold_instruction_reject = "Hold Instruction Reject", + NID_hold_instruction_reject = 433, + OBJ_hold_instruction_reject = OBJ_holdInstruction,3L, + SN_data = "data", + NID_data = 434, + OBJ_data = OBJ_itu_t,9L, + SN_pss = "pss", + NID_pss = 435, + OBJ_pss = OBJ_data,2342L, + SN_ucl = "ucl", + NID_ucl = 436, + OBJ_ucl = OBJ_pss,19200300L, + SN_pilot = "pilot", + NID_pilot = 437, + OBJ_pilot = OBJ_ucl,100L, + LN_pilotAttributeType = "pilotAttributeType", + NID_pilotAttributeType = 438, + OBJ_pilotAttributeType = OBJ_pilot,1L, + LN_pilotAttributeSyntax = "pilotAttributeSyntax", + NID_pilotAttributeSyntax = 439, + OBJ_pilotAttributeSyntax = OBJ_pilot,3L, + LN_pilotObjectClass = "pilotObjectClass", + NID_pilotObjectClass = 440, + OBJ_pilotObjectClass = OBJ_pilot,4L, + LN_pilotGroups = "pilotGroups", + NID_pilotGroups = 441, + OBJ_pilotGroups = OBJ_pilot,10L, + LN_iA5StringSyntax = "iA5StringSyntax", + NID_iA5StringSyntax = 442, + OBJ_iA5StringSyntax = OBJ_pilotAttributeSyntax,4L, + LN_caseIgnoreIA5StringSyntax = "caseIgnoreIA5StringSyntax", + NID_caseIgnoreIA5StringSyntax = 443, + OBJ_caseIgnoreIA5StringSyntax = OBJ_pilotAttributeSyntax,5L, + LN_pilotObject = "pilotObject", + NID_pilotObject = 444, + OBJ_pilotObject = OBJ_pilotObjectClass,3L, + LN_pilotPerson = "pilotPerson", + NID_pilotPerson = 445, + OBJ_pilotPerson = OBJ_pilotObjectClass,4L, + SN_account = "account", + NID_account = 446, + OBJ_account = OBJ_pilotObjectClass,5L, + SN_document = "document", + NID_document = 447, + OBJ_document = OBJ_pilotObjectClass,6L, + SN_room = "room", + NID_room = 448, + OBJ_room = OBJ_pilotObjectClass,7L, + LN_documentSeries = "documentSeries", + NID_documentSeries = 449, + OBJ_documentSeries = OBJ_pilotObjectClass,9L, + SN_Domain = "domain", + LN_Domain = "Domain", + NID_Domain = 392, + OBJ_Domain = OBJ_pilotObjectClass,13L, + LN_rFC822localPart = "rFC822localPart", + NID_rFC822localPart = 450, + OBJ_rFC822localPart = OBJ_pilotObjectClass,14L, + LN_dNSDomain = "dNSDomain", + NID_dNSDomain = 451, + OBJ_dNSDomain = OBJ_pilotObjectClass,15L, + LN_domainRelatedObject = "domainRelatedObject", + NID_domainRelatedObject = 452, + OBJ_domainRelatedObject = OBJ_pilotObjectClass,17L, + LN_friendlyCountry = "friendlyCountry", + NID_friendlyCountry = 453, + OBJ_friendlyCountry = OBJ_pilotObjectClass,18L, + LN_simpleSecurityObject = "simpleSecurityObject", + NID_simpleSecurityObject = 454, + OBJ_simpleSecurityObject = OBJ_pilotObjectClass,19L, + LN_pilotOrganization = "pilotOrganization", + NID_pilotOrganization = 455, + OBJ_pilotOrganization = OBJ_pilotObjectClass,20L, + LN_pilotDSA = "pilotDSA", + NID_pilotDSA = 456, + OBJ_pilotDSA = OBJ_pilotObjectClass,21L, + LN_qualityLabelledData = "qualityLabelledData", + NID_qualityLabelledData = 457, + OBJ_qualityLabelledData = OBJ_pilotObjectClass,22L, + SN_userId = "UID", + LN_userId = "userId", + NID_userId = 458, + OBJ_userId = OBJ_pilotAttributeType,1L, + LN_textEncodedORAddress = "textEncodedORAddress", + NID_textEncodedORAddress = 459, + OBJ_textEncodedORAddress = OBJ_pilotAttributeType,2L, + SN_rfc822Mailbox = "mail", + LN_rfc822Mailbox = "rfc822Mailbox", + NID_rfc822Mailbox = 460, + OBJ_rfc822Mailbox = OBJ_pilotAttributeType,3L, + SN_info = "info", + NID_info = 461, + OBJ_info = OBJ_pilotAttributeType,4L, + LN_favouriteDrink = "favouriteDrink", + NID_favouriteDrink = 462, + OBJ_favouriteDrink = OBJ_pilotAttributeType,5L, + LN_roomNumber = "roomNumber", + NID_roomNumber = 463, + OBJ_roomNumber = OBJ_pilotAttributeType,6L, + SN_photo = "photo", + NID_photo = 464, + OBJ_photo = OBJ_pilotAttributeType,7L, + LN_userClass = "userClass", + NID_userClass = 465, + OBJ_userClass = OBJ_pilotAttributeType,8L, + SN_host = "host", + NID_host = 466, + OBJ_host = OBJ_pilotAttributeType,9L, + SN_manager = "manager", + NID_manager = 467, + OBJ_manager = OBJ_pilotAttributeType,10L, + LN_documentIdentifier = "documentIdentifier", + NID_documentIdentifier = 468, + OBJ_documentIdentifier = OBJ_pilotAttributeType,11L, + LN_documentTitle = "documentTitle", + NID_documentTitle = 469, + OBJ_documentTitle = OBJ_pilotAttributeType,12L, + LN_documentVersion = "documentVersion", + NID_documentVersion = 470, + OBJ_documentVersion = OBJ_pilotAttributeType,13L, + LN_documentAuthor = "documentAuthor", + NID_documentAuthor = 471, + OBJ_documentAuthor = OBJ_pilotAttributeType,14L, + LN_documentLocation = "documentLocation", + NID_documentLocation = 472, + OBJ_documentLocation = OBJ_pilotAttributeType,15L, + LN_homeTelephoneNumber = "homeTelephoneNumber", + NID_homeTelephoneNumber = 473, + OBJ_homeTelephoneNumber = OBJ_pilotAttributeType,20L, + SN_secretary = "secretary", + NID_secretary = 474, + OBJ_secretary = OBJ_pilotAttributeType,21L, + LN_otherMailbox = "otherMailbox", + NID_otherMailbox = 475, + OBJ_otherMailbox = OBJ_pilotAttributeType,22L, + LN_lastModifiedTime = "lastModifiedTime", + NID_lastModifiedTime = 476, + OBJ_lastModifiedTime = OBJ_pilotAttributeType,23L, + LN_lastModifiedBy = "lastModifiedBy", + NID_lastModifiedBy = 477, + OBJ_lastModifiedBy = OBJ_pilotAttributeType,24L, + SN_domainComponent = "DC", + LN_domainComponent = "domainComponent", + NID_domainComponent = 391, + OBJ_domainComponent = OBJ_pilotAttributeType,25L, + LN_aRecord = "aRecord", + NID_aRecord = 478, + OBJ_aRecord = OBJ_pilotAttributeType,26L, + LN_pilotAttributeType27 = "pilotAttributeType27", + NID_pilotAttributeType27 = 479, + OBJ_pilotAttributeType27 = OBJ_pilotAttributeType,27L, + LN_mXRecord = "mXRecord", + NID_mXRecord = 480, + OBJ_mXRecord = OBJ_pilotAttributeType,28L, + LN_nSRecord = "nSRecord", + NID_nSRecord = 481, + OBJ_nSRecord = OBJ_pilotAttributeType,29L, + LN_sOARecord = "sOARecord", + NID_sOARecord = 482, + OBJ_sOARecord = OBJ_pilotAttributeType,30L, + LN_cNAMERecord = "cNAMERecord", + NID_cNAMERecord = 483, + OBJ_cNAMERecord = OBJ_pilotAttributeType,31L, + LN_associatedDomain = "associatedDomain", + NID_associatedDomain = 484, + OBJ_associatedDomain = OBJ_pilotAttributeType,37L, + LN_associatedName = "associatedName", + NID_associatedName = 485, + OBJ_associatedName = OBJ_pilotAttributeType,38L, + LN_homePostalAddress = "homePostalAddress", + NID_homePostalAddress = 486, + OBJ_homePostalAddress = OBJ_pilotAttributeType,39L, + LN_personalTitle = "personalTitle", + NID_personalTitle = 487, + OBJ_personalTitle = OBJ_pilotAttributeType,40L, + LN_mobileTelephoneNumber = "mobileTelephoneNumber", + NID_mobileTelephoneNumber = 488, + OBJ_mobileTelephoneNumber = OBJ_pilotAttributeType,41L, + LN_pagerTelephoneNumber = "pagerTelephoneNumber", + NID_pagerTelephoneNumber = 489, + OBJ_pagerTelephoneNumber = OBJ_pilotAttributeType,42L, + LN_friendlyCountryName = "friendlyCountryName", + NID_friendlyCountryName = 490, + OBJ_friendlyCountryName = OBJ_pilotAttributeType,43L, + SN_uniqueIdentifier = "uid", + LN_uniqueIdentifier = "uniqueIdentifier", + NID_uniqueIdentifier = 102, + OBJ_uniqueIdentifier = OBJ_pilotAttributeType,44L, + LN_organizationalStatus = "organizationalStatus", + NID_organizationalStatus = 491, + OBJ_organizationalStatus = OBJ_pilotAttributeType,45L, + LN_janetMailbox = "janetMailbox", + NID_janetMailbox = 492, + OBJ_janetMailbox = OBJ_pilotAttributeType,46L, + LN_mailPreferenceOption = "mailPreferenceOption", + NID_mailPreferenceOption = 493, + OBJ_mailPreferenceOption = OBJ_pilotAttributeType,47L, + LN_buildingName = "buildingName", + NID_buildingName = 494, + OBJ_buildingName = OBJ_pilotAttributeType,48L, + LN_dSAQuality = "dSAQuality", + NID_dSAQuality = 495, + OBJ_dSAQuality = OBJ_pilotAttributeType,49L, + LN_singleLevelQuality = "singleLevelQuality", + NID_singleLevelQuality = 496, + OBJ_singleLevelQuality = OBJ_pilotAttributeType,50L, + LN_subtreeMinimumQuality = "subtreeMinimumQuality", + NID_subtreeMinimumQuality = 497, + OBJ_subtreeMinimumQuality = OBJ_pilotAttributeType,51L, + LN_subtreeMaximumQuality = "subtreeMaximumQuality", + NID_subtreeMaximumQuality = 498, + OBJ_subtreeMaximumQuality = OBJ_pilotAttributeType,52L, + LN_personalSignature = "personalSignature", + NID_personalSignature = 499, + OBJ_personalSignature = OBJ_pilotAttributeType,53L, + LN_dITRedirect = "dITRedirect", + NID_dITRedirect = 500, + OBJ_dITRedirect = OBJ_pilotAttributeType,54L, + SN_audio = "audio", + NID_audio = 501, + OBJ_audio = OBJ_pilotAttributeType,55L, + LN_documentPublisher = "documentPublisher", + NID_documentPublisher = 502, + OBJ_documentPublisher = OBJ_pilotAttributeType,56L, + SN_id_set = "id-set", + LN_id_set = "Secure Electronic Transactions", + NID_id_set = 512, + OBJ_id_set = OBJ_international_organizations,42L, + SN_set_ctype = "set-ctype", + LN_set_ctype = "content types", + NID_set_ctype = 513, + OBJ_set_ctype = OBJ_id_set,0L, + SN_set_msgExt = "set-msgExt", + LN_set_msgExt = "message extensions", + NID_set_msgExt = 514, + OBJ_set_msgExt = OBJ_id_set,1L, + SN_set_attr = "set-attr", + NID_set_attr = 515, + OBJ_set_attr = OBJ_id_set,3L, + SN_set_policy = "set-policy", + NID_set_policy = 516, + OBJ_set_policy = OBJ_id_set,5L, + SN_set_certExt = "set-certExt", + LN_set_certExt = "certificate extensions", + NID_set_certExt = 517, + OBJ_set_certExt = OBJ_id_set,7L, + SN_set_brand = "set-brand", + NID_set_brand = 518, + OBJ_set_brand = OBJ_id_set,8L, + SN_setct_PANData = "setct-PANData", + NID_setct_PANData = 519, + OBJ_setct_PANData = OBJ_set_ctype,0L, + SN_setct_PANToken = "setct-PANToken", + NID_setct_PANToken = 520, + OBJ_setct_PANToken = OBJ_set_ctype,1L, + SN_setct_PANOnly = "setct-PANOnly", + NID_setct_PANOnly = 521, + OBJ_setct_PANOnly = OBJ_set_ctype,2L, + SN_setct_OIData = "setct-OIData", + NID_setct_OIData = 522, + OBJ_setct_OIData = OBJ_set_ctype,3L, + SN_setct_PI = "setct-PI", + NID_setct_PI = 523, + OBJ_setct_PI = OBJ_set_ctype,4L, + SN_setct_PIData = "setct-PIData", + NID_setct_PIData = 524, + OBJ_setct_PIData = OBJ_set_ctype,5L, + SN_setct_PIDataUnsigned = "setct-PIDataUnsigned", + NID_setct_PIDataUnsigned = 525, + OBJ_setct_PIDataUnsigned = OBJ_set_ctype,6L, + SN_setct_HODInput = "setct-HODInput", + NID_setct_HODInput = 526, + OBJ_setct_HODInput = OBJ_set_ctype,7L, + SN_setct_AuthResBaggage = "setct-AuthResBaggage", + NID_setct_AuthResBaggage = 527, + OBJ_setct_AuthResBaggage = OBJ_set_ctype,8L, + SN_setct_AuthRevReqBaggage = "setct-AuthRevReqBaggage", + NID_setct_AuthRevReqBaggage = 528, + OBJ_setct_AuthRevReqBaggage = OBJ_set_ctype,9L, + SN_setct_AuthRevResBaggage = "setct-AuthRevResBaggage", + NID_setct_AuthRevResBaggage = 529, + OBJ_setct_AuthRevResBaggage = OBJ_set_ctype,10L, + SN_setct_CapTokenSeq = "setct-CapTokenSeq", + NID_setct_CapTokenSeq = 530, + OBJ_setct_CapTokenSeq = OBJ_set_ctype,11L, + SN_setct_PInitResData = "setct-PInitResData", + NID_setct_PInitResData = 531, + OBJ_setct_PInitResData = OBJ_set_ctype,12L, + SN_setct_PI_TBS = "setct-PI-TBS", + NID_setct_PI_TBS = 532, + OBJ_setct_PI_TBS = OBJ_set_ctype,13L, + SN_setct_PResData = "setct-PResData", + NID_setct_PResData = 533, + OBJ_setct_PResData = OBJ_set_ctype,14L, + SN_setct_AuthReqTBS = "setct-AuthReqTBS", + NID_setct_AuthReqTBS = 534, + OBJ_setct_AuthReqTBS = OBJ_set_ctype,16L, + SN_setct_AuthResTBS = "setct-AuthResTBS", + NID_setct_AuthResTBS = 535, + OBJ_setct_AuthResTBS = OBJ_set_ctype,17L, + SN_setct_AuthResTBSX = "setct-AuthResTBSX", + NID_setct_AuthResTBSX = 536, + OBJ_setct_AuthResTBSX = OBJ_set_ctype,18L, + SN_setct_AuthTokenTBS = "setct-AuthTokenTBS", + NID_setct_AuthTokenTBS = 537, + OBJ_setct_AuthTokenTBS = OBJ_set_ctype,19L, + SN_setct_CapTokenData = "setct-CapTokenData", + NID_setct_CapTokenData = 538, + OBJ_setct_CapTokenData = OBJ_set_ctype,20L, + SN_setct_CapTokenTBS = "setct-CapTokenTBS", + NID_setct_CapTokenTBS = 539, + OBJ_setct_CapTokenTBS = OBJ_set_ctype,21L, + SN_setct_AcqCardCodeMsg = "setct-AcqCardCodeMsg", + NID_setct_AcqCardCodeMsg = 540, + OBJ_setct_AcqCardCodeMsg = OBJ_set_ctype,22L, + SN_setct_AuthRevReqTBS = "setct-AuthRevReqTBS", + NID_setct_AuthRevReqTBS = 541, + OBJ_setct_AuthRevReqTBS = OBJ_set_ctype,23L, + SN_setct_AuthRevResData = "setct-AuthRevResData", + NID_setct_AuthRevResData = 542, + OBJ_setct_AuthRevResData = OBJ_set_ctype,24L, + SN_setct_AuthRevResTBS = "setct-AuthRevResTBS", + NID_setct_AuthRevResTBS = 543, + OBJ_setct_AuthRevResTBS = OBJ_set_ctype,25L, + SN_setct_CapReqTBS = "setct-CapReqTBS", + NID_setct_CapReqTBS = 544, + OBJ_setct_CapReqTBS = OBJ_set_ctype,26L, + SN_setct_CapReqTBSX = "setct-CapReqTBSX", + NID_setct_CapReqTBSX = 545, + OBJ_setct_CapReqTBSX = OBJ_set_ctype,27L, + SN_setct_CapResData = "setct-CapResData", + NID_setct_CapResData = 546, + OBJ_setct_CapResData = OBJ_set_ctype,28L, + SN_setct_CapRevReqTBS = "setct-CapRevReqTBS", + NID_setct_CapRevReqTBS = 547, + OBJ_setct_CapRevReqTBS = OBJ_set_ctype,29L, + SN_setct_CapRevReqTBSX = "setct-CapRevReqTBSX", + NID_setct_CapRevReqTBSX = 548, + OBJ_setct_CapRevReqTBSX = OBJ_set_ctype,30L, + SN_setct_CapRevResData = "setct-CapRevResData", + NID_setct_CapRevResData = 549, + OBJ_setct_CapRevResData = OBJ_set_ctype,31L, + SN_setct_CredReqTBS = "setct-CredReqTBS", + NID_setct_CredReqTBS = 550, + OBJ_setct_CredReqTBS = OBJ_set_ctype,32L, + SN_setct_CredReqTBSX = "setct-CredReqTBSX", + NID_setct_CredReqTBSX = 551, + OBJ_setct_CredReqTBSX = OBJ_set_ctype,33L, + SN_setct_CredResData = "setct-CredResData", + NID_setct_CredResData = 552, + OBJ_setct_CredResData = OBJ_set_ctype,34L, + SN_setct_CredRevReqTBS = "setct-CredRevReqTBS", + NID_setct_CredRevReqTBS = 553, + OBJ_setct_CredRevReqTBS = OBJ_set_ctype,35L, + SN_setct_CredRevReqTBSX = "setct-CredRevReqTBSX", + NID_setct_CredRevReqTBSX = 554, + OBJ_setct_CredRevReqTBSX = OBJ_set_ctype,36L, + SN_setct_CredRevResData = "setct-CredRevResData", + NID_setct_CredRevResData = 555, + OBJ_setct_CredRevResData = OBJ_set_ctype,37L, + SN_setct_PCertReqData = "setct-PCertReqData", + NID_setct_PCertReqData = 556, + OBJ_setct_PCertReqData = OBJ_set_ctype,38L, + SN_setct_PCertResTBS = "setct-PCertResTBS", + NID_setct_PCertResTBS = 557, + OBJ_setct_PCertResTBS = OBJ_set_ctype,39L, + SN_setct_BatchAdminReqData = "setct-BatchAdminReqData", + NID_setct_BatchAdminReqData = 558, + OBJ_setct_BatchAdminReqData = OBJ_set_ctype,40L, + SN_setct_BatchAdminResData = "setct-BatchAdminResData", + NID_setct_BatchAdminResData = 559, + OBJ_setct_BatchAdminResData = OBJ_set_ctype,41L, + SN_setct_CardCInitResTBS = "setct-CardCInitResTBS", + NID_setct_CardCInitResTBS = 560, + OBJ_setct_CardCInitResTBS = OBJ_set_ctype,42L, + SN_setct_MeAqCInitResTBS = "setct-MeAqCInitResTBS", + NID_setct_MeAqCInitResTBS = 561, + OBJ_setct_MeAqCInitResTBS = OBJ_set_ctype,43L, + SN_setct_RegFormResTBS = "setct-RegFormResTBS", + NID_setct_RegFormResTBS = 562, + OBJ_setct_RegFormResTBS = OBJ_set_ctype,44L, + SN_setct_CertReqData = "setct-CertReqData", + NID_setct_CertReqData = 563, + OBJ_setct_CertReqData = OBJ_set_ctype,45L, + SN_setct_CertReqTBS = "setct-CertReqTBS", + NID_setct_CertReqTBS = 564, + OBJ_setct_CertReqTBS = OBJ_set_ctype,46L, + SN_setct_CertResData = "setct-CertResData", + NID_setct_CertResData = 565, + OBJ_setct_CertResData = OBJ_set_ctype,47L, + SN_setct_CertInqReqTBS = "setct-CertInqReqTBS", + NID_setct_CertInqReqTBS = 566, + OBJ_setct_CertInqReqTBS = OBJ_set_ctype,48L, + SN_setct_ErrorTBS = "setct-ErrorTBS", + NID_setct_ErrorTBS = 567, + OBJ_setct_ErrorTBS = OBJ_set_ctype,49L, + SN_setct_PIDualSignedTBE = "setct-PIDualSignedTBE", + NID_setct_PIDualSignedTBE = 568, + OBJ_setct_PIDualSignedTBE = OBJ_set_ctype,50L, + SN_setct_PIUnsignedTBE = "setct-PIUnsignedTBE", + NID_setct_PIUnsignedTBE = 569, + OBJ_setct_PIUnsignedTBE = OBJ_set_ctype,51L, + SN_setct_AuthReqTBE = "setct-AuthReqTBE", + NID_setct_AuthReqTBE = 570, + OBJ_setct_AuthReqTBE = OBJ_set_ctype,52L, + SN_setct_AuthResTBE = "setct-AuthResTBE", + NID_setct_AuthResTBE = 571, + OBJ_setct_AuthResTBE = OBJ_set_ctype,53L, + SN_setct_AuthResTBEX = "setct-AuthResTBEX", + NID_setct_AuthResTBEX = 572, + OBJ_setct_AuthResTBEX = OBJ_set_ctype,54L, + SN_setct_AuthTokenTBE = "setct-AuthTokenTBE", + NID_setct_AuthTokenTBE = 573, + OBJ_setct_AuthTokenTBE = OBJ_set_ctype,55L, + SN_setct_CapTokenTBE = "setct-CapTokenTBE", + NID_setct_CapTokenTBE = 574, + OBJ_setct_CapTokenTBE = OBJ_set_ctype,56L, + SN_setct_CapTokenTBEX = "setct-CapTokenTBEX", + NID_setct_CapTokenTBEX = 575, + OBJ_setct_CapTokenTBEX = OBJ_set_ctype,57L, + SN_setct_AcqCardCodeMsgTBE = "setct-AcqCardCodeMsgTBE", + NID_setct_AcqCardCodeMsgTBE = 576, + OBJ_setct_AcqCardCodeMsgTBE = OBJ_set_ctype,58L, + SN_setct_AuthRevReqTBE = "setct-AuthRevReqTBE", + NID_setct_AuthRevReqTBE = 577, + OBJ_setct_AuthRevReqTBE = OBJ_set_ctype,59L, + SN_setct_AuthRevResTBE = "setct-AuthRevResTBE", + NID_setct_AuthRevResTBE = 578, + OBJ_setct_AuthRevResTBE = OBJ_set_ctype,60L, + SN_setct_AuthRevResTBEB = "setct-AuthRevResTBEB", + NID_setct_AuthRevResTBEB = 579, + OBJ_setct_AuthRevResTBEB = OBJ_set_ctype,61L, + SN_setct_CapReqTBE = "setct-CapReqTBE", + NID_setct_CapReqTBE = 580, + OBJ_setct_CapReqTBE = OBJ_set_ctype,62L, + SN_setct_CapReqTBEX = "setct-CapReqTBEX", + NID_setct_CapReqTBEX = 581, + OBJ_setct_CapReqTBEX = OBJ_set_ctype,63L, + SN_setct_CapResTBE = "setct-CapResTBE", + NID_setct_CapResTBE = 582, + OBJ_setct_CapResTBE = OBJ_set_ctype,64L, + SN_setct_CapRevReqTBE = "setct-CapRevReqTBE", + NID_setct_CapRevReqTBE = 583, + OBJ_setct_CapRevReqTBE = OBJ_set_ctype,65L, + SN_setct_CapRevReqTBEX = "setct-CapRevReqTBEX", + NID_setct_CapRevReqTBEX = 584, + OBJ_setct_CapRevReqTBEX = OBJ_set_ctype,66L, + SN_setct_CapRevResTBE = "setct-CapRevResTBE", + NID_setct_CapRevResTBE = 585, + OBJ_setct_CapRevResTBE = OBJ_set_ctype,67L, + SN_setct_CredReqTBE = "setct-CredReqTBE", + NID_setct_CredReqTBE = 586, + OBJ_setct_CredReqTBE = OBJ_set_ctype,68L, + SN_setct_CredReqTBEX = "setct-CredReqTBEX", + NID_setct_CredReqTBEX = 587, + OBJ_setct_CredReqTBEX = OBJ_set_ctype,69L, + SN_setct_CredResTBE = "setct-CredResTBE", + NID_setct_CredResTBE = 588, + OBJ_setct_CredResTBE = OBJ_set_ctype,70L, + SN_setct_CredRevReqTBE = "setct-CredRevReqTBE", + NID_setct_CredRevReqTBE = 589, + OBJ_setct_CredRevReqTBE = OBJ_set_ctype,71L, + SN_setct_CredRevReqTBEX = "setct-CredRevReqTBEX", + NID_setct_CredRevReqTBEX = 590, + OBJ_setct_CredRevReqTBEX = OBJ_set_ctype,72L, + SN_setct_CredRevResTBE = "setct-CredRevResTBE", + NID_setct_CredRevResTBE = 591, + OBJ_setct_CredRevResTBE = OBJ_set_ctype,73L, + SN_setct_BatchAdminReqTBE = "setct-BatchAdminReqTBE", + NID_setct_BatchAdminReqTBE = 592, + OBJ_setct_BatchAdminReqTBE = OBJ_set_ctype,74L, + SN_setct_BatchAdminResTBE = "setct-BatchAdminResTBE", + NID_setct_BatchAdminResTBE = 593, + OBJ_setct_BatchAdminResTBE = OBJ_set_ctype,75L, + SN_setct_RegFormReqTBE = "setct-RegFormReqTBE", + NID_setct_RegFormReqTBE = 594, + OBJ_setct_RegFormReqTBE = OBJ_set_ctype,76L, + SN_setct_CertReqTBE = "setct-CertReqTBE", + NID_setct_CertReqTBE = 595, + OBJ_setct_CertReqTBE = OBJ_set_ctype,77L, + SN_setct_CertReqTBEX = "setct-CertReqTBEX", + NID_setct_CertReqTBEX = 596, + OBJ_setct_CertReqTBEX = OBJ_set_ctype,78L, + SN_setct_CertResTBE = "setct-CertResTBE", + NID_setct_CertResTBE = 597, + OBJ_setct_CertResTBE = OBJ_set_ctype,79L, + SN_setct_CRLNotificationTBS = "setct-CRLNotificationTBS", + NID_setct_CRLNotificationTBS = 598, + OBJ_setct_CRLNotificationTBS = OBJ_set_ctype,80L, + SN_setct_CRLNotificationResTBS = "setct-CRLNotificationResTBS", + NID_setct_CRLNotificationResTBS = 599, + OBJ_setct_CRLNotificationResTBS = OBJ_set_ctype,81L, + SN_setct_BCIDistributionTBS = "setct-BCIDistributionTBS", + NID_setct_BCIDistributionTBS = 600, + OBJ_setct_BCIDistributionTBS = OBJ_set_ctype,82L, + SN_setext_genCrypt = "setext-genCrypt", + LN_setext_genCrypt = "generic cryptogram", + NID_setext_genCrypt = 601, + OBJ_setext_genCrypt = OBJ_set_msgExt,1L, + SN_setext_miAuth = "setext-miAuth", + LN_setext_miAuth = "merchant initiated auth", + NID_setext_miAuth = 602, + OBJ_setext_miAuth = OBJ_set_msgExt,3L, + SN_setext_pinSecure = "setext-pinSecure", + NID_setext_pinSecure = 603, + OBJ_setext_pinSecure = OBJ_set_msgExt,4L, + SN_setext_pinAny = "setext-pinAny", + NID_setext_pinAny = 604, + OBJ_setext_pinAny = OBJ_set_msgExt,5L, + SN_setext_track2 = "setext-track2", + NID_setext_track2 = 605, + OBJ_setext_track2 = OBJ_set_msgExt,7L, + SN_setext_cv = "setext-cv", + LN_setext_cv = "additional verification", + NID_setext_cv = 606, + OBJ_setext_cv = OBJ_set_msgExt,8L, + SN_set_policy_root = "set-policy-root", + NID_set_policy_root = 607, + OBJ_set_policy_root = OBJ_set_policy,0L, + SN_setCext_hashedRoot = "setCext-hashedRoot", + NID_setCext_hashedRoot = 608, + OBJ_setCext_hashedRoot = OBJ_set_certExt,0L, + SN_setCext_certType = "setCext-certType", + NID_setCext_certType = 609, + OBJ_setCext_certType = OBJ_set_certExt,1L, + SN_setCext_merchData = "setCext-merchData", + NID_setCext_merchData = 610, + OBJ_setCext_merchData = OBJ_set_certExt,2L, + SN_setCext_cCertRequired = "setCext-cCertRequired", + NID_setCext_cCertRequired = 611, + OBJ_setCext_cCertRequired = OBJ_set_certExt,3L, + SN_setCext_tunneling = "setCext-tunneling", + NID_setCext_tunneling = 612, + OBJ_setCext_tunneling = OBJ_set_certExt,4L, + SN_setCext_setExt = "setCext-setExt", + NID_setCext_setExt = 613, + OBJ_setCext_setExt = OBJ_set_certExt,5L, + SN_setCext_setQualf = "setCext-setQualf", + NID_setCext_setQualf = 614, + OBJ_setCext_setQualf = OBJ_set_certExt,6L, + SN_setCext_PGWYcapabilities = "setCext-PGWYcapabilities", + NID_setCext_PGWYcapabilities = 615, + OBJ_setCext_PGWYcapabilities = OBJ_set_certExt,7L, + SN_setCext_TokenIdentifier = "setCext-TokenIdentifier", + NID_setCext_TokenIdentifier = 616, + OBJ_setCext_TokenIdentifier = OBJ_set_certExt,8L, + SN_setCext_Track2Data = "setCext-Track2Data", + NID_setCext_Track2Data = 617, + OBJ_setCext_Track2Data = OBJ_set_certExt,9L, + SN_setCext_TokenType = "setCext-TokenType", + NID_setCext_TokenType = 618, + OBJ_setCext_TokenType = OBJ_set_certExt,10L, + SN_setCext_IssuerCapabilities = "setCext-IssuerCapabilities", + NID_setCext_IssuerCapabilities = 619, + OBJ_setCext_IssuerCapabilities = OBJ_set_certExt,11L, + SN_setAttr_Cert = "setAttr-Cert", + NID_setAttr_Cert = 620, + OBJ_setAttr_Cert = OBJ_set_attr,0L, + SN_setAttr_PGWYcap = "setAttr-PGWYcap", + LN_setAttr_PGWYcap = "payment gateway capabilities", + NID_setAttr_PGWYcap = 621, + OBJ_setAttr_PGWYcap = OBJ_set_attr,1L, + SN_setAttr_TokenType = "setAttr-TokenType", + NID_setAttr_TokenType = 622, + OBJ_setAttr_TokenType = OBJ_set_attr,2L, + SN_setAttr_IssCap = "setAttr-IssCap", + LN_setAttr_IssCap = "issuer capabilities", + NID_setAttr_IssCap = 623, + OBJ_setAttr_IssCap = OBJ_set_attr,3L, + SN_set_rootKeyThumb = "set-rootKeyThumb", + NID_set_rootKeyThumb = 624, + OBJ_set_rootKeyThumb = OBJ_setAttr_Cert,0L, + SN_set_addPolicy = "set-addPolicy", + NID_set_addPolicy = 625, + OBJ_set_addPolicy = OBJ_setAttr_Cert,1L, + SN_setAttr_Token_EMV = "setAttr-Token-EMV", + NID_setAttr_Token_EMV = 626, + OBJ_setAttr_Token_EMV = OBJ_setAttr_TokenType,1L, + SN_setAttr_Token_B0Prime = "setAttr-Token-B0Prime", + NID_setAttr_Token_B0Prime = 627, + OBJ_setAttr_Token_B0Prime = OBJ_setAttr_TokenType,2L, + SN_setAttr_IssCap_CVM = "setAttr-IssCap-CVM", + NID_setAttr_IssCap_CVM = 628, + OBJ_setAttr_IssCap_CVM = OBJ_setAttr_IssCap,3L, + SN_setAttr_IssCap_T2 = "setAttr-IssCap-T2", + NID_setAttr_IssCap_T2 = 629, + OBJ_setAttr_IssCap_T2 = OBJ_setAttr_IssCap,4L, + SN_setAttr_IssCap_Sig = "setAttr-IssCap-Sig", + NID_setAttr_IssCap_Sig = 630, + OBJ_setAttr_IssCap_Sig = OBJ_setAttr_IssCap,5L, + SN_setAttr_GenCryptgrm = "setAttr-GenCryptgrm", + LN_setAttr_GenCryptgrm = "generate cryptogram", + NID_setAttr_GenCryptgrm = 631, + OBJ_setAttr_GenCryptgrm = OBJ_setAttr_IssCap_CVM,1L, + SN_setAttr_T2Enc = "setAttr-T2Enc", + LN_setAttr_T2Enc = "encrypted track 2", + NID_setAttr_T2Enc = 632, + OBJ_setAttr_T2Enc = OBJ_setAttr_IssCap_T2,1L, + SN_setAttr_T2cleartxt = "setAttr-T2cleartxt", + LN_setAttr_T2cleartxt = "cleartext track 2", + NID_setAttr_T2cleartxt = 633, + OBJ_setAttr_T2cleartxt = OBJ_setAttr_IssCap_T2,2L, + SN_setAttr_TokICCsig = "setAttr-TokICCsig", + LN_setAttr_TokICCsig = "ICC or token signature", + NID_setAttr_TokICCsig = 634, + OBJ_setAttr_TokICCsig = OBJ_setAttr_IssCap_Sig,1L, + SN_setAttr_SecDevSig = "setAttr-SecDevSig", + LN_setAttr_SecDevSig = "secure device signature", + NID_setAttr_SecDevSig = 635, + OBJ_setAttr_SecDevSig = OBJ_setAttr_IssCap_Sig,2L, + SN_set_brand_IATA_ATA = "set-brand-IATA-ATA", + NID_set_brand_IATA_ATA = 636, + OBJ_set_brand_IATA_ATA = OBJ_set_brand,1L, + SN_set_brand_Diners = "set-brand-Diners", + NID_set_brand_Diners = 637, + OBJ_set_brand_Diners = OBJ_set_brand,30L, + SN_set_brand_AmericanExpress = "set-brand-AmericanExpress", + NID_set_brand_AmericanExpress = 638, + OBJ_set_brand_AmericanExpress = OBJ_set_brand,34L, + SN_set_brand_JCB = "set-brand-JCB", + NID_set_brand_JCB = 639, + OBJ_set_brand_JCB = OBJ_set_brand,35L, + SN_set_brand_Visa = "set-brand-Visa", + NID_set_brand_Visa = 640, + OBJ_set_brand_Visa = OBJ_set_brand,4L, + SN_set_brand_MasterCard = "set-brand-MasterCard", + NID_set_brand_MasterCard = 641, + OBJ_set_brand_MasterCard = OBJ_set_brand,5L, + SN_set_brand_Novus = "set-brand-Novus", + NID_set_brand_Novus = 642, + OBJ_set_brand_Novus = OBJ_set_brand,6011L, + SN_des_cdmf = "DES-CDMF", + LN_des_cdmf = "des-cdmf", + NID_des_cdmf = 643, + OBJ_des_cdmf = OBJ_rsadsi,3L,10L, + SN_rsaOAEPEncryptionSET = "rsaOAEPEncryptionSET", + NID_rsaOAEPEncryptionSET = 644, + OBJ_rsaOAEPEncryptionSET = OBJ_rsadsi,1L,1L,6L, + SN_ipsec3 = "Oakley-EC2N-3", + LN_ipsec3 = "ipsec3", + NID_ipsec3 = 749, + SN_ipsec4 = "Oakley-EC2N-4", + LN_ipsec4 = "ipsec4", + NID_ipsec4 = 750, + SN_whirlpool = "whirlpool", + NID_whirlpool = 804, + OBJ_whirlpool = OBJ_iso,0L,10118L,3L,0L,55L, + SN_cryptopro = "cryptopro", + NID_cryptopro = 805, + OBJ_cryptopro = OBJ_member_body,643L,2L,2L, + SN_cryptocom = "cryptocom", + NID_cryptocom = 806, + OBJ_cryptocom = OBJ_member_body,643L,2L,9L, + SN_id_tc26 = "id-tc26", + NID_id_tc26 = 974, + OBJ_id_tc26 = OBJ_member_body,643L,7L,1L, + SN_id_GostR3411_94_with_GostR3410_2001 = "id-GostR3411-94-with-GostR3410-2001", + LN_id_GostR3411_94_with_GostR3410_2001 = "GOST R 34.11-94 with GOST R 34.10-2001", + NID_id_GostR3411_94_with_GostR3410_2001 = 807, + OBJ_id_GostR3411_94_with_GostR3410_2001 = OBJ_cryptopro,3L, + SN_id_GostR3411_94_with_GostR3410_94 = "id-GostR3411-94-with-GostR3410-94", + LN_id_GostR3411_94_with_GostR3410_94 = "GOST R 34.11-94 with GOST R 34.10-94", + NID_id_GostR3411_94_with_GostR3410_94 = 808, + OBJ_id_GostR3411_94_with_GostR3410_94 = OBJ_cryptopro,4L, + SN_id_GostR3411_94 = "md_gost94", + LN_id_GostR3411_94 = "GOST R 34.11-94", + NID_id_GostR3411_94 = 809, + OBJ_id_GostR3411_94 = OBJ_cryptopro,9L, + SN_id_HMACGostR3411_94 = "id-HMACGostR3411-94", + LN_id_HMACGostR3411_94 = "HMAC GOST 34.11-94", + NID_id_HMACGostR3411_94 = 810, + OBJ_id_HMACGostR3411_94 = OBJ_cryptopro,10L, + SN_id_GostR3410_2001 = "gost2001", + LN_id_GostR3410_2001 = "GOST R 34.10-2001", + NID_id_GostR3410_2001 = 811, + OBJ_id_GostR3410_2001 = OBJ_cryptopro,19L, + SN_id_GostR3410_94 = "gost94", + LN_id_GostR3410_94 = "GOST R 34.10-94", + NID_id_GostR3410_94 = 812, + OBJ_id_GostR3410_94 = OBJ_cryptopro,20L, + SN_id_Gost28147_89 = "gost89", + LN_id_Gost28147_89 = "GOST 28147-89", + NID_id_Gost28147_89 = 813, + OBJ_id_Gost28147_89 = OBJ_cryptopro,21L, + SN_gost89_cnt = "gost89-cnt", + NID_gost89_cnt = 814, + SN_gost89_cnt_12 = "gost89-cnt-12", + NID_gost89_cnt_12 = 975, + SN_gost89_cbc = "gost89-cbc", + NID_gost89_cbc = 1009, + SN_gost89_ecb = "gost89-ecb", + NID_gost89_ecb = 1010, + SN_gost89_ctr = "gost89-ctr", + NID_gost89_ctr = 1011, + SN_id_Gost28147_89_MAC = "gost-mac", + LN_id_Gost28147_89_MAC = "GOST 28147-89 MAC", + NID_id_Gost28147_89_MAC = 815, + OBJ_id_Gost28147_89_MAC = OBJ_cryptopro,22L, + SN_gost_mac_12 = "gost-mac-12", + NID_gost_mac_12 = 976, + SN_id_GostR3411_94_prf = "prf-gostr3411-94", + LN_id_GostR3411_94_prf = "GOST R 34.11-94 PRF", + NID_id_GostR3411_94_prf = 816, + OBJ_id_GostR3411_94_prf = OBJ_cryptopro,23L, + SN_id_GostR3410_2001DH = "id-GostR3410-2001DH", + LN_id_GostR3410_2001DH = "GOST R 34.10-2001 DH", + NID_id_GostR3410_2001DH = 817, + OBJ_id_GostR3410_2001DH = OBJ_cryptopro,98L, + SN_id_GostR3410_94DH = "id-GostR3410-94DH", + LN_id_GostR3410_94DH = "GOST R 34.10-94 DH", + NID_id_GostR3410_94DH = 818, + OBJ_id_GostR3410_94DH = OBJ_cryptopro,99L, + SN_id_Gost28147_89_CryptoPro_KeyMeshing = "id-Gost28147-89-CryptoPro-KeyMeshing", + NID_id_Gost28147_89_CryptoPro_KeyMeshing = 819, + OBJ_id_Gost28147_89_CryptoPro_KeyMeshing = OBJ_cryptopro,14L,1L, + SN_id_Gost28147_89_None_KeyMeshing = "id-Gost28147-89-None-KeyMeshing", + NID_id_Gost28147_89_None_KeyMeshing = 820, + OBJ_id_Gost28147_89_None_KeyMeshing = OBJ_cryptopro,14L,0L, + SN_id_GostR3411_94_TestParamSet = "id-GostR3411-94-TestParamSet", + NID_id_GostR3411_94_TestParamSet = 821, + OBJ_id_GostR3411_94_TestParamSet = OBJ_cryptopro,30L,0L, + SN_id_GostR3411_94_CryptoProParamSet = "id-GostR3411-94-CryptoProParamSet", + NID_id_GostR3411_94_CryptoProParamSet = 822, + OBJ_id_GostR3411_94_CryptoProParamSet = OBJ_cryptopro,30L,1L, + SN_id_Gost28147_89_TestParamSet = "id-Gost28147-89-TestParamSet", + NID_id_Gost28147_89_TestParamSet = 823, + OBJ_id_Gost28147_89_TestParamSet = OBJ_cryptopro,31L,0L, + SN_id_Gost28147_89_CryptoPro_A_ParamSet = "id-Gost28147-89-CryptoPro-A-ParamSet", + NID_id_Gost28147_89_CryptoPro_A_ParamSet = 824, + OBJ_id_Gost28147_89_CryptoPro_A_ParamSet = OBJ_cryptopro,31L,1L, + SN_id_Gost28147_89_CryptoPro_B_ParamSet = "id-Gost28147-89-CryptoPro-B-ParamSet", + NID_id_Gost28147_89_CryptoPro_B_ParamSet = 825, + OBJ_id_Gost28147_89_CryptoPro_B_ParamSet = OBJ_cryptopro,31L,2L, + SN_id_Gost28147_89_CryptoPro_C_ParamSet = "id-Gost28147-89-CryptoPro-C-ParamSet", + NID_id_Gost28147_89_CryptoPro_C_ParamSet = 826, + OBJ_id_Gost28147_89_CryptoPro_C_ParamSet = OBJ_cryptopro,31L,3L, + SN_id_Gost28147_89_CryptoPro_D_ParamSet = "id-Gost28147-89-CryptoPro-D-ParamSet", + NID_id_Gost28147_89_CryptoPro_D_ParamSet = 827, + OBJ_id_Gost28147_89_CryptoPro_D_ParamSet = OBJ_cryptopro,31L,4L, + SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet = "id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet", + NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet = 828, + OBJ_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet = OBJ_cryptopro,31L,5L, + SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet = "id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet", + NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet = 829, + OBJ_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet = OBJ_cryptopro,31L,6L, + SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet = "id-Gost28147-89-CryptoPro-RIC-1-ParamSet", + NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet = 830, + OBJ_id_Gost28147_89_CryptoPro_RIC_1_ParamSet = OBJ_cryptopro,31L,7L, + SN_id_GostR3410_94_TestParamSet = "id-GostR3410-94-TestParamSet", + NID_id_GostR3410_94_TestParamSet = 831, + OBJ_id_GostR3410_94_TestParamSet = OBJ_cryptopro,32L,0L, + SN_id_GostR3410_94_CryptoPro_A_ParamSet = "id-GostR3410-94-CryptoPro-A-ParamSet", + NID_id_GostR3410_94_CryptoPro_A_ParamSet = 832, + OBJ_id_GostR3410_94_CryptoPro_A_ParamSet = OBJ_cryptopro,32L,2L, + SN_id_GostR3410_94_CryptoPro_B_ParamSet = "id-GostR3410-94-CryptoPro-B-ParamSet", + NID_id_GostR3410_94_CryptoPro_B_ParamSet = 833, + OBJ_id_GostR3410_94_CryptoPro_B_ParamSet = OBJ_cryptopro,32L,3L, + SN_id_GostR3410_94_CryptoPro_C_ParamSet = "id-GostR3410-94-CryptoPro-C-ParamSet", + NID_id_GostR3410_94_CryptoPro_C_ParamSet = 834, + OBJ_id_GostR3410_94_CryptoPro_C_ParamSet = OBJ_cryptopro,32L,4L, + SN_id_GostR3410_94_CryptoPro_D_ParamSet = "id-GostR3410-94-CryptoPro-D-ParamSet", + NID_id_GostR3410_94_CryptoPro_D_ParamSet = 835, + OBJ_id_GostR3410_94_CryptoPro_D_ParamSet = OBJ_cryptopro,32L,5L, + SN_id_GostR3410_94_CryptoPro_XchA_ParamSet = "id-GostR3410-94-CryptoPro-XchA-ParamSet", + NID_id_GostR3410_94_CryptoPro_XchA_ParamSet = 836, + OBJ_id_GostR3410_94_CryptoPro_XchA_ParamSet = OBJ_cryptopro,33L,1L, + SN_id_GostR3410_94_CryptoPro_XchB_ParamSet = "id-GostR3410-94-CryptoPro-XchB-ParamSet", + NID_id_GostR3410_94_CryptoPro_XchB_ParamSet = 837, + OBJ_id_GostR3410_94_CryptoPro_XchB_ParamSet = OBJ_cryptopro,33L,2L, + SN_id_GostR3410_94_CryptoPro_XchC_ParamSet = "id-GostR3410-94-CryptoPro-XchC-ParamSet", + NID_id_GostR3410_94_CryptoPro_XchC_ParamSet = 838, + OBJ_id_GostR3410_94_CryptoPro_XchC_ParamSet = OBJ_cryptopro,33L,3L, + SN_id_GostR3410_2001_TestParamSet = "id-GostR3410-2001-TestParamSet", + NID_id_GostR3410_2001_TestParamSet = 839, + OBJ_id_GostR3410_2001_TestParamSet = OBJ_cryptopro,35L,0L, + SN_id_GostR3410_2001_CryptoPro_A_ParamSet = "id-GostR3410-2001-CryptoPro-A-ParamSet", + NID_id_GostR3410_2001_CryptoPro_A_ParamSet = 840, + OBJ_id_GostR3410_2001_CryptoPro_A_ParamSet = OBJ_cryptopro,35L,1L, + SN_id_GostR3410_2001_CryptoPro_B_ParamSet = "id-GostR3410-2001-CryptoPro-B-ParamSet", + NID_id_GostR3410_2001_CryptoPro_B_ParamSet = 841, + OBJ_id_GostR3410_2001_CryptoPro_B_ParamSet = OBJ_cryptopro,35L,2L, + SN_id_GostR3410_2001_CryptoPro_C_ParamSet = "id-GostR3410-2001-CryptoPro-C-ParamSet", + NID_id_GostR3410_2001_CryptoPro_C_ParamSet = 842, + OBJ_id_GostR3410_2001_CryptoPro_C_ParamSet = OBJ_cryptopro,35L,3L, + SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet = "id-GostR3410-2001-CryptoPro-XchA-ParamSet", + NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet = 843, + OBJ_id_GostR3410_2001_CryptoPro_XchA_ParamSet = OBJ_cryptopro,36L,0L, + SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet = "id-GostR3410-2001-CryptoPro-XchB-ParamSet", + NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet = 844, + OBJ_id_GostR3410_2001_CryptoPro_XchB_ParamSet = OBJ_cryptopro,36L,1L, + SN_id_GostR3410_94_a = "id-GostR3410-94-a", + NID_id_GostR3410_94_a = 845, + OBJ_id_GostR3410_94_a = OBJ_id_GostR3410_94,1L, + SN_id_GostR3410_94_aBis = "id-GostR3410-94-aBis", + NID_id_GostR3410_94_aBis = 846, + OBJ_id_GostR3410_94_aBis = OBJ_id_GostR3410_94,2L, + SN_id_GostR3410_94_b = "id-GostR3410-94-b", + NID_id_GostR3410_94_b = 847, + OBJ_id_GostR3410_94_b = OBJ_id_GostR3410_94,3L, + SN_id_GostR3410_94_bBis = "id-GostR3410-94-bBis", + NID_id_GostR3410_94_bBis = 848, + OBJ_id_GostR3410_94_bBis = OBJ_id_GostR3410_94,4L, + SN_id_Gost28147_89_cc = "id-Gost28147-89-cc", + LN_id_Gost28147_89_cc = "GOST 28147-89 Cryptocom ParamSet", + NID_id_Gost28147_89_cc = 849, + OBJ_id_Gost28147_89_cc = OBJ_cryptocom,1L,6L,1L, + SN_id_GostR3410_94_cc = "gost94cc", + LN_id_GostR3410_94_cc = "GOST 34.10-94 Cryptocom", + NID_id_GostR3410_94_cc = 850, + OBJ_id_GostR3410_94_cc = OBJ_cryptocom,1L,5L,3L, + SN_id_GostR3410_2001_cc = "gost2001cc", + LN_id_GostR3410_2001_cc = "GOST 34.10-2001 Cryptocom", + NID_id_GostR3410_2001_cc = 851, + OBJ_id_GostR3410_2001_cc = OBJ_cryptocom,1L,5L,4L, + SN_id_GostR3411_94_with_GostR3410_94_cc = "id-GostR3411-94-with-GostR3410-94-cc", + LN_id_GostR3411_94_with_GostR3410_94_cc = "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom", + NID_id_GostR3411_94_with_GostR3410_94_cc = 852, + OBJ_id_GostR3411_94_with_GostR3410_94_cc = OBJ_cryptocom,1L,3L,3L, + SN_id_GostR3411_94_with_GostR3410_2001_cc = "id-GostR3411-94-with-GostR3410-2001-cc", + LN_id_GostR3411_94_with_GostR3410_2001_cc = "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom", + NID_id_GostR3411_94_with_GostR3410_2001_cc = 853, + OBJ_id_GostR3411_94_with_GostR3410_2001_cc = OBJ_cryptocom,1L,3L,4L, + SN_id_GostR3410_2001_ParamSet_cc = "id-GostR3410-2001-ParamSet-cc", + LN_id_GostR3410_2001_ParamSet_cc = "GOST R 3410-2001 Parameter Set Cryptocom", + NID_id_GostR3410_2001_ParamSet_cc = 854, + OBJ_id_GostR3410_2001_ParamSet_cc = OBJ_cryptocom,1L,8L,1L, + SN_id_tc26_algorithms = "id-tc26-algorithms", + NID_id_tc26_algorithms = 977, + OBJ_id_tc26_algorithms = OBJ_id_tc26,1L, + SN_id_tc26_sign = "id-tc26-sign", + NID_id_tc26_sign = 978, + OBJ_id_tc26_sign = OBJ_id_tc26_algorithms,1L, + SN_id_GostR3410_2012_256 = "gost2012_256", + LN_id_GostR3410_2012_256 = "GOST R 34.10-2012 with 256 bit modulus", + NID_id_GostR3410_2012_256 = 979, + OBJ_id_GostR3410_2012_256 = OBJ_id_tc26_sign,1L, + SN_id_GostR3410_2012_512 = "gost2012_512", + LN_id_GostR3410_2012_512 = "GOST R 34.10-2012 with 512 bit modulus", + NID_id_GostR3410_2012_512 = 980, + OBJ_id_GostR3410_2012_512 = OBJ_id_tc26_sign,2L, + SN_id_tc26_digest = "id-tc26-digest", + NID_id_tc26_digest = 981, + OBJ_id_tc26_digest = OBJ_id_tc26_algorithms,2L, + SN_id_GostR3411_2012_256 = "md_gost12_256", + LN_id_GostR3411_2012_256 = "GOST R 34.11-2012 with 256 bit hash", + NID_id_GostR3411_2012_256 = 982, + OBJ_id_GostR3411_2012_256 = OBJ_id_tc26_digest,2L, + SN_id_GostR3411_2012_512 = "md_gost12_512", + LN_id_GostR3411_2012_512 = "GOST R 34.11-2012 with 512 bit hash", + NID_id_GostR3411_2012_512 = 983, + OBJ_id_GostR3411_2012_512 = OBJ_id_tc26_digest,3L, + SN_id_tc26_signwithdigest = "id-tc26-signwithdigest", + NID_id_tc26_signwithdigest = 984, + OBJ_id_tc26_signwithdigest = OBJ_id_tc26_algorithms,3L, + SN_id_tc26_signwithdigest_gost3410_2012_256 = "id-tc26-signwithdigest-gost3410-2012-256", + LN_id_tc26_signwithdigest_gost3410_2012_256 = "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)", + NID_id_tc26_signwithdigest_gost3410_2012_256 = 985, + OBJ_id_tc26_signwithdigest_gost3410_2012_256 = OBJ_id_tc26_signwithdigest,2L, + SN_id_tc26_signwithdigest_gost3410_2012_512 = "id-tc26-signwithdigest-gost3410-2012-512", + LN_id_tc26_signwithdigest_gost3410_2012_512 = "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)", + NID_id_tc26_signwithdigest_gost3410_2012_512 = 986, + OBJ_id_tc26_signwithdigest_gost3410_2012_512 = OBJ_id_tc26_signwithdigest,3L, + SN_id_tc26_mac = "id-tc26-mac", + NID_id_tc26_mac = 987, + OBJ_id_tc26_mac = OBJ_id_tc26_algorithms,4L, + SN_id_tc26_hmac_gost_3411_2012_256 = "id-tc26-hmac-gost-3411-2012-256", + LN_id_tc26_hmac_gost_3411_2012_256 = "HMAC GOST 34.11-2012 256 bit", + NID_id_tc26_hmac_gost_3411_2012_256 = 988, + OBJ_id_tc26_hmac_gost_3411_2012_256 = OBJ_id_tc26_mac,1L, + SN_id_tc26_hmac_gost_3411_2012_512 = "id-tc26-hmac-gost-3411-2012-512", + LN_id_tc26_hmac_gost_3411_2012_512 = "HMAC GOST 34.11-2012 512 bit", + NID_id_tc26_hmac_gost_3411_2012_512 = 989, + OBJ_id_tc26_hmac_gost_3411_2012_512 = OBJ_id_tc26_mac,2L, + SN_id_tc26_cipher = "id-tc26-cipher", + NID_id_tc26_cipher = 990, + OBJ_id_tc26_cipher = OBJ_id_tc26_algorithms,5L, + SN_id_tc26_cipher_gostr3412_2015_magma = "id-tc26-cipher-gostr3412-2015-magma", + NID_id_tc26_cipher_gostr3412_2015_magma = 1173, + OBJ_id_tc26_cipher_gostr3412_2015_magma = OBJ_id_tc26_cipher,1L, + SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm = "id-tc26-cipher-gostr3412-2015-magma-ctracpkm", + NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm = 1174, + OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm = OBJ_id_tc26_cipher_gostr3412_2015_magma,1L, + SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac = "id-tc26-cipher-gostr3412-2015-magma-ctracpkm-omac", + NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac = 1175, + OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac = OBJ_id_tc26_cipher_gostr3412_2015_magma,2L, + SN_id_tc26_cipher_gostr3412_2015_kuznyechik = "id-tc26-cipher-gostr3412-2015-kuznyechik", + NID_id_tc26_cipher_gostr3412_2015_kuznyechik = 1176, + OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik = OBJ_id_tc26_cipher,2L, + SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm = "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm", + NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm = 1177, + OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm = OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,1L, + SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac = "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm-omac", + NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac = 1178, + OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac = OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,2L, + SN_id_tc26_agreement = "id-tc26-agreement", + NID_id_tc26_agreement = 991, + OBJ_id_tc26_agreement = OBJ_id_tc26_algorithms,6L, + SN_id_tc26_agreement_gost_3410_2012_256 = "id-tc26-agreement-gost-3410-2012-256", + NID_id_tc26_agreement_gost_3410_2012_256 = 992, + OBJ_id_tc26_agreement_gost_3410_2012_256 = OBJ_id_tc26_agreement,1L, + SN_id_tc26_agreement_gost_3410_2012_512 = "id-tc26-agreement-gost-3410-2012-512", + NID_id_tc26_agreement_gost_3410_2012_512 = 993, + OBJ_id_tc26_agreement_gost_3410_2012_512 = OBJ_id_tc26_agreement,2L, + SN_id_tc26_wrap = "id-tc26-wrap", + NID_id_tc26_wrap = 1179, + OBJ_id_tc26_wrap = OBJ_id_tc26_algorithms,7L, + SN_id_tc26_wrap_gostr3412_2015_magma = "id-tc26-wrap-gostr3412-2015-magma", + NID_id_tc26_wrap_gostr3412_2015_magma = 1180, + OBJ_id_tc26_wrap_gostr3412_2015_magma = OBJ_id_tc26_wrap,1L, + SN_id_tc26_wrap_gostr3412_2015_magma_kexp15 = "id-tc26-wrap-gostr3412-2015-magma-kexp15", + NID_id_tc26_wrap_gostr3412_2015_magma_kexp15 = 1181, + OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15 = OBJ_id_tc26_wrap_gostr3412_2015_magma,1L, + SN_id_tc26_wrap_gostr3412_2015_kuznyechik = "id-tc26-wrap-gostr3412-2015-kuznyechik", + NID_id_tc26_wrap_gostr3412_2015_kuznyechik = 1182, + OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik = OBJ_id_tc26_wrap,2L, + SN_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 = "id-tc26-wrap-gostr3412-2015-kuznyechik-kexp15", + NID_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 = 1183, + OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 = OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik,1L, + SN_id_tc26_constants = "id-tc26-constants", + NID_id_tc26_constants = 994, + OBJ_id_tc26_constants = OBJ_id_tc26,2L, + SN_id_tc26_sign_constants = "id-tc26-sign-constants", + NID_id_tc26_sign_constants = 995, + OBJ_id_tc26_sign_constants = OBJ_id_tc26_constants,1L, + SN_id_tc26_gost_3410_2012_256_constants = "id-tc26-gost-3410-2012-256-constants", + NID_id_tc26_gost_3410_2012_256_constants = 1147, + OBJ_id_tc26_gost_3410_2012_256_constants = OBJ_id_tc26_sign_constants,1L, + SN_id_tc26_gost_3410_2012_256_paramSetA = "id-tc26-gost-3410-2012-256-paramSetA", + LN_id_tc26_gost_3410_2012_256_paramSetA = "GOST R 34.10-2012 (256 bit) ParamSet A", + NID_id_tc26_gost_3410_2012_256_paramSetA = 1148, + OBJ_id_tc26_gost_3410_2012_256_paramSetA = OBJ_id_tc26_gost_3410_2012_256_constants,1L, + SN_id_tc26_gost_3410_2012_256_paramSetB = "id-tc26-gost-3410-2012-256-paramSetB", + LN_id_tc26_gost_3410_2012_256_paramSetB = "GOST R 34.10-2012 (256 bit) ParamSet B", + NID_id_tc26_gost_3410_2012_256_paramSetB = 1184, + OBJ_id_tc26_gost_3410_2012_256_paramSetB = OBJ_id_tc26_gost_3410_2012_256_constants,2L, + SN_id_tc26_gost_3410_2012_256_paramSetC = "id-tc26-gost-3410-2012-256-paramSetC", + LN_id_tc26_gost_3410_2012_256_paramSetC = "GOST R 34.10-2012 (256 bit) ParamSet C", + NID_id_tc26_gost_3410_2012_256_paramSetC = 1185, + OBJ_id_tc26_gost_3410_2012_256_paramSetC = OBJ_id_tc26_gost_3410_2012_256_constants,3L, + SN_id_tc26_gost_3410_2012_256_paramSetD = "id-tc26-gost-3410-2012-256-paramSetD", + LN_id_tc26_gost_3410_2012_256_paramSetD = "GOST R 34.10-2012 (256 bit) ParamSet D", + NID_id_tc26_gost_3410_2012_256_paramSetD = 1186, + OBJ_id_tc26_gost_3410_2012_256_paramSetD = OBJ_id_tc26_gost_3410_2012_256_constants,4L, + SN_id_tc26_gost_3410_2012_512_constants = "id-tc26-gost-3410-2012-512-constants", + NID_id_tc26_gost_3410_2012_512_constants = 996, + OBJ_id_tc26_gost_3410_2012_512_constants = OBJ_id_tc26_sign_constants,2L, + SN_id_tc26_gost_3410_2012_512_paramSetTest = "id-tc26-gost-3410-2012-512-paramSetTest", + LN_id_tc26_gost_3410_2012_512_paramSetTest = "GOST R 34.10-2012 (512 bit) testing parameter set", + NID_id_tc26_gost_3410_2012_512_paramSetTest = 997, + OBJ_id_tc26_gost_3410_2012_512_paramSetTest = OBJ_id_tc26_gost_3410_2012_512_constants,0L, + SN_id_tc26_gost_3410_2012_512_paramSetA = "id-tc26-gost-3410-2012-512-paramSetA", + LN_id_tc26_gost_3410_2012_512_paramSetA = "GOST R 34.10-2012 (512 bit) ParamSet A", + NID_id_tc26_gost_3410_2012_512_paramSetA = 998, + OBJ_id_tc26_gost_3410_2012_512_paramSetA = OBJ_id_tc26_gost_3410_2012_512_constants,1L, + SN_id_tc26_gost_3410_2012_512_paramSetB = "id-tc26-gost-3410-2012-512-paramSetB", + LN_id_tc26_gost_3410_2012_512_paramSetB = "GOST R 34.10-2012 (512 bit) ParamSet B", + NID_id_tc26_gost_3410_2012_512_paramSetB = 999, + OBJ_id_tc26_gost_3410_2012_512_paramSetB = OBJ_id_tc26_gost_3410_2012_512_constants,2L, + SN_id_tc26_gost_3410_2012_512_paramSetC = "id-tc26-gost-3410-2012-512-paramSetC", + LN_id_tc26_gost_3410_2012_512_paramSetC = "GOST R 34.10-2012 (512 bit) ParamSet C", + NID_id_tc26_gost_3410_2012_512_paramSetC = 1149, + OBJ_id_tc26_gost_3410_2012_512_paramSetC = OBJ_id_tc26_gost_3410_2012_512_constants,3L, + SN_id_tc26_digest_constants = "id-tc26-digest-constants", + NID_id_tc26_digest_constants = 1000, + OBJ_id_tc26_digest_constants = OBJ_id_tc26_constants,2L, + SN_id_tc26_cipher_constants = "id-tc26-cipher-constants", + NID_id_tc26_cipher_constants = 1001, + OBJ_id_tc26_cipher_constants = OBJ_id_tc26_constants,5L, + SN_id_tc26_gost_28147_constants = "id-tc26-gost-28147-constants", + NID_id_tc26_gost_28147_constants = 1002, + OBJ_id_tc26_gost_28147_constants = OBJ_id_tc26_cipher_constants,1L, + SN_id_tc26_gost_28147_param_Z = "id-tc26-gost-28147-param-Z", + LN_id_tc26_gost_28147_param_Z = "GOST 28147-89 TC26 parameter set", + NID_id_tc26_gost_28147_param_Z = 1003, + OBJ_id_tc26_gost_28147_param_Z = OBJ_id_tc26_gost_28147_constants,1L, + SN_INN = "INN", + LN_INN = "INN", + NID_INN = 1004, + OBJ_INN = OBJ_member_body,643L,3L,131L,1L,1L, + SN_OGRN = "OGRN", + LN_OGRN = "OGRN", + NID_OGRN = 1005, + OBJ_OGRN = OBJ_member_body,643L,100L,1L, + SN_SNILS = "SNILS", + LN_SNILS = "SNILS", + NID_SNILS = 1006, + OBJ_SNILS = OBJ_member_body,643L,100L,3L, + SN_subjectSignTool = "subjectSignTool", + LN_subjectSignTool = "Signing Tool of Subject", + NID_subjectSignTool = 1007, + OBJ_subjectSignTool = OBJ_member_body,643L,100L,111L, + SN_issuerSignTool = "issuerSignTool", + LN_issuerSignTool = "Signing Tool of Issuer", + NID_issuerSignTool = 1008, + OBJ_issuerSignTool = OBJ_member_body,643L,100L,112L, + SN_grasshopper_ecb = "grasshopper-ecb", + NID_grasshopper_ecb = 1012, + SN_grasshopper_ctr = "grasshopper-ctr", + NID_grasshopper_ctr = 1013, + SN_grasshopper_ofb = "grasshopper-ofb", + NID_grasshopper_ofb = 1014, + SN_grasshopper_cbc = "grasshopper-cbc", + NID_grasshopper_cbc = 1015, + SN_grasshopper_cfb = "grasshopper-cfb", + NID_grasshopper_cfb = 1016, + SN_grasshopper_mac = "grasshopper-mac", + NID_grasshopper_mac = 1017, + SN_magma_ecb = "magma-ecb", + NID_magma_ecb = 1187, + SN_magma_ctr = "magma-ctr", + NID_magma_ctr = 1188, + SN_magma_ofb = "magma-ofb", + NID_magma_ofb = 1189, + SN_magma_cbc = "magma-cbc", + NID_magma_cbc = 1190, + SN_magma_cfb = "magma-cfb", + NID_magma_cfb = 1191, + SN_magma_mac = "magma-mac", + NID_magma_mac = 1192, + SN_camellia_128_cbc = "CAMELLIA-128-CBC", + LN_camellia_128_cbc = "camellia-128-cbc", + NID_camellia_128_cbc = 751, + OBJ_camellia_128_cbc = 1L,2L,392L,200011L,61L,1L,1L,1L,2L, + SN_camellia_192_cbc = "CAMELLIA-192-CBC", + LN_camellia_192_cbc = "camellia-192-cbc", + NID_camellia_192_cbc = 752, + OBJ_camellia_192_cbc = 1L,2L,392L,200011L,61L,1L,1L,1L,3L, + SN_camellia_256_cbc = "CAMELLIA-256-CBC", + LN_camellia_256_cbc = "camellia-256-cbc", + NID_camellia_256_cbc = 753, + OBJ_camellia_256_cbc = 1L,2L,392L,200011L,61L,1L,1L,1L,4L, + SN_id_camellia128_wrap = "id-camellia128-wrap", + NID_id_camellia128_wrap = 907, + OBJ_id_camellia128_wrap = 1L,2L,392L,200011L,61L,1L,1L,3L,2L, + SN_id_camellia192_wrap = "id-camellia192-wrap", + NID_id_camellia192_wrap = 908, + OBJ_id_camellia192_wrap = 1L,2L,392L,200011L,61L,1L,1L,3L,3L, + SN_id_camellia256_wrap = "id-camellia256-wrap", + NID_id_camellia256_wrap = 909, + OBJ_id_camellia256_wrap = 1L,2L,392L,200011L,61L,1L,1L,3L,4L, + OBJ_ntt_ds = 0L,3L,4401L,5L, + OBJ_camellia = OBJ_ntt_ds,3L,1L,9L, + SN_camellia_128_ecb = "CAMELLIA-128-ECB", + LN_camellia_128_ecb = "camellia-128-ecb", + NID_camellia_128_ecb = 754, + OBJ_camellia_128_ecb = OBJ_camellia,1L, + SN_camellia_128_ofb128 = "CAMELLIA-128-OFB", + LN_camellia_128_ofb128 = "camellia-128-ofb", + NID_camellia_128_ofb128 = 766, + OBJ_camellia_128_ofb128 = OBJ_camellia,3L, + SN_camellia_128_cfb128 = "CAMELLIA-128-CFB", + LN_camellia_128_cfb128 = "camellia-128-cfb", + NID_camellia_128_cfb128 = 757, + OBJ_camellia_128_cfb128 = OBJ_camellia,4L, + SN_camellia_128_gcm = "CAMELLIA-128-GCM", + LN_camellia_128_gcm = "camellia-128-gcm", + NID_camellia_128_gcm = 961, + OBJ_camellia_128_gcm = OBJ_camellia,6L, + SN_camellia_128_ccm = "CAMELLIA-128-CCM", + LN_camellia_128_ccm = "camellia-128-ccm", + NID_camellia_128_ccm = 962, + OBJ_camellia_128_ccm = OBJ_camellia,7L, + SN_camellia_128_ctr = "CAMELLIA-128-CTR", + LN_camellia_128_ctr = "camellia-128-ctr", + NID_camellia_128_ctr = 963, + OBJ_camellia_128_ctr = OBJ_camellia,9L, + SN_camellia_128_cmac = "CAMELLIA-128-CMAC", + LN_camellia_128_cmac = "camellia-128-cmac", + NID_camellia_128_cmac = 964, + OBJ_camellia_128_cmac = OBJ_camellia,10L, + SN_camellia_192_ecb = "CAMELLIA-192-ECB", + LN_camellia_192_ecb = "camellia-192-ecb", + NID_camellia_192_ecb = 755, + OBJ_camellia_192_ecb = OBJ_camellia,21L, + SN_camellia_192_ofb128 = "CAMELLIA-192-OFB", + LN_camellia_192_ofb128 = "camellia-192-ofb", + NID_camellia_192_ofb128 = 767, + OBJ_camellia_192_ofb128 = OBJ_camellia,23L, + SN_camellia_192_cfb128 = "CAMELLIA-192-CFB", + LN_camellia_192_cfb128 = "camellia-192-cfb", + NID_camellia_192_cfb128 = 758, + OBJ_camellia_192_cfb128 = OBJ_camellia,24L, + SN_camellia_192_gcm = "CAMELLIA-192-GCM", + LN_camellia_192_gcm = "camellia-192-gcm", + NID_camellia_192_gcm = 965, + OBJ_camellia_192_gcm = OBJ_camellia,26L, + SN_camellia_192_ccm = "CAMELLIA-192-CCM", + LN_camellia_192_ccm = "camellia-192-ccm", + NID_camellia_192_ccm = 966, + OBJ_camellia_192_ccm = OBJ_camellia,27L, + SN_camellia_192_ctr = "CAMELLIA-192-CTR", + LN_camellia_192_ctr = "camellia-192-ctr", + NID_camellia_192_ctr = 967, + OBJ_camellia_192_ctr = OBJ_camellia,29L, + SN_camellia_192_cmac = "CAMELLIA-192-CMAC", + LN_camellia_192_cmac = "camellia-192-cmac", + NID_camellia_192_cmac = 968, + OBJ_camellia_192_cmac = OBJ_camellia,30L, + SN_camellia_256_ecb = "CAMELLIA-256-ECB", + LN_camellia_256_ecb = "camellia-256-ecb", + NID_camellia_256_ecb = 756, + OBJ_camellia_256_ecb = OBJ_camellia,41L, + SN_camellia_256_ofb128 = "CAMELLIA-256-OFB", + LN_camellia_256_ofb128 = "camellia-256-ofb", + NID_camellia_256_ofb128 = 768, + OBJ_camellia_256_ofb128 = OBJ_camellia,43L, + SN_camellia_256_cfb128 = "CAMELLIA-256-CFB", + LN_camellia_256_cfb128 = "camellia-256-cfb", + NID_camellia_256_cfb128 = 759, + OBJ_camellia_256_cfb128 = OBJ_camellia,44L, + SN_camellia_256_gcm = "CAMELLIA-256-GCM", + LN_camellia_256_gcm = "camellia-256-gcm", + NID_camellia_256_gcm = 969, + OBJ_camellia_256_gcm = OBJ_camellia,46L, + SN_camellia_256_ccm = "CAMELLIA-256-CCM", + LN_camellia_256_ccm = "camellia-256-ccm", + NID_camellia_256_ccm = 970, + OBJ_camellia_256_ccm = OBJ_camellia,47L, + SN_camellia_256_ctr = "CAMELLIA-256-CTR", + LN_camellia_256_ctr = "camellia-256-ctr", + NID_camellia_256_ctr = 971, + OBJ_camellia_256_ctr = OBJ_camellia,49L, + SN_camellia_256_cmac = "CAMELLIA-256-CMAC", + LN_camellia_256_cmac = "camellia-256-cmac", + NID_camellia_256_cmac = 972, + OBJ_camellia_256_cmac = OBJ_camellia,50L, + SN_camellia_128_cfb1 = "CAMELLIA-128-CFB1", + LN_camellia_128_cfb1 = "camellia-128-cfb1", + NID_camellia_128_cfb1 = 760, + SN_camellia_192_cfb1 = "CAMELLIA-192-CFB1", + LN_camellia_192_cfb1 = "camellia-192-cfb1", + NID_camellia_192_cfb1 = 761, + SN_camellia_256_cfb1 = "CAMELLIA-256-CFB1", + LN_camellia_256_cfb1 = "camellia-256-cfb1", + NID_camellia_256_cfb1 = 762, + SN_camellia_128_cfb8 = "CAMELLIA-128-CFB8", + LN_camellia_128_cfb8 = "camellia-128-cfb8", + NID_camellia_128_cfb8 = 763, + SN_camellia_192_cfb8 = "CAMELLIA-192-CFB8", + LN_camellia_192_cfb8 = "camellia-192-cfb8", + NID_camellia_192_cfb8 = 764, + SN_camellia_256_cfb8 = "CAMELLIA-256-CFB8", + LN_camellia_256_cfb8 = "camellia-256-cfb8", + NID_camellia_256_cfb8 = 765, + OBJ_aria = 1L,2L,410L,200046L,1L,1L, + SN_aria_128_ecb = "ARIA-128-ECB", + LN_aria_128_ecb = "aria-128-ecb", + NID_aria_128_ecb = 1065, + OBJ_aria_128_ecb = OBJ_aria,1L, + SN_aria_128_cbc = "ARIA-128-CBC", + LN_aria_128_cbc = "aria-128-cbc", + NID_aria_128_cbc = 1066, + OBJ_aria_128_cbc = OBJ_aria,2L, + SN_aria_128_cfb128 = "ARIA-128-CFB", + LN_aria_128_cfb128 = "aria-128-cfb", + NID_aria_128_cfb128 = 1067, + OBJ_aria_128_cfb128 = OBJ_aria,3L, + SN_aria_128_ofb128 = "ARIA-128-OFB", + LN_aria_128_ofb128 = "aria-128-ofb", + NID_aria_128_ofb128 = 1068, + OBJ_aria_128_ofb128 = OBJ_aria,4L, + SN_aria_128_ctr = "ARIA-128-CTR", + LN_aria_128_ctr = "aria-128-ctr", + NID_aria_128_ctr = 1069, + OBJ_aria_128_ctr = OBJ_aria,5L, + SN_aria_192_ecb = "ARIA-192-ECB", + LN_aria_192_ecb = "aria-192-ecb", + NID_aria_192_ecb = 1070, + OBJ_aria_192_ecb = OBJ_aria,6L, + SN_aria_192_cbc = "ARIA-192-CBC", + LN_aria_192_cbc = "aria-192-cbc", + NID_aria_192_cbc = 1071, + OBJ_aria_192_cbc = OBJ_aria,7L, + SN_aria_192_cfb128 = "ARIA-192-CFB", + LN_aria_192_cfb128 = "aria-192-cfb", + NID_aria_192_cfb128 = 1072, + OBJ_aria_192_cfb128 = OBJ_aria,8L, + SN_aria_192_ofb128 = "ARIA-192-OFB", + LN_aria_192_ofb128 = "aria-192-ofb", + NID_aria_192_ofb128 = 1073, + OBJ_aria_192_ofb128 = OBJ_aria,9L, + SN_aria_192_ctr = "ARIA-192-CTR", + LN_aria_192_ctr = "aria-192-ctr", + NID_aria_192_ctr = 1074, + OBJ_aria_192_ctr = OBJ_aria,10L, + SN_aria_256_ecb = "ARIA-256-ECB", + LN_aria_256_ecb = "aria-256-ecb", + NID_aria_256_ecb = 1075, + OBJ_aria_256_ecb = OBJ_aria,11L, + SN_aria_256_cbc = "ARIA-256-CBC", + LN_aria_256_cbc = "aria-256-cbc", + NID_aria_256_cbc = 1076, + OBJ_aria_256_cbc = OBJ_aria,12L, + SN_aria_256_cfb128 = "ARIA-256-CFB", + LN_aria_256_cfb128 = "aria-256-cfb", + NID_aria_256_cfb128 = 1077, + OBJ_aria_256_cfb128 = OBJ_aria,13L, + SN_aria_256_ofb128 = "ARIA-256-OFB", + LN_aria_256_ofb128 = "aria-256-ofb", + NID_aria_256_ofb128 = 1078, + OBJ_aria_256_ofb128 = OBJ_aria,14L, + SN_aria_256_ctr = "ARIA-256-CTR", + LN_aria_256_ctr = "aria-256-ctr", + NID_aria_256_ctr = 1079, + OBJ_aria_256_ctr = OBJ_aria,15L, + SN_aria_128_cfb1 = "ARIA-128-CFB1", + LN_aria_128_cfb1 = "aria-128-cfb1", + NID_aria_128_cfb1 = 1080, + SN_aria_192_cfb1 = "ARIA-192-CFB1", + LN_aria_192_cfb1 = "aria-192-cfb1", + NID_aria_192_cfb1 = 1081, + SN_aria_256_cfb1 = "ARIA-256-CFB1", + LN_aria_256_cfb1 = "aria-256-cfb1", + NID_aria_256_cfb1 = 1082, + SN_aria_128_cfb8 = "ARIA-128-CFB8", + LN_aria_128_cfb8 = "aria-128-cfb8", + NID_aria_128_cfb8 = 1083, + SN_aria_192_cfb8 = "ARIA-192-CFB8", + LN_aria_192_cfb8 = "aria-192-cfb8", + NID_aria_192_cfb8 = 1084, + SN_aria_256_cfb8 = "ARIA-256-CFB8", + LN_aria_256_cfb8 = "aria-256-cfb8", + NID_aria_256_cfb8 = 1085, + SN_aria_128_ccm = "ARIA-128-CCM", + LN_aria_128_ccm = "aria-128-ccm", + NID_aria_128_ccm = 1120, + OBJ_aria_128_ccm = OBJ_aria,37L, + SN_aria_192_ccm = "ARIA-192-CCM", + LN_aria_192_ccm = "aria-192-ccm", + NID_aria_192_ccm = 1121, + OBJ_aria_192_ccm = OBJ_aria,38L, + SN_aria_256_ccm = "ARIA-256-CCM", + LN_aria_256_ccm = "aria-256-ccm", + NID_aria_256_ccm = 1122, + OBJ_aria_256_ccm = OBJ_aria,39L, + SN_aria_128_gcm = "ARIA-128-GCM", + LN_aria_128_gcm = "aria-128-gcm", + NID_aria_128_gcm = 1123, + OBJ_aria_128_gcm = OBJ_aria,34L, + SN_aria_192_gcm = "ARIA-192-GCM", + LN_aria_192_gcm = "aria-192-gcm", + NID_aria_192_gcm = 1124, + OBJ_aria_192_gcm = OBJ_aria,35L, + SN_aria_256_gcm = "ARIA-256-GCM", + LN_aria_256_gcm = "aria-256-gcm", + NID_aria_256_gcm = 1125, + OBJ_aria_256_gcm = OBJ_aria,36L, + SN_kisa = "KISA", + LN_kisa = "kisa", + NID_kisa = 773, + OBJ_kisa = OBJ_member_body,410L,200004L, + SN_seed_ecb = "SEED-ECB", + LN_seed_ecb = "seed-ecb", + NID_seed_ecb = 776, + OBJ_seed_ecb = OBJ_kisa,1L,3L, + SN_seed_cbc = "SEED-CBC", + LN_seed_cbc = "seed-cbc", + NID_seed_cbc = 777, + OBJ_seed_cbc = OBJ_kisa,1L,4L, + SN_seed_cfb128 = "SEED-CFB", + LN_seed_cfb128 = "seed-cfb", + NID_seed_cfb128 = 779, + OBJ_seed_cfb128 = OBJ_kisa,1L,5L, + SN_seed_ofb128 = "SEED-OFB", + LN_seed_ofb128 = "seed-ofb", + NID_seed_ofb128 = 778, + OBJ_seed_ofb128 = OBJ_kisa,1L,6L, + SN_sm4_ecb = "SM4-ECB", + LN_sm4_ecb = "sm4-ecb", + NID_sm4_ecb = 1133, + OBJ_sm4_ecb = OBJ_sm_scheme,104L,1L, + SN_sm4_cbc = "SM4-CBC", + LN_sm4_cbc = "sm4-cbc", + NID_sm4_cbc = 1134, + OBJ_sm4_cbc = OBJ_sm_scheme,104L,2L, + SN_sm4_ofb128 = "SM4-OFB", + LN_sm4_ofb128 = "sm4-ofb", + NID_sm4_ofb128 = 1135, + OBJ_sm4_ofb128 = OBJ_sm_scheme,104L,3L, + SN_sm4_cfb128 = "SM4-CFB", + LN_sm4_cfb128 = "sm4-cfb", + NID_sm4_cfb128 = 1137, + OBJ_sm4_cfb128 = OBJ_sm_scheme,104L,4L, + SN_sm4_cfb1 = "SM4-CFB1", + LN_sm4_cfb1 = "sm4-cfb1", + NID_sm4_cfb1 = 1136, + OBJ_sm4_cfb1 = OBJ_sm_scheme,104L,5L, + SN_sm4_cfb8 = "SM4-CFB8", + LN_sm4_cfb8 = "sm4-cfb8", + NID_sm4_cfb8 = 1138, + OBJ_sm4_cfb8 = OBJ_sm_scheme,104L,6L, + SN_sm4_ctr = "SM4-CTR", + LN_sm4_ctr = "sm4-ctr", + NID_sm4_ctr = 1139, + OBJ_sm4_ctr = OBJ_sm_scheme,104L,7L, + SN_hmac = "HMAC", + LN_hmac = "hmac", + NID_hmac = 855, + SN_cmac = "CMAC", + LN_cmac = "cmac", + NID_cmac = 894, + SN_rc4_hmac_md5 = "RC4-HMAC-MD5", + LN_rc4_hmac_md5 = "rc4-hmac-md5", + NID_rc4_hmac_md5 = 915, + SN_aes_128_cbc_hmac_sha1 = "AES-128-CBC-HMAC-SHA1", + LN_aes_128_cbc_hmac_sha1 = "aes-128-cbc-hmac-sha1", + NID_aes_128_cbc_hmac_sha1 = 916, + SN_aes_192_cbc_hmac_sha1 = "AES-192-CBC-HMAC-SHA1", + LN_aes_192_cbc_hmac_sha1 = "aes-192-cbc-hmac-sha1", + NID_aes_192_cbc_hmac_sha1 = 917, + SN_aes_256_cbc_hmac_sha1 = "AES-256-CBC-HMAC-SHA1", + LN_aes_256_cbc_hmac_sha1 = "aes-256-cbc-hmac-sha1", + NID_aes_256_cbc_hmac_sha1 = 918, + SN_aes_128_cbc_hmac_sha256 = "AES-128-CBC-HMAC-SHA256", + LN_aes_128_cbc_hmac_sha256 = "aes-128-cbc-hmac-sha256", + NID_aes_128_cbc_hmac_sha256 = 948, + SN_aes_192_cbc_hmac_sha256 = "AES-192-CBC-HMAC-SHA256", + LN_aes_192_cbc_hmac_sha256 = "aes-192-cbc-hmac-sha256", + NID_aes_192_cbc_hmac_sha256 = 949, + SN_aes_256_cbc_hmac_sha256 = "AES-256-CBC-HMAC-SHA256", + LN_aes_256_cbc_hmac_sha256 = "aes-256-cbc-hmac-sha256", + NID_aes_256_cbc_hmac_sha256 = 950, + SN_chacha20_poly1305 = "ChaCha20-Poly1305", + LN_chacha20_poly1305 = "chacha20-poly1305", + NID_chacha20_poly1305 = 1018, + SN_chacha20 = "ChaCha20", + LN_chacha20 = "chacha20", + NID_chacha20 = 1019, + SN_dhpublicnumber = "dhpublicnumber", + LN_dhpublicnumber = "X9.42 DH", + NID_dhpublicnumber = 920, + OBJ_dhpublicnumber = OBJ_ISO_US,10046L,2L,1L, + SN_brainpoolP160r1 = "brainpoolP160r1", + NID_brainpoolP160r1 = 921, + OBJ_brainpoolP160r1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,1L, + SN_brainpoolP160t1 = "brainpoolP160t1", + NID_brainpoolP160t1 = 922, + OBJ_brainpoolP160t1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,2L, + SN_brainpoolP192r1 = "brainpoolP192r1", + NID_brainpoolP192r1 = 923, + OBJ_brainpoolP192r1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,3L, + SN_brainpoolP192t1 = "brainpoolP192t1", + NID_brainpoolP192t1 = 924, + OBJ_brainpoolP192t1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,4L, + SN_brainpoolP224r1 = "brainpoolP224r1", + NID_brainpoolP224r1 = 925, + OBJ_brainpoolP224r1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,5L, + SN_brainpoolP224t1 = "brainpoolP224t1", + NID_brainpoolP224t1 = 926, + OBJ_brainpoolP224t1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,6L, + SN_brainpoolP256r1 = "brainpoolP256r1", + NID_brainpoolP256r1 = 927, + OBJ_brainpoolP256r1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,7L, + SN_brainpoolP256t1 = "brainpoolP256t1", + NID_brainpoolP256t1 = 928, + OBJ_brainpoolP256t1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,8L, + SN_brainpoolP320r1 = "brainpoolP320r1", + NID_brainpoolP320r1 = 929, + OBJ_brainpoolP320r1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,9L, + SN_brainpoolP320t1 = "brainpoolP320t1", + NID_brainpoolP320t1 = 930, + OBJ_brainpoolP320t1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,10L, + SN_brainpoolP384r1 = "brainpoolP384r1", + NID_brainpoolP384r1 = 931, + OBJ_brainpoolP384r1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,11L, + SN_brainpoolP384t1 = "brainpoolP384t1", + NID_brainpoolP384t1 = 932, + OBJ_brainpoolP384t1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,12L, + SN_brainpoolP512r1 = "brainpoolP512r1", + NID_brainpoolP512r1 = 933, + OBJ_brainpoolP512r1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,13L, + SN_brainpoolP512t1 = "brainpoolP512t1", + NID_brainpoolP512t1 = 934, + OBJ_brainpoolP512t1 = 1L,3L,36L,3L,3L,2L,8L,1L,1L,14L, + OBJ_x9_63_scheme = 1L,3L,133L,16L,840L,63L,0L, + OBJ_secg_scheme = OBJ_certicom_arc,1L, + SN_dhSinglePass_stdDH_sha1kdf_scheme = "dhSinglePass-stdDH-sha1kdf-scheme", + NID_dhSinglePass_stdDH_sha1kdf_scheme = 936, + OBJ_dhSinglePass_stdDH_sha1kdf_scheme = OBJ_x9_63_scheme,2L, + SN_dhSinglePass_stdDH_sha224kdf_scheme = "dhSinglePass-stdDH-sha224kdf-scheme", + NID_dhSinglePass_stdDH_sha224kdf_scheme = 937, + OBJ_dhSinglePass_stdDH_sha224kdf_scheme = OBJ_secg_scheme,11L,0L, + SN_dhSinglePass_stdDH_sha256kdf_scheme = "dhSinglePass-stdDH-sha256kdf-scheme", + NID_dhSinglePass_stdDH_sha256kdf_scheme = 938, + OBJ_dhSinglePass_stdDH_sha256kdf_scheme = OBJ_secg_scheme,11L,1L, + SN_dhSinglePass_stdDH_sha384kdf_scheme = "dhSinglePass-stdDH-sha384kdf-scheme", + NID_dhSinglePass_stdDH_sha384kdf_scheme = 939, + OBJ_dhSinglePass_stdDH_sha384kdf_scheme = OBJ_secg_scheme,11L,2L, + SN_dhSinglePass_stdDH_sha512kdf_scheme = "dhSinglePass-stdDH-sha512kdf-scheme", + NID_dhSinglePass_stdDH_sha512kdf_scheme = 940, + OBJ_dhSinglePass_stdDH_sha512kdf_scheme = OBJ_secg_scheme,11L,3L, + SN_dhSinglePass_cofactorDH_sha1kdf_scheme = "dhSinglePass-cofactorDH-sha1kdf-scheme", + NID_dhSinglePass_cofactorDH_sha1kdf_scheme = 941, + OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme = OBJ_x9_63_scheme,3L, + SN_dhSinglePass_cofactorDH_sha224kdf_scheme = "dhSinglePass-cofactorDH-sha224kdf-scheme", + NID_dhSinglePass_cofactorDH_sha224kdf_scheme = 942, + OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme = OBJ_secg_scheme,14L,0L, + SN_dhSinglePass_cofactorDH_sha256kdf_scheme = "dhSinglePass-cofactorDH-sha256kdf-scheme", + NID_dhSinglePass_cofactorDH_sha256kdf_scheme = 943, + OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme = OBJ_secg_scheme,14L,1L, + SN_dhSinglePass_cofactorDH_sha384kdf_scheme = "dhSinglePass-cofactorDH-sha384kdf-scheme", + NID_dhSinglePass_cofactorDH_sha384kdf_scheme = 944, + OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme = OBJ_secg_scheme,14L,2L, + SN_dhSinglePass_cofactorDH_sha512kdf_scheme = "dhSinglePass-cofactorDH-sha512kdf-scheme", + NID_dhSinglePass_cofactorDH_sha512kdf_scheme = 945, + OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme = OBJ_secg_scheme,14L,3L, + SN_dh_std_kdf = "dh-std-kdf", + NID_dh_std_kdf = 946, + SN_dh_cofactor_kdf = "dh-cofactor-kdf", + NID_dh_cofactor_kdf = 947, + SN_ct_precert_scts = "ct_precert_scts", + LN_ct_precert_scts = "CT Precertificate SCTs", + NID_ct_precert_scts = 951, + OBJ_ct_precert_scts = 1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L, + SN_ct_precert_poison = "ct_precert_poison", + LN_ct_precert_poison = "CT Precertificate Poison", + NID_ct_precert_poison = 952, + OBJ_ct_precert_poison = 1L,3L,6L,1L,4L,1L,11129L,2L,4L,3L, + SN_ct_precert_signer = "ct_precert_signer", + LN_ct_precert_signer = "CT Precertificate Signer", + NID_ct_precert_signer = 953, + OBJ_ct_precert_signer = 1L,3L,6L,1L,4L,1L,11129L,2L,4L,4L, + SN_ct_cert_scts = "ct_cert_scts", + LN_ct_cert_scts = "CT Certificate SCTs", + NID_ct_cert_scts = 954, + OBJ_ct_cert_scts = 1L,3L,6L,1L,4L,1L,11129L,2L,4L,5L, + SN_jurisdictionLocalityName = "jurisdictionL", + LN_jurisdictionLocalityName = "jurisdictionLocalityName", + NID_jurisdictionLocalityName = 955, + OBJ_jurisdictionLocalityName = 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,1L, + SN_jurisdictionStateOrProvinceName = "jurisdictionST", + LN_jurisdictionStateOrProvinceName = "jurisdictionStateOrProvinceName", + NID_jurisdictionStateOrProvinceName = 956, + OBJ_jurisdictionStateOrProvinceName = 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,2L, + SN_jurisdictionCountryName = "jurisdictionC", + LN_jurisdictionCountryName = "jurisdictionCountryName", + NID_jurisdictionCountryName = 957, + OBJ_jurisdictionCountryName = 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,3L, + SN_id_scrypt = "id-scrypt", + LN_id_scrypt = "scrypt", + NID_id_scrypt = 973, + OBJ_id_scrypt = 1L,3L,6L,1L,4L,1L,11591L,4L,11L, + SN_tls1_prf = "TLS1-PRF", + LN_tls1_prf = "tls1-prf", + NID_tls1_prf = 1021, + SN_hkdf = "HKDF", + LN_hkdf = "hkdf", + NID_hkdf = 1036, + SN_id_pkinit = "id-pkinit", + NID_id_pkinit = 1031, + OBJ_id_pkinit = 1L,3L,6L,1L,5L,2L,3L, + SN_pkInitClientAuth = "pkInitClientAuth", + LN_pkInitClientAuth = "PKINIT Client Auth", + NID_pkInitClientAuth = 1032, + OBJ_pkInitClientAuth = OBJ_id_pkinit,4L, + SN_pkInitKDC = "pkInitKDC", + LN_pkInitKDC = "Signing KDC Response", + NID_pkInitKDC = 1033, + OBJ_pkInitKDC = OBJ_id_pkinit,5L, + SN_X25519 = "X25519", + NID_X25519 = 1034, + OBJ_X25519 = 1L,3L,101L,110L, + SN_X448 = "X448", + NID_X448 = 1035, + OBJ_X448 = 1L,3L,101L,111L, + SN_ED25519 = "ED25519", + NID_ED25519 = 1087, + OBJ_ED25519 = 1L,3L,101L,112L, + SN_ED448 = "ED448", + NID_ED448 = 1088, + OBJ_ED448 = 1L,3L,101L,113L, + SN_kx_rsa = "KxRSA", + LN_kx_rsa = "kx-rsa", + NID_kx_rsa = 1037, + SN_kx_ecdhe = "KxECDHE", + LN_kx_ecdhe = "kx-ecdhe", + NID_kx_ecdhe = 1038, + SN_kx_dhe = "KxDHE", + LN_kx_dhe = "kx-dhe", + NID_kx_dhe = 1039, + SN_kx_ecdhe_psk = "KxECDHE-PSK", + LN_kx_ecdhe_psk = "kx-ecdhe-psk", + NID_kx_ecdhe_psk = 1040, + SN_kx_dhe_psk = "KxDHE-PSK", + LN_kx_dhe_psk = "kx-dhe-psk", + NID_kx_dhe_psk = 1041, + SN_kx_rsa_psk = "KxRSA_PSK", + LN_kx_rsa_psk = "kx-rsa-psk", + NID_kx_rsa_psk = 1042, + SN_kx_psk = "KxPSK", + LN_kx_psk = "kx-psk", + NID_kx_psk = 1043, + SN_kx_srp = "KxSRP", + LN_kx_srp = "kx-srp", + NID_kx_srp = 1044, + SN_kx_gost = "KxGOST", + LN_kx_gost = "kx-gost", + NID_kx_gost = 1045, + SN_kx_any = "KxANY", + LN_kx_any = "kx-any", + NID_kx_any = 1063, + SN_auth_rsa = "AuthRSA", + LN_auth_rsa = "auth-rsa", + NID_auth_rsa = 1046, + SN_auth_ecdsa = "AuthECDSA", + LN_auth_ecdsa = "auth-ecdsa", + NID_auth_ecdsa = 1047, + SN_auth_psk = "AuthPSK", + LN_auth_psk = "auth-psk", + NID_auth_psk = 1048, + SN_auth_dss = "AuthDSS", + LN_auth_dss = "auth-dss", + NID_auth_dss = 1049, + SN_auth_gost01 = "AuthGOST01", + LN_auth_gost01 = "auth-gost01", + NID_auth_gost01 = 1050, + SN_auth_gost12 = "AuthGOST12", + LN_auth_gost12 = "auth-gost12", + NID_auth_gost12 = 1051, + SN_auth_srp = "AuthSRP", + LN_auth_srp = "auth-srp", + NID_auth_srp = 1052, + SN_auth_null = "AuthNULL", + LN_auth_null = "auth-null", + NID_auth_null = 1053, + SN_auth_any = "AuthANY", + LN_auth_any = "auth-any", + NID_auth_any = 1064, + SN_poly1305 = "Poly1305", + LN_poly1305 = "poly1305", + NID_poly1305 = 1061, + SN_siphash = "SipHash", + LN_siphash = "siphash", + NID_siphash = 1062, + SN_ffdhe2048 = "ffdhe2048", + NID_ffdhe2048 = 1126, + SN_ffdhe3072 = "ffdhe3072", + NID_ffdhe3072 = 1127, + SN_ffdhe4096 = "ffdhe4096", + NID_ffdhe4096 = 1128, + SN_ffdhe6144 = "ffdhe6144", + NID_ffdhe6144 = 1129, + SN_ffdhe8192 = "ffdhe8192", + NID_ffdhe8192 = 1130, + SN_ISO_UA = "ISO-UA", + NID_ISO_UA = 1150, + OBJ_ISO_UA = OBJ_member_body,804L, + SN_ua_pki = "ua-pki", + NID_ua_pki = 1151, + OBJ_ua_pki = OBJ_ISO_UA,2L,1L,1L,1L, + SN_dstu28147 = "dstu28147", + LN_dstu28147 = "DSTU Gost 28147-2009", + NID_dstu28147 = 1152, + OBJ_dstu28147 = OBJ_ua_pki,1L,1L,1L, + SN_dstu28147_ofb = "dstu28147-ofb", + LN_dstu28147_ofb = "DSTU Gost 28147-2009 OFB mode", + NID_dstu28147_ofb = 1153, + OBJ_dstu28147_ofb = OBJ_dstu28147,2L, + SN_dstu28147_cfb = "dstu28147-cfb", + LN_dstu28147_cfb = "DSTU Gost 28147-2009 CFB mode", + NID_dstu28147_cfb = 1154, + OBJ_dstu28147_cfb = OBJ_dstu28147,3L, + SN_dstu28147_wrap = "dstu28147-wrap", + LN_dstu28147_wrap = "DSTU Gost 28147-2009 key wrap", + NID_dstu28147_wrap = 1155, + OBJ_dstu28147_wrap = OBJ_dstu28147,5L, + SN_hmacWithDstu34311 = "hmacWithDstu34311", + LN_hmacWithDstu34311 = "HMAC DSTU Gost 34311-95", + NID_hmacWithDstu34311 = 1156, + OBJ_hmacWithDstu34311 = OBJ_ua_pki,1L,1L,2L, + SN_dstu34311 = "dstu34311", + LN_dstu34311 = "DSTU Gost 34311-95", + NID_dstu34311 = 1157, + OBJ_dstu34311 = OBJ_ua_pki,1L,2L,1L, + SN_dstu4145le = "dstu4145le", + LN_dstu4145le = "DSTU 4145-2002 little endian", + NID_dstu4145le = 1158, + OBJ_dstu4145le = OBJ_ua_pki,1L,3L,1L,1L, + SN_dstu4145be = "dstu4145be", + LN_dstu4145be = "DSTU 4145-2002 big endian", + NID_dstu4145be = 1159, + OBJ_dstu4145be = OBJ_dstu4145le,1L,1L, + SN_uacurve0 = "uacurve0", + LN_uacurve0 = "DSTU curve 0", + NID_uacurve0 = 1160, + OBJ_uacurve0 = OBJ_dstu4145le,2L,0L, + SN_uacurve1 = "uacurve1", + LN_uacurve1 = "DSTU curve 1", + NID_uacurve1 = 1161, + OBJ_uacurve1 = OBJ_dstu4145le,2L,1L, + SN_uacurve2 = "uacurve2", + LN_uacurve2 = "DSTU curve 2", + NID_uacurve2 = 1162, + OBJ_uacurve2 = OBJ_dstu4145le,2L,2L, + SN_uacurve3 = "uacurve3", + LN_uacurve3 = "DSTU curve 3", + NID_uacurve3 = 1163, + OBJ_uacurve3 = OBJ_dstu4145le,2L,3L, + SN_uacurve4 = "uacurve4", + LN_uacurve4 = "DSTU curve 4", + NID_uacurve4 = 1164, + OBJ_uacurve4 = OBJ_dstu4145le,2L,4L, + SN_uacurve5 = "uacurve5", + LN_uacurve5 = "DSTU curve 5", + NID_uacurve5 = 1165, + OBJ_uacurve5 = OBJ_dstu4145le,2L,5L, + SN_uacurve6 = "uacurve6", + LN_uacurve6 = "DSTU curve 6", + NID_uacurve6 = 1166, + OBJ_uacurve6 = OBJ_dstu4145le,2L,6L, + SN_uacurve7 = "uacurve7", + LN_uacurve7 = "DSTU curve 7", + NID_uacurve7 = 1167, + OBJ_uacurve7 = OBJ_dstu4145le,2L,7L, + SN_uacurve8 = "uacurve8", + LN_uacurve8 = "DSTU curve 8", + NID_uacurve8 = 1168, + OBJ_uacurve8 = OBJ_dstu4145le,2L,8L, + SN_uacurve9 = "uacurve9", + LN_uacurve9 = "DSTU curve 9", + NID_uacurve9 = 1169, + OBJ_uacurve9 = OBJ_dstu4145le,2L,9L, +}; + +// csrc/openssl/src/include/openssl/objectserr.h +int ERR_load_OBJ_strings(void); +enum { + OBJ_F_OBJ_ADD_OBJECT = 105, + OBJ_F_OBJ_ADD_SIGID = 107, + OBJ_F_OBJ_CREATE = 100, + OBJ_F_OBJ_DUP = 101, + OBJ_F_OBJ_NAME_NEW_INDEX = 106, + OBJ_F_OBJ_NID2LN = 102, + OBJ_F_OBJ_NID2OBJ = 103, + OBJ_F_OBJ_NID2SN = 104, + OBJ_F_OBJ_TXT2OBJ = 108, + OBJ_R_OID_EXISTS = 102, + OBJ_R_UNKNOWN_NID = 101, +}; diff --git a/libcrypto_pem_h.lua b/libcrypto_pem_h.lua new file mode 100644 index 0000000..a6ede27 --- /dev/null +++ b/libcrypto_pem_h.lua @@ -0,0 +1,257 @@ +// csrc/openssl/src/include/openssl/pem.h +enum { + PEM_BUFSIZE = 1024, + PEM_STRING_X509_OLD = "X509 CERTIFICATE", + PEM_STRING_X509 = "CERTIFICATE", + PEM_STRING_X509_TRUSTED = "TRUSTED CERTIFICATE", + PEM_STRING_X509_REQ_OLD = "NEW CERTIFICATE REQUEST", + PEM_STRING_X509_REQ = "CERTIFICATE REQUEST", + PEM_STRING_X509_CRL = "X509 CRL", + PEM_STRING_EVP_PKEY = "ANY PRIVATE KEY", + PEM_STRING_PUBLIC = "PUBLIC KEY", + PEM_STRING_RSA = "RSA PRIVATE KEY", + PEM_STRING_RSA_PUBLIC = "RSA PUBLIC KEY", + PEM_STRING_DSA = "DSA PRIVATE KEY", + PEM_STRING_DSA_PUBLIC = "DSA PUBLIC KEY", + PEM_STRING_PKCS7 = "PKCS7", + PEM_STRING_PKCS7_SIGNED = "PKCS #7 SIGNED DATA", + PEM_STRING_PKCS8 = "ENCRYPTED PRIVATE KEY", + PEM_STRING_PKCS8INF = "PRIVATE KEY", + PEM_STRING_DHPARAMS = "DH PARAMETERS", + PEM_STRING_DHXPARAMS = "X9.42 DH PARAMETERS", + PEM_STRING_SSL_SESSION = "SSL SESSION PARAMETERS", + PEM_STRING_DSAPARAMS = "DSA PARAMETERS", + PEM_STRING_ECDSA_PUBLIC = "ECDSA PUBLIC KEY", + PEM_STRING_ECPARAMETERS = "EC PARAMETERS", + PEM_STRING_ECPRIVATEKEY = "EC PRIVATE KEY", + PEM_STRING_PARAMETERS = "PARAMETERS", + PEM_STRING_CMS = "CMS", + PEM_TYPE_ENCRYPTED = 10, + PEM_TYPE_MIC_ONLY = 20, + PEM_TYPE_MIC_CLEAR = 30, + PEM_TYPE_CLEAR = 40, +}; +#define IMPLEMENT_PEM_read_fp(name,type,str,asn1) type *PEM_read_ ##name(FILE *fp, type **x, pem_password_cb *cb, void *u){ return PEM_ASN1_read((d2i_of_void *)d2i_ ##asn1, str,fp,(void **)x,cb,u); } +#define IMPLEMENT_PEM_write_fp(name,type,str,asn1) int PEM_write_ ##name(FILE *fp, type *x) { return PEM_ASN1_write((i2d_of_void *)i2d_ ##asn1,str,fp,x,NULL,NULL,0,NULL,NULL); } +#define IMPLEMENT_PEM_write_fp_const(name,type,str,asn1) int PEM_write_ ##name(FILE *fp, const type *x) { return PEM_ASN1_write((i2d_of_void *)i2d_ ##asn1,str,fp,(void *)x,NULL,NULL,0,NULL,NULL); } +#define IMPLEMENT_PEM_write_cb_fp(name,type,str,asn1) int PEM_write_ ##name(FILE *fp, type *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u) { return PEM_ASN1_write((i2d_of_void *)i2d_ ##asn1,str,fp,x,enc,kstr,klen,cb,u); } +#define IMPLEMENT_PEM_write_cb_fp_const(name,type,str,asn1) int PEM_write_ ##name(FILE *fp, type *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u) { return PEM_ASN1_write((i2d_of_void *)i2d_ ##asn1,str,fp,x,enc,kstr,klen,cb,u); } +#define IMPLEMENT_PEM_read_bio(name,type,str,asn1) type *PEM_read_bio_ ##name(BIO *bp, type **x, pem_password_cb *cb, void *u){ return PEM_ASN1_read_bio((d2i_of_void *)d2i_ ##asn1, str,bp,(void **)x,cb,u); } +#define IMPLEMENT_PEM_write_bio(name,type,str,asn1) int PEM_write_bio_ ##name(BIO *bp, type *x) { return PEM_ASN1_write_bio((i2d_of_void *)i2d_ ##asn1,str,bp,x,NULL,NULL,0,NULL,NULL); } +#define IMPLEMENT_PEM_write_bio_const(name,type,str,asn1) int PEM_write_bio_ ##name(BIO *bp, const type *x) { return PEM_ASN1_write_bio((i2d_of_void *)i2d_ ##asn1,str,bp,(void *)x,NULL,NULL,0,NULL,NULL); } +#define IMPLEMENT_PEM_write_cb_bio(name,type,str,asn1) int PEM_write_bio_ ##name(BIO *bp, type *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u) { return PEM_ASN1_write_bio((i2d_of_void *)i2d_ ##asn1,str,bp,x,enc,kstr,klen,cb,u); } +#define IMPLEMENT_PEM_write_cb_bio_const(name,type,str,asn1) int PEM_write_bio_ ##name(BIO *bp, type *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u) { return PEM_ASN1_write_bio((i2d_of_void *)i2d_ ##asn1,str,bp,(void *)x,enc,kstr,klen,cb,u); } +#define IMPLEMENT_PEM_write(name,type,str,asn1) IMPLEMENT_PEM_write_bio(name, type, str, asn1) IMPLEMENT_PEM_write_fp(name, type, str, asn1) +#define IMPLEMENT_PEM_write_const(name,type,str,asn1) IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) +#define IMPLEMENT_PEM_write_cb(name,type,str,asn1) IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) +#define IMPLEMENT_PEM_write_cb_const(name,type,str,asn1) IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) +#define IMPLEMENT_PEM_read(name,type,str,asn1) IMPLEMENT_PEM_read_bio(name, type, str, asn1) IMPLEMENT_PEM_read_fp(name, type, str, asn1) +#define IMPLEMENT_PEM_rw(name,type,str,asn1) IMPLEMENT_PEM_read(name, type, str, asn1) IMPLEMENT_PEM_write(name, type, str, asn1) +#define IMPLEMENT_PEM_rw_const(name,type,str,asn1) IMPLEMENT_PEM_read(name, type, str, asn1) IMPLEMENT_PEM_write_const(name, type, str, asn1) +#define IMPLEMENT_PEM_rw_cb(name,type,str,asn1) IMPLEMENT_PEM_read(name, type, str, asn1) IMPLEMENT_PEM_write_cb(name, type, str, asn1) +#define DECLARE_PEM_read_fp(name,type) type *PEM_read_ ##name(FILE *fp, type **x, pem_password_cb *cb, void *u); +#define DECLARE_PEM_write_fp(name,type) int PEM_write_ ##name(FILE *fp, type *x); +#define DECLARE_PEM_write_fp_const(name,type) int PEM_write_ ##name(FILE *fp, const type *x); +#define DECLARE_PEM_write_cb_fp(name,type) int PEM_write_ ##name(FILE *fp, type *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); +#define DECLARE_PEM_read_bio(name,type) type *PEM_read_bio_ ##name(BIO *bp, type **x, pem_password_cb *cb, void *u); +#define DECLARE_PEM_write_bio(name,type) int PEM_write_bio_ ##name(BIO *bp, type *x); +#define DECLARE_PEM_write_bio_const(name,type) int PEM_write_bio_ ##name(BIO *bp, const type *x); +#define DECLARE_PEM_write_cb_bio(name,type) int PEM_write_bio_ ##name(BIO *bp, type *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); +#define DECLARE_PEM_write(name,type) DECLARE_PEM_write_bio(name, type) DECLARE_PEM_write_fp(name, type) +#define DECLARE_PEM_write_const(name,type) DECLARE_PEM_write_bio_const(name, type) DECLARE_PEM_write_fp_const(name, type) +#define DECLARE_PEM_write_cb(name,type) DECLARE_PEM_write_cb_bio(name, type) DECLARE_PEM_write_cb_fp(name, type) +#define DECLARE_PEM_read(name,type) DECLARE_PEM_read_bio(name, type) DECLARE_PEM_read_fp(name, type) +#define DECLARE_PEM_rw(name,type) DECLARE_PEM_read(name, type) DECLARE_PEM_write(name, type) +#define DECLARE_PEM_rw_const(name,type) DECLARE_PEM_read(name, type) DECLARE_PEM_write_const(name, type) +#define DECLARE_PEM_rw_cb(name,type) DECLARE_PEM_read(name, type) DECLARE_PEM_write_cb(name, type) +typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); +int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); +int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, + pem_password_cb *callback, void *u); +int PEM_read_bio(BIO *bp, char **name, char **header, + unsigned char **data, long *len); +enum { + PEM_FLAG_SECURE = 0x1, + PEM_FLAG_EAY_COMPATIBLE = 0x2, + PEM_FLAG_ONLY_B64 = 0x4, +}; +int PEM_read_bio_ex(BIO *bp, char **name, char **header, + unsigned char **data, long *len, unsigned int flags); +int PEM_bytes_read_bio_secmem(unsigned char **pdata, long *plen, char **pnm, + const char *name, BIO *bp, pem_password_cb *cb, + void *u); +int PEM_write_bio(BIO *bp, const char *name, const char *hdr, + const unsigned char *data, long len); +int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, + const char *name, BIO *bp, pem_password_cb *cb, + void *u); +void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, + pem_password_cb *cb, void *u); +int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, + const EVP_CIPHER *enc, unsigned char *kstr, int klen, + pem_password_cb *cb, void *u); +struct stack_st_X509_INFO *PEM_X509_INFO_read_bio(BIO *bp, struct stack_st_X509_INFO *sk, + pem_password_cb *cb, void *u); +int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, + unsigned char *kstr, int klen, + pem_password_cb *cd, void *u); +int PEM_read(FILE *fp, char **name, char **header, + unsigned char **data, long *len); +int PEM_write(FILE *fp, const char *name, const char *hdr, + const unsigned char *data, long len); +void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, + pem_password_cb *cb, void *u); +int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, + void *x, const EVP_CIPHER *enc, unsigned char *kstr, + int klen, pem_password_cb *callback, void *u); +struct stack_st_X509_INFO *PEM_X509_INFO_read(FILE *fp, struct stack_st_X509_INFO *sk, + pem_password_cb *cb, void *u); +int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); +int PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt); +int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, + unsigned int *siglen, EVP_PKEY *pkey); +int PEM_def_callback(char *buf, int num, int rwflag, void *userdata); +void PEM_proc_type(char *buf, int type); +void PEM_dek_info(char *buf, const char *type, int len, char *str); +X509 *PEM_read_bio_X509(BIO *bp, X509 **x, pem_password_cb *cb, void *u); X509 *PEM_read_X509(FILE *fp, X509 **x, pem_password_cb *cb, void *u); int PEM_write_bio_X509(BIO *bp, X509 *x); int PEM_write_X509(FILE *fp, X509 *x); +X509 *PEM_read_bio_X509_AUX(BIO *bp, X509 **x, pem_password_cb *cb, void *u); X509 *PEM_read_X509_AUX(FILE *fp, X509 **x, pem_password_cb *cb, void *u); int PEM_write_bio_X509_AUX(BIO *bp, X509 *x); int PEM_write_X509_AUX(FILE *fp, X509 *x); +X509_REQ *PEM_read_bio_X509_REQ(BIO *bp, X509_REQ **x, pem_password_cb *cb, void *u); X509_REQ *PEM_read_X509_REQ(FILE *fp, X509_REQ **x, pem_password_cb *cb, void *u); int PEM_write_bio_X509_REQ(BIO *bp, X509_REQ *x); int PEM_write_X509_REQ(FILE *fp, X509_REQ *x); +int PEM_write_bio_X509_REQ_NEW(BIO *bp, X509_REQ *x); int PEM_write_X509_REQ_NEW(FILE *fp, X509_REQ *x); +X509_CRL *PEM_read_bio_X509_CRL(BIO *bp, X509_CRL **x, pem_password_cb *cb, void *u); X509_CRL *PEM_read_X509_CRL(FILE *fp, X509_CRL **x, pem_password_cb *cb, void *u); int PEM_write_bio_X509_CRL(BIO *bp, X509_CRL *x); int PEM_write_X509_CRL(FILE *fp, X509_CRL *x); +PKCS7 *PEM_read_bio_PKCS7(BIO *bp, PKCS7 **x, pem_password_cb *cb, void *u); PKCS7 *PEM_read_PKCS7(FILE *fp, PKCS7 **x, pem_password_cb *cb, void *u); int PEM_write_bio_PKCS7(BIO *bp, PKCS7 *x); int PEM_write_PKCS7(FILE *fp, PKCS7 *x); +NETSCAPE_CERT_SEQUENCE *PEM_read_bio_NETSCAPE_CERT_SEQUENCE(BIO *bp, NETSCAPE_CERT_SEQUENCE **x, pem_password_cb *cb, void *u); NETSCAPE_CERT_SEQUENCE *PEM_read_NETSCAPE_CERT_SEQUENCE(FILE *fp, NETSCAPE_CERT_SEQUENCE **x, pem_password_cb *cb, void *u); int PEM_write_bio_NETSCAPE_CERT_SEQUENCE(BIO *bp, NETSCAPE_CERT_SEQUENCE *x); int PEM_write_NETSCAPE_CERT_SEQUENCE(FILE *fp, NETSCAPE_CERT_SEQUENCE *x); +X509_SIG *PEM_read_bio_PKCS8(BIO *bp, X509_SIG **x, pem_password_cb *cb, void *u); X509_SIG *PEM_read_PKCS8(FILE *fp, X509_SIG **x, pem_password_cb *cb, void *u); int PEM_write_bio_PKCS8(BIO *bp, X509_SIG *x); int PEM_write_PKCS8(FILE *fp, X509_SIG *x); +PKCS8_PRIV_KEY_INFO *PEM_read_bio_PKCS8_PRIV_KEY_INFO(BIO *bp, PKCS8_PRIV_KEY_INFO **x, pem_password_cb *cb, void *u); PKCS8_PRIV_KEY_INFO *PEM_read_PKCS8_PRIV_KEY_INFO(FILE *fp, PKCS8_PRIV_KEY_INFO **x, pem_password_cb *cb, void *u); int PEM_write_bio_PKCS8_PRIV_KEY_INFO(BIO *bp, PKCS8_PRIV_KEY_INFO *x); int PEM_write_PKCS8_PRIV_KEY_INFO(FILE *fp, PKCS8_PRIV_KEY_INFO *x); +RSA *PEM_read_bio_RSAPrivateKey(BIO *bp, RSA **x, pem_password_cb *cb, void *u); RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **x, pem_password_cb *cb, void *u); int PEM_write_bio_RSAPrivateKey(BIO *bp, RSA *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); int PEM_write_RSAPrivateKey(FILE *fp, RSA *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); +RSA *PEM_read_bio_RSAPublicKey(BIO *bp, RSA **x, pem_password_cb *cb, void *u); RSA *PEM_read_RSAPublicKey(FILE *fp, RSA **x, pem_password_cb *cb, void *u); int PEM_write_bio_RSAPublicKey(BIO *bp, const RSA *x); int PEM_write_RSAPublicKey(FILE *fp, const RSA *x); +RSA *PEM_read_bio_RSA_PUBKEY(BIO *bp, RSA **x, pem_password_cb *cb, void *u); RSA *PEM_read_RSA_PUBKEY(FILE *fp, RSA **x, pem_password_cb *cb, void *u); int PEM_write_bio_RSA_PUBKEY(BIO *bp, RSA *x); int PEM_write_RSA_PUBKEY(FILE *fp, RSA *x); +DSA *PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **x, pem_password_cb *cb, void *u); DSA *PEM_read_DSAPrivateKey(FILE *fp, DSA **x, pem_password_cb *cb, void *u); int PEM_write_bio_DSAPrivateKey(BIO *bp, DSA *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); int PEM_write_DSAPrivateKey(FILE *fp, DSA *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); +DSA *PEM_read_bio_DSA_PUBKEY(BIO *bp, DSA **x, pem_password_cb *cb, void *u); DSA *PEM_read_DSA_PUBKEY(FILE *fp, DSA **x, pem_password_cb *cb, void *u); int PEM_write_bio_DSA_PUBKEY(BIO *bp, DSA *x); int PEM_write_DSA_PUBKEY(FILE *fp, DSA *x); +DSA *PEM_read_bio_DSAparams(BIO *bp, DSA **x, pem_password_cb *cb, void *u); DSA *PEM_read_DSAparams(FILE *fp, DSA **x, pem_password_cb *cb, void *u); int PEM_write_bio_DSAparams(BIO *bp, const DSA *x); int PEM_write_DSAparams(FILE *fp, const DSA *x); +EC_GROUP *PEM_read_bio_ECPKParameters(BIO *bp, EC_GROUP **x, pem_password_cb *cb, void *u); EC_GROUP *PEM_read_ECPKParameters(FILE *fp, EC_GROUP **x, pem_password_cb *cb, void *u); int PEM_write_bio_ECPKParameters(BIO *bp, const EC_GROUP *x); int PEM_write_ECPKParameters(FILE *fp, const EC_GROUP *x); +EC_KEY *PEM_read_bio_ECPrivateKey(BIO *bp, EC_KEY **x, pem_password_cb *cb, void *u); EC_KEY *PEM_read_ECPrivateKey(FILE *fp, EC_KEY **x, pem_password_cb *cb, void *u); int PEM_write_bio_ECPrivateKey(BIO *bp, EC_KEY *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); int PEM_write_ECPrivateKey(FILE *fp, EC_KEY *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); +EC_KEY *PEM_read_bio_EC_PUBKEY(BIO *bp, EC_KEY **x, pem_password_cb *cb, void *u); EC_KEY *PEM_read_EC_PUBKEY(FILE *fp, EC_KEY **x, pem_password_cb *cb, void *u); int PEM_write_bio_EC_PUBKEY(BIO *bp, EC_KEY *x); int PEM_write_EC_PUBKEY(FILE *fp, EC_KEY *x); +DH *PEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void *u); DH *PEM_read_DHparams(FILE *fp, DH **x, pem_password_cb *cb, void *u); int PEM_write_bio_DHparams(BIO *bp, const DH *x); int PEM_write_DHparams(FILE *fp, const DH *x); +int PEM_write_bio_DHxparams(BIO *bp, const DH *x); int PEM_write_DHxparams(FILE *fp, const DH *x); +EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); EVP_PKEY *PEM_read_PrivateKey(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u); int PEM_write_bio_PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); int PEM_write_PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, void *u); +EVP_PKEY *PEM_read_bio_PUBKEY(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); EVP_PKEY *PEM_read_PUBKEY(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u); int PEM_write_bio_PUBKEY(BIO *bp, EVP_PKEY *x); int PEM_write_PUBKEY(FILE *fp, EVP_PKEY *x); +int PEM_write_bio_PrivateKey_traditional(BIO *bp, EVP_PKEY *x, + const EVP_CIPHER *enc, + unsigned char *kstr, int klen, + pem_password_cb *cb, void *u); +int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, + char *, int, pem_password_cb *, void *); +int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, + void *u); +int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, + char *kstr, int klen, + pem_password_cb *cb, void *u); +EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, + void *u); +int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, + char *kstr, int klen, pem_password_cb *cd, + void *u); +EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); +int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x); +EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); +EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); +EVP_PKEY *b2i_PrivateKey_bio(BIO *in); +EVP_PKEY *b2i_PublicKey_bio(BIO *in); +int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk); +int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk); +EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); +int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, + pem_password_cb *cb, void *u); + +// csrc/openssl/src/include/openssl/pemerr.h +int ERR_load_PEM_strings(void); +enum { + PEM_F_B2I_DSS = 127, + PEM_F_B2I_PVK_BIO = 128, + PEM_F_B2I_RSA = 129, + PEM_F_CHECK_BITLEN_DSA = 130, + PEM_F_CHECK_BITLEN_RSA = 131, + PEM_F_D2I_PKCS8PRIVATEKEY_BIO = 120, + PEM_F_D2I_PKCS8PRIVATEKEY_FP = 121, + PEM_F_DO_B2I = 132, + PEM_F_DO_B2I_BIO = 133, + PEM_F_DO_BLOB_HEADER = 134, + PEM_F_DO_I2B = 146, + PEM_F_DO_PK8PKEY = 126, + PEM_F_DO_PK8PKEY_FP = 125, + PEM_F_DO_PVK_BODY = 135, + PEM_F_DO_PVK_HEADER = 136, + PEM_F_GET_HEADER_AND_DATA = 143, + PEM_F_GET_NAME = 144, + PEM_F_I2B_PVK = 137, + PEM_F_I2B_PVK_BIO = 138, + PEM_F_LOAD_IV = 101, + PEM_F_PEM_ASN1_READ = 102, + PEM_F_PEM_ASN1_READ_BIO = 103, + PEM_F_PEM_ASN1_WRITE = 104, + PEM_F_PEM_ASN1_WRITE_BIO = 105, + PEM_F_PEM_DEF_CALLBACK = 100, + PEM_F_PEM_DO_HEADER = 106, + PEM_F_PEM_GET_EVP_CIPHER_INFO = 107, + PEM_F_PEM_READ = 108, + PEM_F_PEM_READ_BIO = 109, + PEM_F_PEM_READ_BIO_DHPARAMS = 141, + PEM_F_PEM_READ_BIO_EX = 145, + PEM_F_PEM_READ_BIO_PARAMETERS = 140, + PEM_F_PEM_READ_BIO_PRIVATEKEY = 123, + PEM_F_PEM_READ_DHPARAMS = 142, + PEM_F_PEM_READ_PRIVATEKEY = 124, + PEM_F_PEM_SIGNFINAL = 112, + PEM_F_PEM_WRITE = 113, + PEM_F_PEM_WRITE_BIO = 114, + PEM_F_PEM_WRITE_PRIVATEKEY = 139, + PEM_F_PEM_X509_INFO_READ = 115, + PEM_F_PEM_X509_INFO_READ_BIO = 116, + PEM_F_PEM_X509_INFO_WRITE_BIO = 117, + PEM_R_BAD_BASE64_DECODE = 100, + PEM_R_BAD_DECRYPT = 101, + PEM_R_BAD_END_LINE = 102, + PEM_R_BAD_IV_CHARS = 103, + PEM_R_BAD_MAGIC_NUMBER = 116, + PEM_R_BAD_PASSWORD_READ = 104, + PEM_R_BAD_VERSION_NUMBER = 117, + PEM_R_BIO_WRITE_FAILURE = 118, + PEM_R_CIPHER_IS_NULL = 127, + PEM_R_ERROR_CONVERTING_PRIVATE_KEY = 115, + PEM_R_EXPECTING_PRIVATE_KEY_BLOB = 119, + PEM_R_EXPECTING_PUBLIC_KEY_BLOB = 120, + PEM_R_HEADER_TOO_LONG = 128, + PEM_R_INCONSISTENT_HEADER = 121, + PEM_R_KEYBLOB_HEADER_PARSE_ERROR = 122, + PEM_R_KEYBLOB_TOO_SHORT = 123, + PEM_R_MISSING_DEK_IV = 129, + PEM_R_NOT_DEK_INFO = 105, + PEM_R_NOT_ENCRYPTED = 106, + PEM_R_NOT_PROC_TYPE = 107, + PEM_R_NO_START_LINE = 108, + PEM_R_PROBLEMS_GETTING_PASSWORD = 109, + PEM_R_PVK_DATA_TOO_SHORT = 124, + PEM_R_PVK_TOO_SHORT = 125, + PEM_R_READ_KEY = 111, + PEM_R_SHORT_HEADER = 112, + PEM_R_UNEXPECTED_DEK_IV = 130, + PEM_R_UNSUPPORTED_CIPHER = 113, + PEM_R_UNSUPPORTED_ENCRYPTION = 114, + PEM_R_UNSUPPORTED_KEY_COMPONENTS = 126, +}; + diff --git a/libcrypto_pkcs7_h.lua b/libcrypto_pkcs7_h.lua new file mode 100644 index 0000000..edd4ecb --- /dev/null +++ b/libcrypto_pkcs7_h.lua @@ -0,0 +1,299 @@ +// csrc/openssl/src/include/openssl/pkcs7.h +typedef struct pkcs7_issuer_and_serial_st { + X509_NAME *issuer; + ASN1_INTEGER *serial; +} PKCS7_ISSUER_AND_SERIAL; +typedef struct pkcs7_signer_info_st { + ASN1_INTEGER *version; + PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; + X509_ALGOR *digest_alg; + struct stack_st_X509_ATTRIBUTE *auth_attr; + X509_ALGOR *digest_enc_alg; + ASN1_OCTET_STRING *enc_digest; + struct stack_st_X509_ATTRIBUTE *unauth_attr; + EVP_PKEY *pkey; +} PKCS7_SIGNER_INFO; +struct stack_st_PKCS7_SIGNER_INFO; typedef int (*sk_PKCS7_SIGNER_INFO_compfunc)(const PKCS7_SIGNER_INFO * const *a, const PKCS7_SIGNER_INFO *const *b); typedef void (*sk_PKCS7_SIGNER_INFO_freefunc)(PKCS7_SIGNER_INFO *a); typedef PKCS7_SIGNER_INFO * (*sk_PKCS7_SIGNER_INFO_copyfunc)(const PKCS7_SIGNER_INFO *a); static __attribute__((unused)) inline int sk_PKCS7_SIGNER_INFO_num(const struct stack_st_PKCS7_SIGNER_INFO *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline PKCS7_SIGNER_INFO *sk_PKCS7_SIGNER_INFO_value(const struct stack_st_PKCS7_SIGNER_INFO *sk, int idx) { return (PKCS7_SIGNER_INFO *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_PKCS7_SIGNER_INFO *sk_PKCS7_SIGNER_INFO_new(sk_PKCS7_SIGNER_INFO_compfunc compare) { return (struct stack_st_PKCS7_SIGNER_INFO *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_PKCS7_SIGNER_INFO *sk_PKCS7_SIGNER_INFO_new_null(void) { return (struct stack_st_PKCS7_SIGNER_INFO *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_PKCS7_SIGNER_INFO *sk_PKCS7_SIGNER_INFO_new_reserve(sk_PKCS7_SIGNER_INFO_compfunc compare, int n) { return (struct stack_st_PKCS7_SIGNER_INFO *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_PKCS7_SIGNER_INFO_reserve(struct stack_st_PKCS7_SIGNER_INFO *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_PKCS7_SIGNER_INFO_free(struct stack_st_PKCS7_SIGNER_INFO *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_PKCS7_SIGNER_INFO_zero(struct stack_st_PKCS7_SIGNER_INFO *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline PKCS7_SIGNER_INFO *sk_PKCS7_SIGNER_INFO_delete(struct stack_st_PKCS7_SIGNER_INFO *sk, int i) { return (PKCS7_SIGNER_INFO *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline PKCS7_SIGNER_INFO *sk_PKCS7_SIGNER_INFO_delete_ptr(struct stack_st_PKCS7_SIGNER_INFO *sk, PKCS7_SIGNER_INFO *ptr) { return (PKCS7_SIGNER_INFO *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_PKCS7_SIGNER_INFO_push(struct stack_st_PKCS7_SIGNER_INFO *sk, PKCS7_SIGNER_INFO *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_PKCS7_SIGNER_INFO_unshift(struct stack_st_PKCS7_SIGNER_INFO *sk, PKCS7_SIGNER_INFO *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline PKCS7_SIGNER_INFO *sk_PKCS7_SIGNER_INFO_pop(struct stack_st_PKCS7_SIGNER_INFO *sk) { return (PKCS7_SIGNER_INFO *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline PKCS7_SIGNER_INFO *sk_PKCS7_SIGNER_INFO_shift(struct stack_st_PKCS7_SIGNER_INFO *sk) { return (PKCS7_SIGNER_INFO *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_PKCS7_SIGNER_INFO_pop_free(struct stack_st_PKCS7_SIGNER_INFO *sk, sk_PKCS7_SIGNER_INFO_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_PKCS7_SIGNER_INFO_insert(struct stack_st_PKCS7_SIGNER_INFO *sk, PKCS7_SIGNER_INFO *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline PKCS7_SIGNER_INFO *sk_PKCS7_SIGNER_INFO_set(struct stack_st_PKCS7_SIGNER_INFO *sk, int idx, PKCS7_SIGNER_INFO *ptr) { return (PKCS7_SIGNER_INFO *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_PKCS7_SIGNER_INFO_find(struct stack_st_PKCS7_SIGNER_INFO *sk, PKCS7_SIGNER_INFO *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_PKCS7_SIGNER_INFO_find_ex(struct stack_st_PKCS7_SIGNER_INFO *sk, PKCS7_SIGNER_INFO *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_PKCS7_SIGNER_INFO_sort(struct stack_st_PKCS7_SIGNER_INFO *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_PKCS7_SIGNER_INFO_is_sorted(const struct stack_st_PKCS7_SIGNER_INFO *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_PKCS7_SIGNER_INFO * sk_PKCS7_SIGNER_INFO_dup(const struct stack_st_PKCS7_SIGNER_INFO *sk) { return (struct stack_st_PKCS7_SIGNER_INFO *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_PKCS7_SIGNER_INFO *sk_PKCS7_SIGNER_INFO_deep_copy(const struct stack_st_PKCS7_SIGNER_INFO *sk, sk_PKCS7_SIGNER_INFO_copyfunc copyfunc, sk_PKCS7_SIGNER_INFO_freefunc freefunc) { return (struct stack_st_PKCS7_SIGNER_INFO *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_PKCS7_SIGNER_INFO_compfunc sk_PKCS7_SIGNER_INFO_set_cmp_func(struct stack_st_PKCS7_SIGNER_INFO *sk, sk_PKCS7_SIGNER_INFO_compfunc compare) { return (sk_PKCS7_SIGNER_INFO_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +typedef struct pkcs7_recip_info_st { + ASN1_INTEGER *version; + PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; + X509_ALGOR *key_enc_algor; + ASN1_OCTET_STRING *enc_key; + X509 *cert; +} PKCS7_RECIP_INFO; +struct stack_st_PKCS7_RECIP_INFO; typedef int (*sk_PKCS7_RECIP_INFO_compfunc)(const PKCS7_RECIP_INFO * const *a, const PKCS7_RECIP_INFO *const *b); typedef void (*sk_PKCS7_RECIP_INFO_freefunc)(PKCS7_RECIP_INFO *a); typedef PKCS7_RECIP_INFO * (*sk_PKCS7_RECIP_INFO_copyfunc)(const PKCS7_RECIP_INFO *a); static __attribute__((unused)) inline int sk_PKCS7_RECIP_INFO_num(const struct stack_st_PKCS7_RECIP_INFO *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline PKCS7_RECIP_INFO *sk_PKCS7_RECIP_INFO_value(const struct stack_st_PKCS7_RECIP_INFO *sk, int idx) { return (PKCS7_RECIP_INFO *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_PKCS7_RECIP_INFO *sk_PKCS7_RECIP_INFO_new(sk_PKCS7_RECIP_INFO_compfunc compare) { return (struct stack_st_PKCS7_RECIP_INFO *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_PKCS7_RECIP_INFO *sk_PKCS7_RECIP_INFO_new_null(void) { return (struct stack_st_PKCS7_RECIP_INFO *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_PKCS7_RECIP_INFO *sk_PKCS7_RECIP_INFO_new_reserve(sk_PKCS7_RECIP_INFO_compfunc compare, int n) { return (struct stack_st_PKCS7_RECIP_INFO *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_PKCS7_RECIP_INFO_reserve(struct stack_st_PKCS7_RECIP_INFO *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_PKCS7_RECIP_INFO_free(struct stack_st_PKCS7_RECIP_INFO *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_PKCS7_RECIP_INFO_zero(struct stack_st_PKCS7_RECIP_INFO *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline PKCS7_RECIP_INFO *sk_PKCS7_RECIP_INFO_delete(struct stack_st_PKCS7_RECIP_INFO *sk, int i) { return (PKCS7_RECIP_INFO *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline PKCS7_RECIP_INFO *sk_PKCS7_RECIP_INFO_delete_ptr(struct stack_st_PKCS7_RECIP_INFO *sk, PKCS7_RECIP_INFO *ptr) { return (PKCS7_RECIP_INFO *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_PKCS7_RECIP_INFO_push(struct stack_st_PKCS7_RECIP_INFO *sk, PKCS7_RECIP_INFO *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_PKCS7_RECIP_INFO_unshift(struct stack_st_PKCS7_RECIP_INFO *sk, PKCS7_RECIP_INFO *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline PKCS7_RECIP_INFO *sk_PKCS7_RECIP_INFO_pop(struct stack_st_PKCS7_RECIP_INFO *sk) { return (PKCS7_RECIP_INFO *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline PKCS7_RECIP_INFO *sk_PKCS7_RECIP_INFO_shift(struct stack_st_PKCS7_RECIP_INFO *sk) { return (PKCS7_RECIP_INFO *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_PKCS7_RECIP_INFO_pop_free(struct stack_st_PKCS7_RECIP_INFO *sk, sk_PKCS7_RECIP_INFO_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_PKCS7_RECIP_INFO_insert(struct stack_st_PKCS7_RECIP_INFO *sk, PKCS7_RECIP_INFO *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline PKCS7_RECIP_INFO *sk_PKCS7_RECIP_INFO_set(struct stack_st_PKCS7_RECIP_INFO *sk, int idx, PKCS7_RECIP_INFO *ptr) { return (PKCS7_RECIP_INFO *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_PKCS7_RECIP_INFO_find(struct stack_st_PKCS7_RECIP_INFO *sk, PKCS7_RECIP_INFO *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_PKCS7_RECIP_INFO_find_ex(struct stack_st_PKCS7_RECIP_INFO *sk, PKCS7_RECIP_INFO *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_PKCS7_RECIP_INFO_sort(struct stack_st_PKCS7_RECIP_INFO *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_PKCS7_RECIP_INFO_is_sorted(const struct stack_st_PKCS7_RECIP_INFO *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_PKCS7_RECIP_INFO * sk_PKCS7_RECIP_INFO_dup(const struct stack_st_PKCS7_RECIP_INFO *sk) { return (struct stack_st_PKCS7_RECIP_INFO *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_PKCS7_RECIP_INFO *sk_PKCS7_RECIP_INFO_deep_copy(const struct stack_st_PKCS7_RECIP_INFO *sk, sk_PKCS7_RECIP_INFO_copyfunc copyfunc, sk_PKCS7_RECIP_INFO_freefunc freefunc) { return (struct stack_st_PKCS7_RECIP_INFO *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_PKCS7_RECIP_INFO_compfunc sk_PKCS7_RECIP_INFO_set_cmp_func(struct stack_st_PKCS7_RECIP_INFO *sk, sk_PKCS7_RECIP_INFO_compfunc compare) { return (sk_PKCS7_RECIP_INFO_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +typedef struct pkcs7_signed_st { + ASN1_INTEGER *version; + struct stack_st_X509_ALGOR *md_algs; + struct stack_st_X509 *cert; + struct stack_st_X509_CRL *crl; + struct stack_st_PKCS7_SIGNER_INFO *signer_info; + struct pkcs7_st *contents; +} PKCS7_SIGNED; +typedef struct pkcs7_enc_content_st { + ASN1_OBJECT *content_type; + X509_ALGOR *algorithm; + ASN1_OCTET_STRING *enc_data; + const EVP_CIPHER *cipher; +} PKCS7_ENC_CONTENT; +typedef struct pkcs7_enveloped_st { + ASN1_INTEGER *version; + struct stack_st_PKCS7_RECIP_INFO *recipientinfo; + PKCS7_ENC_CONTENT *enc_data; +} PKCS7_ENVELOPE; +typedef struct pkcs7_signedandenveloped_st { + ASN1_INTEGER *version; + struct stack_st_X509_ALGOR *md_algs; + struct stack_st_X509 *cert; + struct stack_st_X509_CRL *crl; + struct stack_st_PKCS7_SIGNER_INFO *signer_info; + PKCS7_ENC_CONTENT *enc_data; + struct stack_st_PKCS7_RECIP_INFO *recipientinfo; +} PKCS7_SIGN_ENVELOPE; +typedef struct pkcs7_digest_st { + ASN1_INTEGER *version; + X509_ALGOR *md; + struct pkcs7_st *contents; + ASN1_OCTET_STRING *digest; +} PKCS7_DIGEST; +typedef struct pkcs7_encrypted_st { + ASN1_INTEGER *version; + PKCS7_ENC_CONTENT *enc_data; +} PKCS7_ENCRYPT; +typedef struct pkcs7_st { + unsigned char *asn1; + long length; +enum { + PKCS7_S_HEADER = 0, + PKCS7_S_BODY = 1, + PKCS7_S_TAIL = 2, +}; + int state; + int detached; + ASN1_OBJECT *type; + union { + char *ptr; + ASN1_OCTET_STRING *data; + PKCS7_SIGNED *sign; + PKCS7_ENVELOPE *enveloped; + PKCS7_SIGN_ENVELOPE *signed_and_enveloped; + PKCS7_DIGEST *digest; + PKCS7_ENCRYPT *encrypted; + ASN1_TYPE *other; + } d; +} PKCS7; +struct stack_st_PKCS7; typedef int (*sk_PKCS7_compfunc)(const PKCS7 * const *a, const PKCS7 *const *b); typedef void (*sk_PKCS7_freefunc)(PKCS7 *a); typedef PKCS7 * (*sk_PKCS7_copyfunc)(const PKCS7 *a); static __attribute__((unused)) inline int sk_PKCS7_num(const struct stack_st_PKCS7 *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline PKCS7 *sk_PKCS7_value(const struct stack_st_PKCS7 *sk, int idx) { return (PKCS7 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_PKCS7 *sk_PKCS7_new(sk_PKCS7_compfunc compare) { return (struct stack_st_PKCS7 *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_PKCS7 *sk_PKCS7_new_null(void) { return (struct stack_st_PKCS7 *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_PKCS7 *sk_PKCS7_new_reserve(sk_PKCS7_compfunc compare, int n) { return (struct stack_st_PKCS7 *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_PKCS7_reserve(struct stack_st_PKCS7 *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_PKCS7_free(struct stack_st_PKCS7 *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_PKCS7_zero(struct stack_st_PKCS7 *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline PKCS7 *sk_PKCS7_delete(struct stack_st_PKCS7 *sk, int i) { return (PKCS7 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline PKCS7 *sk_PKCS7_delete_ptr(struct stack_st_PKCS7 *sk, PKCS7 *ptr) { return (PKCS7 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_PKCS7_push(struct stack_st_PKCS7 *sk, PKCS7 *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_PKCS7_unshift(struct stack_st_PKCS7 *sk, PKCS7 *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline PKCS7 *sk_PKCS7_pop(struct stack_st_PKCS7 *sk) { return (PKCS7 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline PKCS7 *sk_PKCS7_shift(struct stack_st_PKCS7 *sk) { return (PKCS7 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_PKCS7_pop_free(struct stack_st_PKCS7 *sk, sk_PKCS7_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_PKCS7_insert(struct stack_st_PKCS7 *sk, PKCS7 *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline PKCS7 *sk_PKCS7_set(struct stack_st_PKCS7 *sk, int idx, PKCS7 *ptr) { return (PKCS7 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_PKCS7_find(struct stack_st_PKCS7 *sk, PKCS7 *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_PKCS7_find_ex(struct stack_st_PKCS7 *sk, PKCS7 *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_PKCS7_sort(struct stack_st_PKCS7 *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_PKCS7_is_sorted(const struct stack_st_PKCS7 *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_PKCS7 * sk_PKCS7_dup(const struct stack_st_PKCS7 *sk) { return (struct stack_st_PKCS7 *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_PKCS7 *sk_PKCS7_deep_copy(const struct stack_st_PKCS7 *sk, sk_PKCS7_copyfunc copyfunc, sk_PKCS7_freefunc freefunc) { return (struct stack_st_PKCS7 *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_PKCS7_compfunc sk_PKCS7_set_cmp_func(struct stack_st_PKCS7 *sk, sk_PKCS7_compfunc compare) { return (sk_PKCS7_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +enum { + PKCS7_OP_SET_DETACHED_SIGNATURE = 1, + PKCS7_OP_GET_DETACHED_SIGNATURE = 2, +}; +#define PKCS7_get_signed_attributes(si) ((si)->auth_attr) +#define PKCS7_get_attributes(si) ((si)->unauth_attr) +#define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) +#define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) +#define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) +#define PKCS7_type_is_signedAndEnveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) +#define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) +#define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) +#define PKCS7_set_detached(p,v) PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) +#define PKCS7_get_detached(p) PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) +#define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) +enum { + PKCS7_TEXT = 0x1, + PKCS7_NOCERTS = 0x2, + PKCS7_NOSIGS = 0x4, + PKCS7_NOCHAIN = 0x8, + PKCS7_NOINTERN = 0x10, + PKCS7_NOVERIFY = 0x20, + PKCS7_DETACHED = 0x40, + PKCS7_BINARY = 0x80, + PKCS7_NOATTR = 0x100, + PKCS7_NOSMIMECAP = 0x200, + PKCS7_NOOLDMIMETYPE = 0x400, + PKCS7_CRLFEOL = 0x800, + PKCS7_STREAM = 0x1000, + PKCS7_NOCRL = 0x2000, + PKCS7_PARTIAL = 0x4000, + PKCS7_REUSE_DIGEST = 0x8000, + PKCS7_NO_DUAL_CONTENT = 0x10000, + SMIME_TEXT = PKCS7_TEXT, + SMIME_NOCERTS = PKCS7_NOCERTS, + SMIME_NOSIGS = PKCS7_NOSIGS, + SMIME_NOCHAIN = PKCS7_NOCHAIN, + SMIME_NOINTERN = PKCS7_NOINTERN, + SMIME_NOVERIFY = PKCS7_NOVERIFY, + SMIME_DETACHED = PKCS7_DETACHED, + SMIME_BINARY = PKCS7_BINARY, + SMIME_NOATTR = PKCS7_NOATTR, + SMIME_ASCIICRLF = 0x80000, +}; +PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new(void); void PKCS7_ISSUER_AND_SERIAL_free(PKCS7_ISSUER_AND_SERIAL *a); PKCS7_ISSUER_AND_SERIAL *d2i_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL **a, const unsigned char **in, long len); int i2d_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL *a, unsigned char **out); const ASN1_ITEM * PKCS7_ISSUER_AND_SERIAL_it(void); +int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, + const EVP_MD *type, unsigned char *md, + unsigned int *len); +PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); +int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7); +PKCS7 *PKCS7_dup(PKCS7 *p7); +PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); +int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7); +int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); +int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); +PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new(void); void PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a); PKCS7_SIGNER_INFO *d2i_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO **a, const unsigned char **in, long len); int i2d_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO *a, unsigned char **out); const ASN1_ITEM * PKCS7_SIGNER_INFO_it(void); +PKCS7_RECIP_INFO *PKCS7_RECIP_INFO_new(void); void PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a); PKCS7_RECIP_INFO *d2i_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO **a, const unsigned char **in, long len); int i2d_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO *a, unsigned char **out); const ASN1_ITEM * PKCS7_RECIP_INFO_it(void); +PKCS7_SIGNED *PKCS7_SIGNED_new(void); void PKCS7_SIGNED_free(PKCS7_SIGNED *a); PKCS7_SIGNED *d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, const unsigned char **in, long len); int i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, unsigned char **out); const ASN1_ITEM * PKCS7_SIGNED_it(void); +PKCS7_ENC_CONTENT *PKCS7_ENC_CONTENT_new(void); void PKCS7_ENC_CONTENT_free(PKCS7_ENC_CONTENT *a); PKCS7_ENC_CONTENT *d2i_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT **a, const unsigned char **in, long len); int i2d_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT *a, unsigned char **out); const ASN1_ITEM * PKCS7_ENC_CONTENT_it(void); +PKCS7_ENVELOPE *PKCS7_ENVELOPE_new(void); void PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a); PKCS7_ENVELOPE *d2i_PKCS7_ENVELOPE(PKCS7_ENVELOPE **a, const unsigned char **in, long len); int i2d_PKCS7_ENVELOPE(PKCS7_ENVELOPE *a, unsigned char **out); const ASN1_ITEM * PKCS7_ENVELOPE_it(void); +PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void); void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a); PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a, const unsigned char **in, long len); int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **out); const ASN1_ITEM * PKCS7_SIGN_ENVELOPE_it(void); +PKCS7_DIGEST *PKCS7_DIGEST_new(void); void PKCS7_DIGEST_free(PKCS7_DIGEST *a); PKCS7_DIGEST *d2i_PKCS7_DIGEST(PKCS7_DIGEST **a, const unsigned char **in, long len); int i2d_PKCS7_DIGEST(PKCS7_DIGEST *a, unsigned char **out); const ASN1_ITEM * PKCS7_DIGEST_it(void); +PKCS7_ENCRYPT *PKCS7_ENCRYPT_new(void); void PKCS7_ENCRYPT_free(PKCS7_ENCRYPT *a); PKCS7_ENCRYPT *d2i_PKCS7_ENCRYPT(PKCS7_ENCRYPT **a, const unsigned char **in, long len); int i2d_PKCS7_ENCRYPT(PKCS7_ENCRYPT *a, unsigned char **out); const ASN1_ITEM * PKCS7_ENCRYPT_it(void); +PKCS7 *PKCS7_new(void); void PKCS7_free(PKCS7 *a); PKCS7 *d2i_PKCS7(PKCS7 **a, const unsigned char **in, long len); int i2d_PKCS7(PKCS7 *a, unsigned char **out); const ASN1_ITEM * PKCS7_it(void); +const ASN1_ITEM * PKCS7_ATTR_SIGN_it(void); +const ASN1_ITEM * PKCS7_ATTR_VERIFY_it(void); +int i2d_PKCS7_NDEF(PKCS7 *a, unsigned char **out); +int PKCS7_print_ctx(BIO *out, PKCS7 *x, int indent, const ASN1_PCTX *pctx); +long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); +int PKCS7_set_type(PKCS7 *p7, int type); +int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); +int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); +int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, + const EVP_MD *dgst); +int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); +int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); +int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); +int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); +int PKCS7_content_new(PKCS7 *p7, int nid); +int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, + BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); +int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, + X509 *x509); +BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); +int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); +BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); +PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, + EVP_PKEY *pkey, const EVP_MD *dgst); +X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); +int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); +struct stack_st_PKCS7_SIGNER_INFO *PKCS7_get_signer_info(PKCS7 *p7); +PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); +void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, + X509_ALGOR **pdig, X509_ALGOR **psig); +void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); +int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); +int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); +int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); +int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); +PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); +ASN1_OCTET_STRING *PKCS7_digest_from_attributes(struct stack_st_X509_ATTRIBUTE *sk); +int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, + void *data); +int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, + void *value); +ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); +ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); +int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, + struct stack_st_X509_ATTRIBUTE *sk); +int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, + struct stack_st_X509_ATTRIBUTE *sk); +PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, struct stack_st_X509 *certs, + BIO *data, int flags); +PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, + X509 *signcert, EVP_PKEY *pkey, + const EVP_MD *md, int flags); +int PKCS7_final(PKCS7 *p7, BIO *data, int flags); +int PKCS7_verify(PKCS7 *p7, struct stack_st_X509 *certs, X509_STORE *store, + BIO *indata, BIO *out, int flags); +struct stack_st_X509 *PKCS7_get0_signers(PKCS7 *p7, struct stack_st_X509 *certs, + int flags); +PKCS7 *PKCS7_encrypt(struct stack_st_X509 *certs, BIO *in, const EVP_CIPHER *cipher, + int flags); +int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, + int flags); +int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, + struct stack_st_X509_ALGOR *cap); +struct stack_st_X509_ALGOR *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); +int PKCS7_simple_smimecap(struct stack_st_X509_ALGOR *sk, int nid, int arg); +int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); +int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); +int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, + const unsigned char *md, int mdlen); +int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); +PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); +BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); + +// csrc/openssl/src/include/openssl/pkcs7err.h +int ERR_load_PKCS7_strings(void); +enum { + PKCS7_F_DO_PKCS7_SIGNED_ATTRIB = 136, + PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME = 135, + PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP = 118, + PKCS7_F_PKCS7_ADD_CERTIFICATE = 100, + PKCS7_F_PKCS7_ADD_CRL = 101, + PKCS7_F_PKCS7_ADD_RECIPIENT_INFO = 102, + PKCS7_F_PKCS7_ADD_SIGNATURE = 131, + PKCS7_F_PKCS7_ADD_SIGNER = 103, + PKCS7_F_PKCS7_BIO_ADD_DIGEST = 125, + PKCS7_F_PKCS7_COPY_EXISTING_DIGEST = 138, + PKCS7_F_PKCS7_CTRL = 104, + PKCS7_F_PKCS7_DATADECODE = 112, + PKCS7_F_PKCS7_DATAFINAL = 128, + PKCS7_F_PKCS7_DATAINIT = 105, + PKCS7_F_PKCS7_DATAVERIFY = 107, + PKCS7_F_PKCS7_DECRYPT = 114, + PKCS7_F_PKCS7_DECRYPT_RINFO = 133, + PKCS7_F_PKCS7_ENCODE_RINFO = 132, + PKCS7_F_PKCS7_ENCRYPT = 115, + PKCS7_F_PKCS7_FINAL = 134, + PKCS7_F_PKCS7_FIND_DIGEST = 127, + PKCS7_F_PKCS7_GET0_SIGNERS = 124, + PKCS7_F_PKCS7_RECIP_INFO_SET = 130, + PKCS7_F_PKCS7_SET_CIPHER = 108, + PKCS7_F_PKCS7_SET_CONTENT = 109, + PKCS7_F_PKCS7_SET_DIGEST = 126, + PKCS7_F_PKCS7_SET_TYPE = 110, + PKCS7_F_PKCS7_SIGN = 116, + PKCS7_F_PKCS7_SIGNATUREVERIFY = 113, + PKCS7_F_PKCS7_SIGNER_INFO_SET = 129, + PKCS7_F_PKCS7_SIGNER_INFO_SIGN = 139, + PKCS7_F_PKCS7_SIGN_ADD_SIGNER = 137, + PKCS7_F_PKCS7_SIMPLE_SMIMECAP = 119, + PKCS7_F_PKCS7_VERIFY = 117, + PKCS7_R_CERTIFICATE_VERIFY_ERROR = 117, + PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER = 144, + PKCS7_R_CIPHER_NOT_INITIALIZED = 116, + PKCS7_R_CONTENT_AND_DATA_PRESENT = 118, + PKCS7_R_CTRL_ERROR = 152, + PKCS7_R_DECRYPT_ERROR = 119, + PKCS7_R_DIGEST_FAILURE = 101, + PKCS7_R_ENCRYPTION_CTRL_FAILURE = 149, + PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE = 150, + PKCS7_R_ERROR_ADDING_RECIPIENT = 120, + PKCS7_R_ERROR_SETTING_CIPHER = 121, + PKCS7_R_INVALID_NULL_POINTER = 143, + PKCS7_R_INVALID_SIGNED_DATA_TYPE = 155, + PKCS7_R_NO_CONTENT = 122, + PKCS7_R_NO_DEFAULT_DIGEST = 151, + PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND = 154, + PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE = 115, + PKCS7_R_NO_SIGNATURES_ON_DATA = 123, + PKCS7_R_NO_SIGNERS = 142, + PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE = 104, + PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR = 124, + PKCS7_R_PKCS7_ADD_SIGNER_ERROR = 153, + PKCS7_R_PKCS7_DATASIGN = 145, + PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE = 127, + PKCS7_R_SIGNATURE_FAILURE = 105, + PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND = 128, + PKCS7_R_SIGNING_CTRL_FAILURE = 147, + PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE = 148, + PKCS7_R_SMIME_TEXT_ERROR = 129, + PKCS7_R_UNABLE_TO_FIND_CERTIFICATE = 106, + PKCS7_R_UNABLE_TO_FIND_MEM_BIO = 107, + PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST = 108, + PKCS7_R_UNKNOWN_DIGEST_TYPE = 109, + PKCS7_R_UNKNOWN_OPERATION = 110, + PKCS7_R_UNSUPPORTED_CIPHER_TYPE = 111, + PKCS7_R_UNSUPPORTED_CONTENT_TYPE = 112, + PKCS7_R_WRONG_CONTENT_TYPE = 113, + PKCS7_R_WRONG_PKCS7_TYPE = 114, +}; + diff --git a/libcrypto_rand_h.lua b/libcrypto_rand_h.lua new file mode 100644 index 0000000..6f5f6f3 --- /dev/null +++ b/libcrypto_rand_h.lua @@ -0,0 +1,93 @@ +// csrc/openssl/src/include/openssl/rand.h +struct rand_meth_st { + int (*seed) (const void *buf, int num); + int (*bytes) (unsigned char *buf, int num); + void (*cleanup) (void); + int (*add) (const void *buf, int num, double randomness); + int (*pseudorand) (unsigned char *buf, int num); + int (*status) (void); +}; +int RAND_set_rand_method(const RAND_METHOD *meth); +const RAND_METHOD *RAND_get_rand_method(void); +int RAND_set_rand_engine(ENGINE *engine); +RAND_METHOD *RAND_OpenSSL(void); +#define RAND_cleanup() while(0) continue +int RAND_bytes(unsigned char *buf, int num); +int RAND_priv_bytes(unsigned char *buf, int num); +int RAND_pseudo_bytes(unsigned char *buf, int num) __attribute__ ((deprecated)); +void RAND_seed(const void *buf, int num); +void RAND_keep_random_devices_open(int keep); +void RAND_add(const void *buf, int num, double randomness); +int RAND_load_file(const char *file, long max_bytes); +int RAND_write_file(const char *file); +const char *RAND_file_name(char *file, size_t num); +int RAND_status(void); +int RAND_poll(void); + +// csrc/openssl/src/include/openssl/randerr.h +int ERR_load_RAND_strings(void); +enum { + RAND_F_DRBG_BYTES = 101, + RAND_F_DRBG_GET_ENTROPY = 105, + RAND_F_DRBG_SETUP = 117, + RAND_F_GET_ENTROPY = 106, + RAND_F_RAND_BYTES = 100, + RAND_F_RAND_DRBG_ENABLE_LOCKING = 119, + RAND_F_RAND_DRBG_GENERATE = 107, + RAND_F_RAND_DRBG_GET_ENTROPY = 120, + RAND_F_RAND_DRBG_GET_NONCE = 123, + RAND_F_RAND_DRBG_INSTANTIATE = 108, + RAND_F_RAND_DRBG_NEW = 109, + RAND_F_RAND_DRBG_RESEED = 110, + RAND_F_RAND_DRBG_RESTART = 102, + RAND_F_RAND_DRBG_SET = 104, + RAND_F_RAND_DRBG_SET_DEFAULTS = 121, + RAND_F_RAND_DRBG_UNINSTANTIATE = 118, + RAND_F_RAND_LOAD_FILE = 111, + RAND_F_RAND_POOL_ACQUIRE_ENTROPY = 122, + RAND_F_RAND_POOL_ADD = 103, + RAND_F_RAND_POOL_ADD_BEGIN = 113, + RAND_F_RAND_POOL_ADD_END = 114, + RAND_F_RAND_POOL_ATTACH = 124, + RAND_F_RAND_POOL_BYTES_NEEDED = 115, + RAND_F_RAND_POOL_GROW = 125, + RAND_F_RAND_POOL_NEW = 116, + RAND_F_RAND_WRITE_FILE = 112, + RAND_R_ADDITIONAL_INPUT_TOO_LONG = 102, + RAND_R_ALREADY_INSTANTIATED = 103, + RAND_R_ARGUMENT_OUT_OF_RANGE = 105, + RAND_R_CANNOT_OPEN_FILE = 121, + RAND_R_DRBG_ALREADY_INITIALIZED = 129, + RAND_R_DRBG_NOT_INITIALISED = 104, + RAND_R_ENTROPY_INPUT_TOO_LONG = 106, + RAND_R_ENTROPY_OUT_OF_RANGE = 124, + RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED = 127, + RAND_R_ERROR_INITIALISING_DRBG = 107, + RAND_R_ERROR_INSTANTIATING_DRBG = 108, + RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT = 109, + RAND_R_ERROR_RETRIEVING_ENTROPY = 110, + RAND_R_ERROR_RETRIEVING_NONCE = 111, + RAND_R_FAILED_TO_CREATE_LOCK = 126, + RAND_R_FUNC_NOT_IMPLEMENTED = 101, + RAND_R_FWRITE_ERROR = 123, + RAND_R_GENERATE_ERROR = 112, + RAND_R_INTERNAL_ERROR = 113, + RAND_R_IN_ERROR_STATE = 114, + RAND_R_NOT_A_REGULAR_FILE = 122, + RAND_R_NOT_INSTANTIATED = 115, + RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED = 128, + RAND_R_PARENT_LOCKING_NOT_ENABLED = 130, + RAND_R_PARENT_STRENGTH_TOO_WEAK = 131, + RAND_R_PERSONALISATION_STRING_TOO_LONG = 116, + RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED = 133, + RAND_R_PRNG_NOT_SEEDED = 100, + RAND_R_RANDOM_POOL_OVERFLOW = 125, + RAND_R_RANDOM_POOL_UNDERFLOW = 134, + RAND_R_REQUEST_TOO_LARGE_FOR_DRBG = 117, + RAND_R_RESEED_ERROR = 118, + RAND_R_SELFTEST_FAILURE = 119, + RAND_R_TOO_LITTLE_NONCE_REQUESTED = 135, + RAND_R_TOO_MUCH_NONCE_REQUESTED = 136, + RAND_R_UNSUPPORTED_DRBG_FLAGS = 132, + RAND_R_UNSUPPORTED_DRBG_TYPE = 120, +}; diff --git a/libcrypto_rsa_h.lua b/libcrypto_rsa_h.lua new file mode 100644 index 0000000..dd496f8 --- /dev/null +++ b/libcrypto_rsa_h.lua @@ -0,0 +1,454 @@ + +// csrc/openssl/src/include/openssl/rsa.h +enum { + OPENSSL_RSA_MAX_MODULUS_BITS = 16384, + OPENSSL_RSA_FIPS_MIN_MODULUS_BITS = 1024, + OPENSSL_RSA_SMALL_MODULUS_BITS = 3072, + OPENSSL_RSA_MAX_PUBEXP_BITS = 64, + RSA_3 = 0x3L, + RSA_F4 = 0x10001L, + RSA_ASN1_VERSION_DEFAULT = 0, + RSA_ASN1_VERSION_MULTI = 1, + RSA_DEFAULT_PRIME_NUM = 2, + RSA_METHOD_FLAG_NO_CHECK = 0x0001, + RSA_FLAG_CACHE_PUBLIC = 0x0002, + RSA_FLAG_CACHE_PRIVATE = 0x0004, + RSA_FLAG_BLINDING = 0x0008, + RSA_FLAG_THREAD_SAFE = 0x0010, + RSA_FLAG_EXT_PKEY = 0x0020, + RSA_FLAG_NO_BLINDING = 0x0080, + RSA_FLAG_NO_CONSTTIME = 0x0000, + RSA_FLAG_NO_EXP_CONSTTIME = RSA_FLAG_NO_CONSTTIME, +}; +#define EVP_PKEY_CTX_set_rsa_padding(ctx,pad) RSA_pkey_ctx_ctrl(ctx, -1, EVP_PKEY_CTRL_RSA_PADDING, pad, NULL) +#define EVP_PKEY_CTX_get_rsa_padding(ctx,ppad) RSA_pkey_ctx_ctrl(ctx, -1, EVP_PKEY_CTRL_GET_RSA_PADDING, 0, ppad) +#define EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx,len) RSA_pkey_ctx_ctrl(ctx, (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), EVP_PKEY_CTRL_RSA_PSS_SALTLEN, len, NULL) +enum { + RSA_PSS_SALTLEN_DIGEST = -1, + RSA_PSS_SALTLEN_AUTO = -2, + RSA_PSS_SALTLEN_MAX = -3, + RSA_PSS_SALTLEN_MAX_SIGN = -2, +}; +#define EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(ctx,len) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_RSA_PSS_SALTLEN, len, NULL) +#define EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx,plen) RSA_pkey_ctx_ctrl(ctx, (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN, 0, plen) +#define EVP_PKEY_CTX_set_rsa_keygen_bits(ctx,bits) RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL) +#define EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx,pubexp) RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) +#define EVP_PKEY_CTX_set_rsa_keygen_primes(ctx,primes) RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES, primes, NULL) +#define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx,md) RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)(md)) +#define EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(ctx,md) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)(md)) +#define EVP_PKEY_CTX_set_rsa_oaep_md(ctx,md) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, EVP_PKEY_CTRL_RSA_OAEP_MD, 0, (void *)(md)) +#define EVP_PKEY_CTX_get_rsa_mgf1_md(ctx,pmd) RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)(pmd)) +#define EVP_PKEY_CTX_get_rsa_oaep_md(ctx,pmd) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, EVP_PKEY_CTRL_GET_RSA_OAEP_MD, 0, (void *)(pmd)) +#define EVP_PKEY_CTX_set0_rsa_oaep_label(ctx,l,llen) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, EVP_PKEY_CTRL_RSA_OAEP_LABEL, llen, (void *)(l)) +#define EVP_PKEY_CTX_get0_rsa_oaep_label(ctx,l) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL, 0, (void *)(l)) +#define EVP_PKEY_CTX_set_rsa_pss_keygen_md(ctx,md) EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_MD, 0, (void *)(md)) +enum { + EVP_PKEY_CTRL_RSA_PADDING = (EVP_PKEY_ALG_CTRL + 1), + EVP_PKEY_CTRL_RSA_PSS_SALTLEN = (EVP_PKEY_ALG_CTRL + 2), + EVP_PKEY_CTRL_RSA_KEYGEN_BITS = (EVP_PKEY_ALG_CTRL + 3), + EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP = (EVP_PKEY_ALG_CTRL + 4), + EVP_PKEY_CTRL_RSA_MGF1_MD = (EVP_PKEY_ALG_CTRL + 5), + EVP_PKEY_CTRL_GET_RSA_PADDING = (EVP_PKEY_ALG_CTRL + 6), + EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN = (EVP_PKEY_ALG_CTRL + 7), + EVP_PKEY_CTRL_GET_RSA_MGF1_MD = (EVP_PKEY_ALG_CTRL + 8), + EVP_PKEY_CTRL_RSA_OAEP_MD = (EVP_PKEY_ALG_CTRL + 9), + EVP_PKEY_CTRL_RSA_OAEP_LABEL = (EVP_PKEY_ALG_CTRL + 10), + EVP_PKEY_CTRL_GET_RSA_OAEP_MD = (EVP_PKEY_ALG_CTRL + 11), + EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL = (EVP_PKEY_ALG_CTRL + 12), + EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES = (EVP_PKEY_ALG_CTRL + 13), + RSA_PKCS1_PADDING = 1, + RSA_SSLV23_PADDING = 2, + RSA_NO_PADDING = 3, + RSA_PKCS1_OAEP_PADDING = 4, + RSA_X931_PADDING = 5, + RSA_PKCS1_PSS_PADDING = 6, + RSA_PKCS1_PADDING_SIZE = 11, +}; +#define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg) +#define RSA_get_app_data(s) RSA_get_ex_data(s,0) +RSA *RSA_new(void); +RSA *RSA_new_method(ENGINE *engine); +int RSA_bits(const RSA *rsa); +int RSA_size(const RSA *rsa); +int RSA_security_bits(const RSA *rsa); +int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); +int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); +int RSA_set0_crt_params(RSA *r,BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp); +int RSA_set0_multi_prime_params(RSA *r, BIGNUM *primes[], BIGNUM *exps[], + BIGNUM *coeffs[], int pnum); +void RSA_get0_key(const RSA *r, + const BIGNUM **n, const BIGNUM **e, const BIGNUM **d); +void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q); +int RSA_get_multi_prime_extra_count(const RSA *r); +int RSA_get0_multi_prime_factors(const RSA *r, const BIGNUM *primes[]); +void RSA_get0_crt_params(const RSA *r, + const BIGNUM **dmp1, const BIGNUM **dmq1, + const BIGNUM **iqmp); +int RSA_get0_multi_prime_crt_params(const RSA *r, const BIGNUM *exps[], + const BIGNUM *coeffs[]); +const BIGNUM *RSA_get0_n(const RSA *d); +const BIGNUM *RSA_get0_e(const RSA *d); +const BIGNUM *RSA_get0_d(const RSA *d); +const BIGNUM *RSA_get0_p(const RSA *d); +const BIGNUM *RSA_get0_q(const RSA *d); +const BIGNUM *RSA_get0_dmp1(const RSA *r); +const BIGNUM *RSA_get0_dmq1(const RSA *r); +const BIGNUM *RSA_get0_iqmp(const RSA *r); +void RSA_clear_flags(RSA *r, int flags); +int RSA_test_flags(const RSA *r, int flags); +void RSA_set_flags(RSA *r, int flags); +int RSA_get_version(RSA *r); +ENGINE *RSA_get0_engine(const RSA *r); +RSA *RSA_generate_key(int bits, unsigned long e, void (*callback) (int, int, void *), void *cb_arg) __attribute__ ((deprecated)); +int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); +int RSA_generate_multi_prime_key(RSA *rsa, int bits, int primes, + BIGNUM *e, BN_GENCB *cb); +int RSA_X931_derive_ex(RSA *rsa, BIGNUM *p1, BIGNUM *p2, BIGNUM *q1, + BIGNUM *q2, const BIGNUM *Xp1, const BIGNUM *Xp2, + const BIGNUM *Xp, const BIGNUM *Xq1, const BIGNUM *Xq2, + const BIGNUM *Xq, const BIGNUM *e, BN_GENCB *cb); +int RSA_X931_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e, + BN_GENCB *cb); +int RSA_check_key(const RSA *); +int RSA_check_key_ex(const RSA *, BN_GENCB *cb); +int RSA_public_encrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_private_encrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_public_decrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_private_decrypt(int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +void RSA_free(RSA *r); +int RSA_up_ref(RSA *r); +int RSA_flags(const RSA *r); +void RSA_set_default_method(const RSA_METHOD *meth); +const RSA_METHOD *RSA_get_default_method(void); +const RSA_METHOD *RSA_null_method(void); +const RSA_METHOD *RSA_get_method(const RSA *rsa); +int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); +const RSA_METHOD *RSA_PKCS1_OpenSSL(void); +int RSA_pkey_ctx_ctrl(EVP_PKEY_CTX *ctx, int optype, int cmd, int p1, void *p2); +RSA *d2i_RSAPublicKey(RSA **a, const unsigned char **in, long len); int i2d_RSAPublicKey(const RSA *a, unsigned char **out); const ASN1_ITEM * RSAPublicKey_it(void); +RSA *d2i_RSAPrivateKey(RSA **a, const unsigned char **in, long len); int i2d_RSAPrivateKey(const RSA *a, unsigned char **out); const ASN1_ITEM * RSAPrivateKey_it(void); +typedef struct rsa_pss_params_st { + X509_ALGOR *hashAlgorithm; + X509_ALGOR *maskGenAlgorithm; + ASN1_INTEGER *saltLength; + ASN1_INTEGER *trailerField; + X509_ALGOR *maskHash; +} RSA_PSS_PARAMS; +RSA_PSS_PARAMS *RSA_PSS_PARAMS_new(void); void RSA_PSS_PARAMS_free(RSA_PSS_PARAMS *a); RSA_PSS_PARAMS *d2i_RSA_PSS_PARAMS(RSA_PSS_PARAMS **a, const unsigned char **in, long len); int i2d_RSA_PSS_PARAMS(RSA_PSS_PARAMS *a, unsigned char **out); const ASN1_ITEM * RSA_PSS_PARAMS_it(void); +typedef struct rsa_oaep_params_st { + X509_ALGOR *hashFunc; + X509_ALGOR *maskGenFunc; + X509_ALGOR *pSourceFunc; + X509_ALGOR *maskHash; +} RSA_OAEP_PARAMS; +RSA_OAEP_PARAMS *RSA_OAEP_PARAMS_new(void); void RSA_OAEP_PARAMS_free(RSA_OAEP_PARAMS *a); RSA_OAEP_PARAMS *d2i_RSA_OAEP_PARAMS(RSA_OAEP_PARAMS **a, const unsigned char **in, long len); int i2d_RSA_OAEP_PARAMS(RSA_OAEP_PARAMS *a, unsigned char **out); const ASN1_ITEM * RSA_OAEP_PARAMS_it(void); +int RSA_print_fp(FILE *fp, const RSA *r, int offset); +int RSA_print(BIO *bp, const RSA *r, int offset); +int RSA_sign(int type, const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, RSA *rsa); +int RSA_verify(int type, const unsigned char *m, unsigned int m_length, + const unsigned char *sigbuf, unsigned int siglen, RSA *rsa); +int RSA_sign_ASN1_OCTET_STRING(int type, + const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + RSA *rsa); +int RSA_verify_ASN1_OCTET_STRING(int type, const unsigned char *m, + unsigned int m_length, unsigned char *sigbuf, + unsigned int siglen, RSA *rsa); +int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); +void RSA_blinding_off(RSA *rsa); +BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); +int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, + const unsigned char *f, int fl); +int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, + const unsigned char *f, int fl, + int rsa_len); +int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, + const unsigned char *f, int fl); +int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, + const unsigned char *f, int fl, + int rsa_len); +int PKCS1_MGF1(unsigned char *mask, long len, const unsigned char *seed, + long seedlen, const EVP_MD *dgst); +int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, + const unsigned char *f, int fl, + const unsigned char *p, int pl); +int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len, + const unsigned char *p, int pl); +int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *from, int flen, + const unsigned char *param, int plen, + const EVP_MD *md, const EVP_MD *mgf1md); +int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, + const unsigned char *from, int flen, + int num, const unsigned char *param, + int plen, const EVP_MD *md, + const EVP_MD *mgf1md); +int RSA_padding_add_SSLv23(unsigned char *to, int tlen, + const unsigned char *f, int fl); +int RSA_padding_check_SSLv23(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len); +int RSA_padding_add_none(unsigned char *to, int tlen, const unsigned char *f, + int fl); +int RSA_padding_check_none(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len); +int RSA_padding_add_X931(unsigned char *to, int tlen, const unsigned char *f, + int fl); +int RSA_padding_check_X931(unsigned char *to, int tlen, + const unsigned char *f, int fl, int rsa_len); +int RSA_X931_hash_id(int nid); +int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, + const EVP_MD *Hash, const unsigned char *EM, + int sLen); +int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, + const unsigned char *mHash, const EVP_MD *Hash, + int sLen); +int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, + const EVP_MD *Hash, const EVP_MD *mgf1Hash, + const unsigned char *EM, int sLen); +int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, + const unsigned char *mHash, + const EVP_MD *Hash, const EVP_MD *mgf1Hash, + int sLen); +#define RSA_get_ex_new_index(l,p,newf,dupf,freef) CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_RSA, l, p, newf, dupf, freef) +int RSA_set_ex_data(RSA *r, int idx, void *arg); +void *RSA_get_ex_data(const RSA *r, int idx); +RSA *RSAPublicKey_dup(RSA *rsa); +RSA *RSAPrivateKey_dup(RSA *rsa); +enum { + RSA_FLAG_FIPS_METHOD = 0x0400, + RSA_FLAG_NON_FIPS_ALLOW = 0x0400, + RSA_FLAG_CHECKED = 0x0800, +}; +RSA_METHOD *RSA_meth_new(const char *name, int flags); +void RSA_meth_free(RSA_METHOD *meth); +RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth); +const char *RSA_meth_get0_name(const RSA_METHOD *meth); +int RSA_meth_set1_name(RSA_METHOD *meth, const char *name); +int RSA_meth_get_flags(const RSA_METHOD *meth); +int RSA_meth_set_flags(RSA_METHOD *meth, int flags); +void *RSA_meth_get0_app_data(const RSA_METHOD *meth); +int RSA_meth_set0_app_data(RSA_METHOD *meth, void *app_data); +int (*RSA_meth_get_pub_enc(const RSA_METHOD *meth)) + (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_meth_set_pub_enc(RSA_METHOD *rsa, + int (*pub_enc) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +int (*RSA_meth_get_pub_dec(const RSA_METHOD *meth)) + (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_meth_set_pub_dec(RSA_METHOD *rsa, + int (*pub_dec) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +int (*RSA_meth_get_priv_enc(const RSA_METHOD *meth)) + (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_meth_set_priv_enc(RSA_METHOD *rsa, + int (*priv_enc) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +int (*RSA_meth_get_priv_dec(const RSA_METHOD *meth)) + (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, int padding); +int RSA_meth_set_priv_dec(RSA_METHOD *rsa, + int (*priv_dec) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +int (*RSA_meth_get_mod_exp(const RSA_METHOD *meth)) + (BIGNUM *r0, const BIGNUM *i, RSA *rsa, BN_CTX *ctx); +int RSA_meth_set_mod_exp(RSA_METHOD *rsa, + int (*mod_exp) (BIGNUM *r0, const BIGNUM *i, RSA *rsa, + BN_CTX *ctx)); +int (*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth)) + (BIGNUM *r, const BIGNUM *a, const BIGNUM *p, + const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); +int RSA_meth_set_bn_mod_exp(RSA_METHOD *rsa, + int (*bn_mod_exp) (BIGNUM *r, + const BIGNUM *a, + const BIGNUM *p, + const BIGNUM *m, + BN_CTX *ctx, + BN_MONT_CTX *m_ctx)); +int (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa); +int RSA_meth_set_init(RSA_METHOD *rsa, int (*init) (RSA *rsa)); +int (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa); +int RSA_meth_set_finish(RSA_METHOD *rsa, int (*finish) (RSA *rsa)); +int (*RSA_meth_get_sign(const RSA_METHOD *meth)) + (int type, + const unsigned char *m, unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + const RSA *rsa); +int RSA_meth_set_sign(RSA_METHOD *rsa, + int (*sign) (int type, const unsigned char *m, + unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + const RSA *rsa)); +int (*RSA_meth_get_verify(const RSA_METHOD *meth)) + (int dtype, const unsigned char *m, + unsigned int m_length, const unsigned char *sigbuf, + unsigned int siglen, const RSA *rsa); +int RSA_meth_set_verify(RSA_METHOD *rsa, + int (*verify) (int dtype, const unsigned char *m, + unsigned int m_length, + const unsigned char *sigbuf, + unsigned int siglen, const RSA *rsa)); +int (*RSA_meth_get_keygen(const RSA_METHOD *meth)) + (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); +int RSA_meth_set_keygen(RSA_METHOD *rsa, + int (*keygen) (RSA *rsa, int bits, BIGNUM *e, + BN_GENCB *cb)); +int (*RSA_meth_get_multi_prime_keygen(const RSA_METHOD *meth)) + (RSA *rsa, int bits, int primes, BIGNUM *e, BN_GENCB *cb); +int RSA_meth_set_multi_prime_keygen(RSA_METHOD *meth, + int (*keygen) (RSA *rsa, int bits, + int primes, BIGNUM *e, + BN_GENCB *cb)); + + // csrc/openssl/src/include/openssl/rsaerr.h +int ERR_load_RSA_strings(void); +enum { + RSA_F_CHECK_PADDING_MD = 140, + RSA_F_ENCODE_PKCS1 = 146, + RSA_F_INT_RSA_VERIFY = 145, + RSA_F_OLD_RSA_PRIV_DECODE = 147, + RSA_F_PKEY_PSS_INIT = 165, + RSA_F_PKEY_RSA_CTRL = 143, + RSA_F_PKEY_RSA_CTRL_STR = 144, + RSA_F_PKEY_RSA_SIGN = 142, + RSA_F_PKEY_RSA_VERIFY = 149, + RSA_F_PKEY_RSA_VERIFYRECOVER = 141, + RSA_F_RSA_ALGOR_TO_MD = 156, + RSA_F_RSA_BUILTIN_KEYGEN = 129, + RSA_F_RSA_CHECK_KEY = 123, + RSA_F_RSA_CHECK_KEY_EX = 160, + RSA_F_RSA_CMS_DECRYPT = 159, + RSA_F_RSA_CMS_VERIFY = 158, + RSA_F_RSA_ITEM_VERIFY = 148, + RSA_F_RSA_METH_DUP = 161, + RSA_F_RSA_METH_NEW = 162, + RSA_F_RSA_METH_SET1_NAME = 163, + RSA_F_RSA_MGF1_TO_MD = 157, + RSA_F_RSA_MULTIP_INFO_NEW = 166, + RSA_F_RSA_NEW_METHOD = 106, + RSA_F_RSA_NULL = 124, + RSA_F_RSA_NULL_PRIVATE_DECRYPT = 132, + RSA_F_RSA_NULL_PRIVATE_ENCRYPT = 133, + RSA_F_RSA_NULL_PUBLIC_DECRYPT = 134, + RSA_F_RSA_NULL_PUBLIC_ENCRYPT = 135, + RSA_F_RSA_OSSL_PRIVATE_DECRYPT = 101, + RSA_F_RSA_OSSL_PRIVATE_ENCRYPT = 102, + RSA_F_RSA_OSSL_PUBLIC_DECRYPT = 103, + RSA_F_RSA_OSSL_PUBLIC_ENCRYPT = 104, + RSA_F_RSA_PADDING_ADD_NONE = 107, + RSA_F_RSA_PADDING_ADD_PKCS1_OAEP = 121, + RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 = 154, + RSA_F_RSA_PADDING_ADD_PKCS1_PSS = 125, + RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 = 152, + RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 = 108, + RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 = 109, + RSA_F_RSA_PADDING_ADD_SSLV23 = 110, + RSA_F_RSA_PADDING_ADD_X931 = 127, + RSA_F_RSA_PADDING_CHECK_NONE = 111, + RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP = 122, + RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 = 153, + RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 = 112, + RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 = 113, + RSA_F_RSA_PADDING_CHECK_SSLV23 = 114, + RSA_F_RSA_PADDING_CHECK_X931 = 128, + RSA_F_RSA_PARAM_DECODE = 164, + RSA_F_RSA_PRINT = 115, + RSA_F_RSA_PRINT_FP = 116, + RSA_F_RSA_PRIV_DECODE = 150, + RSA_F_RSA_PRIV_ENCODE = 138, + RSA_F_RSA_PSS_GET_PARAM = 151, + RSA_F_RSA_PSS_TO_CTX = 155, + RSA_F_RSA_PUB_DECODE = 139, + RSA_F_RSA_SETUP_BLINDING = 136, + RSA_F_RSA_SIGN = 117, + RSA_F_RSA_SIGN_ASN1_OCTET_STRING = 118, + RSA_F_RSA_VERIFY = 119, + RSA_F_RSA_VERIFY_ASN1_OCTET_STRING = 120, + RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 = 126, + RSA_F_SETUP_TBUF = 167, + RSA_R_ALGORITHM_MISMATCH = 100, + RSA_R_BAD_E_VALUE = 101, + RSA_R_BAD_FIXED_HEADER_DECRYPT = 102, + RSA_R_BAD_PAD_BYTE_COUNT = 103, + RSA_R_BAD_SIGNATURE = 104, + RSA_R_BLOCK_TYPE_IS_NOT_01 = 106, + RSA_R_BLOCK_TYPE_IS_NOT_02 = 107, + RSA_R_DATA_GREATER_THAN_MOD_LEN = 108, + RSA_R_DATA_TOO_LARGE = 109, + RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE = 110, + RSA_R_DATA_TOO_LARGE_FOR_MODULUS = 132, + RSA_R_DATA_TOO_SMALL = 111, + RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE = 122, + RSA_R_DIGEST_DOES_NOT_MATCH = 158, + RSA_R_DIGEST_NOT_ALLOWED = 145, + RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY = 112, + RSA_R_DMP1_NOT_CONGRUENT_TO_D = 124, + RSA_R_DMQ1_NOT_CONGRUENT_TO_D = 125, + RSA_R_D_E_NOT_CONGRUENT_TO_1 = 123, + RSA_R_FIRST_OCTET_INVALID = 133, + RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE = 144, + RSA_R_INVALID_DIGEST = 157, + RSA_R_INVALID_DIGEST_LENGTH = 143, + RSA_R_INVALID_HEADER = 137, + RSA_R_INVALID_LABEL = 160, + RSA_R_INVALID_MESSAGE_LENGTH = 131, + RSA_R_INVALID_MGF1_MD = 156, + RSA_R_INVALID_MULTI_PRIME_KEY = 167, + RSA_R_INVALID_OAEP_PARAMETERS = 161, + RSA_R_INVALID_PADDING = 138, + RSA_R_INVALID_PADDING_MODE = 141, + RSA_R_INVALID_PSS_PARAMETERS = 149, + RSA_R_INVALID_PSS_SALTLEN = 146, + RSA_R_INVALID_SALT_LENGTH = 150, + RSA_R_INVALID_TRAILER = 139, + RSA_R_INVALID_X931_DIGEST = 142, + RSA_R_IQMP_NOT_INVERSE_OF_Q = 126, + RSA_R_KEY_PRIME_NUM_INVALID = 165, + RSA_R_KEY_SIZE_TOO_SMALL = 120, + RSA_R_LAST_OCTET_INVALID = 134, + RSA_R_MISSING_PRIVATE_KEY = 179, + RSA_R_MGF1_DIGEST_NOT_ALLOWED = 152, + RSA_R_MODULUS_TOO_LARGE = 105, + RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R = 168, + RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D = 169, + RSA_R_MP_R_NOT_PRIME = 170, + RSA_R_NO_PUBLIC_EXPONENT = 140, + RSA_R_NULL_BEFORE_BLOCK_MISSING = 113, + RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES = 172, + RSA_R_N_DOES_NOT_EQUAL_P_Q = 127, + RSA_R_OAEP_DECODING_ERROR = 121, + RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE = 148, + RSA_R_PADDING_CHECK_FAILED = 114, + RSA_R_PKCS_DECODING_ERROR = 159, + RSA_R_PSS_SALTLEN_TOO_SMALL = 164, + RSA_R_P_NOT_PRIME = 128, + RSA_R_Q_NOT_PRIME = 129, + RSA_R_RSA_OPERATIONS_NOT_SUPPORTED = 130, + RSA_R_SLEN_CHECK_FAILED = 136, + RSA_R_SLEN_RECOVERY_FAILED = 135, + RSA_R_SSLV3_ROLLBACK_ATTACK = 115, + RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD = 116, + RSA_R_UNKNOWN_ALGORITHM_TYPE = 117, + RSA_R_UNKNOWN_DIGEST = 166, + RSA_R_UNKNOWN_MASK_DIGEST = 151, + RSA_R_UNKNOWN_PADDING_TYPE = 118, + RSA_R_UNSUPPORTED_ENCRYPTION_TYPE = 162, + RSA_R_UNSUPPORTED_LABEL_SOURCE = 163, + RSA_R_UNSUPPORTED_MASK_ALGORITHM = 153, + RSA_R_UNSUPPORTED_MASK_PARAMETER = 154, + RSA_R_UNSUPPORTED_SIGNATURE_TYPE = 155, + RSA_R_VALUE_MISSING = 147, + RSA_R_WRONG_SIGNATURE_LENGTH = 119, +}; diff --git a/libcrypto_safestack_h.lua b/libcrypto_safestack_h.lua new file mode 100644 index 0000000..9eabd66 --- /dev/null +++ b/libcrypto_safestack_h.lua @@ -0,0 +1,66 @@ + +// csrc/openssl/src/include/openssl/safestack.h +typedef char *OPENSSL_STRING; +typedef const char *OPENSSL_CSTRING; +struct stack_st_OPENSSL_STRING; typedef int (*sk_OPENSSL_STRING_compfunc)(const char * const *a, const char *const *b); typedef void (*sk_OPENSSL_STRING_freefunc)(char *a); typedef char * (*sk_OPENSSL_STRING_copyfunc)(const char *a); static __attribute__((unused)) inline int sk_OPENSSL_STRING_num(const struct stack_st_OPENSSL_STRING *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline char *sk_OPENSSL_STRING_value(const struct stack_st_OPENSSL_STRING *sk, int idx) { return (char *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_OPENSSL_STRING *sk_OPENSSL_STRING_new(sk_OPENSSL_STRING_compfunc compare) { return (struct stack_st_OPENSSL_STRING *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_OPENSSL_STRING *sk_OPENSSL_STRING_new_null(void) { return (struct stack_st_OPENSSL_STRING *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_OPENSSL_STRING *sk_OPENSSL_STRING_new_reserve(sk_OPENSSL_STRING_compfunc compare, int n) { return (struct stack_st_OPENSSL_STRING *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_OPENSSL_STRING_reserve(struct stack_st_OPENSSL_STRING *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_OPENSSL_STRING_free(struct stack_st_OPENSSL_STRING *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_OPENSSL_STRING_zero(struct stack_st_OPENSSL_STRING *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline char *sk_OPENSSL_STRING_delete(struct stack_st_OPENSSL_STRING *sk, int i) { return (char *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline char *sk_OPENSSL_STRING_delete_ptr(struct stack_st_OPENSSL_STRING *sk, char *ptr) { return (char *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_OPENSSL_STRING_push(struct stack_st_OPENSSL_STRING *sk, char *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_OPENSSL_STRING_unshift(struct stack_st_OPENSSL_STRING *sk, char *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline char *sk_OPENSSL_STRING_pop(struct stack_st_OPENSSL_STRING *sk) { return (char *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline char *sk_OPENSSL_STRING_shift(struct stack_st_OPENSSL_STRING *sk) { return (char *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_OPENSSL_STRING_pop_free(struct stack_st_OPENSSL_STRING *sk, sk_OPENSSL_STRING_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_OPENSSL_STRING_insert(struct stack_st_OPENSSL_STRING *sk, char *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline char *sk_OPENSSL_STRING_set(struct stack_st_OPENSSL_STRING *sk, int idx, char *ptr) { return (char *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_OPENSSL_STRING_find(struct stack_st_OPENSSL_STRING *sk, char *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_OPENSSL_STRING_find_ex(struct stack_st_OPENSSL_STRING *sk, char *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_OPENSSL_STRING_sort(struct stack_st_OPENSSL_STRING *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_OPENSSL_STRING_is_sorted(const struct stack_st_OPENSSL_STRING *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_OPENSSL_STRING * sk_OPENSSL_STRING_dup(const struct stack_st_OPENSSL_STRING *sk) { return (struct stack_st_OPENSSL_STRING *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_OPENSSL_STRING *sk_OPENSSL_STRING_deep_copy(const struct stack_st_OPENSSL_STRING *sk, sk_OPENSSL_STRING_copyfunc copyfunc, sk_OPENSSL_STRING_freefunc freefunc) { return (struct stack_st_OPENSSL_STRING *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_OPENSSL_STRING_compfunc sk_OPENSSL_STRING_set_cmp_func(struct stack_st_OPENSSL_STRING *sk, sk_OPENSSL_STRING_compfunc compare) { return (sk_OPENSSL_STRING_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +struct stack_st_OPENSSL_CSTRING; typedef int (*sk_OPENSSL_CSTRING_compfunc)(const char * const *a, const char *const *b); typedef void (*sk_OPENSSL_CSTRING_freefunc)(char *a); typedef char * (*sk_OPENSSL_CSTRING_copyfunc)(const char *a); static __attribute__((unused)) inline int sk_OPENSSL_CSTRING_num(const struct stack_st_OPENSSL_CSTRING *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline const char *sk_OPENSSL_CSTRING_value(const struct stack_st_OPENSSL_CSTRING *sk, int idx) { return (const char *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_OPENSSL_CSTRING *sk_OPENSSL_CSTRING_new(sk_OPENSSL_CSTRING_compfunc compare) { return (struct stack_st_OPENSSL_CSTRING *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_OPENSSL_CSTRING *sk_OPENSSL_CSTRING_new_null(void) { return (struct stack_st_OPENSSL_CSTRING *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_OPENSSL_CSTRING *sk_OPENSSL_CSTRING_new_reserve(sk_OPENSSL_CSTRING_compfunc compare, int n) { return (struct stack_st_OPENSSL_CSTRING *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_OPENSSL_CSTRING_reserve(struct stack_st_OPENSSL_CSTRING *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_OPENSSL_CSTRING_free(struct stack_st_OPENSSL_CSTRING *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_OPENSSL_CSTRING_zero(struct stack_st_OPENSSL_CSTRING *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline const char *sk_OPENSSL_CSTRING_delete(struct stack_st_OPENSSL_CSTRING *sk, int i) { return (const char *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline const char *sk_OPENSSL_CSTRING_delete_ptr(struct stack_st_OPENSSL_CSTRING *sk, const char *ptr) { return (const char *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_OPENSSL_CSTRING_push(struct stack_st_OPENSSL_CSTRING *sk, const char *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_OPENSSL_CSTRING_unshift(struct stack_st_OPENSSL_CSTRING *sk, const char *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline const char *sk_OPENSSL_CSTRING_pop(struct stack_st_OPENSSL_CSTRING *sk) { return (const char *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline const char *sk_OPENSSL_CSTRING_shift(struct stack_st_OPENSSL_CSTRING *sk) { return (const char *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_OPENSSL_CSTRING_pop_free(struct stack_st_OPENSSL_CSTRING *sk, sk_OPENSSL_CSTRING_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_OPENSSL_CSTRING_insert(struct stack_st_OPENSSL_CSTRING *sk, const char *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline const char *sk_OPENSSL_CSTRING_set(struct stack_st_OPENSSL_CSTRING *sk, int idx, const char *ptr) { return (const char *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_OPENSSL_CSTRING_find(struct stack_st_OPENSSL_CSTRING *sk, const char *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_OPENSSL_CSTRING_find_ex(struct stack_st_OPENSSL_CSTRING *sk, const char *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_OPENSSL_CSTRING_sort(struct stack_st_OPENSSL_CSTRING *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_OPENSSL_CSTRING_is_sorted(const struct stack_st_OPENSSL_CSTRING *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_OPENSSL_CSTRING * sk_OPENSSL_CSTRING_dup(const struct stack_st_OPENSSL_CSTRING *sk) { return (struct stack_st_OPENSSL_CSTRING *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_OPENSSL_CSTRING *sk_OPENSSL_CSTRING_deep_copy(const struct stack_st_OPENSSL_CSTRING *sk, sk_OPENSSL_CSTRING_copyfunc copyfunc, sk_OPENSSL_CSTRING_freefunc freefunc) { return (struct stack_st_OPENSSL_CSTRING *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_OPENSSL_CSTRING_compfunc sk_OPENSSL_CSTRING_set_cmp_func(struct stack_st_OPENSSL_CSTRING *sk, sk_OPENSSL_CSTRING_compfunc compare) { return (sk_OPENSSL_CSTRING_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +typedef void *OPENSSL_BLOCK; +struct stack_st_OPENSSL_BLOCK; typedef int (*sk_OPENSSL_BLOCK_compfunc)(const void * const *a, const void *const *b); typedef void (*sk_OPENSSL_BLOCK_freefunc)(void *a); typedef void * (*sk_OPENSSL_BLOCK_copyfunc)(const void *a); static __attribute__((unused)) inline int sk_OPENSSL_BLOCK_num(const struct stack_st_OPENSSL_BLOCK *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void *sk_OPENSSL_BLOCK_value(const struct stack_st_OPENSSL_BLOCK *sk, int idx) { return (void *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_OPENSSL_BLOCK *sk_OPENSSL_BLOCK_new(sk_OPENSSL_BLOCK_compfunc compare) { return (struct stack_st_OPENSSL_BLOCK *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_OPENSSL_BLOCK *sk_OPENSSL_BLOCK_new_null(void) { return (struct stack_st_OPENSSL_BLOCK *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_OPENSSL_BLOCK *sk_OPENSSL_BLOCK_new_reserve(sk_OPENSSL_BLOCK_compfunc compare, int n) { return (struct stack_st_OPENSSL_BLOCK *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_OPENSSL_BLOCK_reserve(struct stack_st_OPENSSL_BLOCK *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_OPENSSL_BLOCK_free(struct stack_st_OPENSSL_BLOCK *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_OPENSSL_BLOCK_zero(struct stack_st_OPENSSL_BLOCK *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void *sk_OPENSSL_BLOCK_delete(struct stack_st_OPENSSL_BLOCK *sk, int i) { return (void *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline void *sk_OPENSSL_BLOCK_delete_ptr(struct stack_st_OPENSSL_BLOCK *sk, void *ptr) { return (void *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_OPENSSL_BLOCK_push(struct stack_st_OPENSSL_BLOCK *sk, void *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_OPENSSL_BLOCK_unshift(struct stack_st_OPENSSL_BLOCK *sk, void *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void *sk_OPENSSL_BLOCK_pop(struct stack_st_OPENSSL_BLOCK *sk) { return (void *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void *sk_OPENSSL_BLOCK_shift(struct stack_st_OPENSSL_BLOCK *sk) { return (void *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_OPENSSL_BLOCK_pop_free(struct stack_st_OPENSSL_BLOCK *sk, sk_OPENSSL_BLOCK_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_OPENSSL_BLOCK_insert(struct stack_st_OPENSSL_BLOCK *sk, void *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline void *sk_OPENSSL_BLOCK_set(struct stack_st_OPENSSL_BLOCK *sk, int idx, void *ptr) { return (void *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_OPENSSL_BLOCK_find(struct stack_st_OPENSSL_BLOCK *sk, void *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_OPENSSL_BLOCK_find_ex(struct stack_st_OPENSSL_BLOCK *sk, void *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_OPENSSL_BLOCK_sort(struct stack_st_OPENSSL_BLOCK *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_OPENSSL_BLOCK_is_sorted(const struct stack_st_OPENSSL_BLOCK *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_OPENSSL_BLOCK * sk_OPENSSL_BLOCK_dup(const struct stack_st_OPENSSL_BLOCK *sk) { return (struct stack_st_OPENSSL_BLOCK *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_OPENSSL_BLOCK *sk_OPENSSL_BLOCK_deep_copy(const struct stack_st_OPENSSL_BLOCK *sk, sk_OPENSSL_BLOCK_copyfunc copyfunc, sk_OPENSSL_BLOCK_freefunc freefunc) { return (struct stack_st_OPENSSL_BLOCK *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_OPENSSL_BLOCK_compfunc sk_OPENSSL_BLOCK_set_cmp_func(struct stack_st_OPENSSL_BLOCK *sk, sk_OPENSSL_BLOCK_compfunc compare) { return (sk_OPENSSL_BLOCK_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } + +// csrc/openssl/src/include/openssl/stack.h +typedef struct stack_st OPENSSL_STACK; +typedef int (*OPENSSL_sk_compfunc)(const void *, const void *); +typedef void (*OPENSSL_sk_freefunc)(void *); +typedef void *(*OPENSSL_sk_copyfunc)(const void *); +int OPENSSL_sk_num(const OPENSSL_STACK *); +void *OPENSSL_sk_value(const OPENSSL_STACK *, int); +void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data); +OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_compfunc cmp); +OPENSSL_STACK *OPENSSL_sk_new_null(void); +OPENSSL_STACK *OPENSSL_sk_new_reserve(OPENSSL_sk_compfunc c, int n); +int OPENSSL_sk_reserve(OPENSSL_STACK *st, int n); +void OPENSSL_sk_free(OPENSSL_STACK *); +void OPENSSL_sk_pop_free(OPENSSL_STACK *st, void (*func) (void *)); +OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *, + OPENSSL_sk_copyfunc c, + OPENSSL_sk_freefunc f); +int OPENSSL_sk_insert(OPENSSL_STACK *sk, const void *data, int where); +void *OPENSSL_sk_delete(OPENSSL_STACK *st, int loc); +void *OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p); +int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data); +int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data); +int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data); +int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data); +void *OPENSSL_sk_shift(OPENSSL_STACK *st); +void *OPENSSL_sk_pop(OPENSSL_STACK *st); +void OPENSSL_sk_zero(OPENSSL_STACK *st); +OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, + OPENSSL_sk_compfunc cmp); +OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *st); +void OPENSSL_sk_sort(OPENSSL_STACK *st); +int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st); +enum { + _STACK = OPENSSL_STACK, + sk_num = OPENSSL_sk_num, + sk_value = OPENSSL_sk_value, + sk_set = OPENSSL_sk_set, + sk_new = OPENSSL_sk_new, + sk_new_null = OPENSSL_sk_new_null, + sk_free = OPENSSL_sk_free, + sk_pop_free = OPENSSL_sk_pop_free, + sk_deep_copy = OPENSSL_sk_deep_copy, + sk_insert = OPENSSL_sk_insert, + sk_delete = OPENSSL_sk_delete, + sk_delete_ptr = OPENSSL_sk_delete_ptr, + sk_find = OPENSSL_sk_find, + sk_find_ex = OPENSSL_sk_find_ex, + sk_push = OPENSSL_sk_push, + sk_unshift = OPENSSL_sk_unshift, + sk_shift = OPENSSL_sk_shift, + sk_pop = OPENSSL_sk_pop, + sk_zero = OPENSSL_sk_zero, + sk_set_cmp_func = OPENSSL_sk_set_cmp_func, + sk_dup = OPENSSL_sk_dup, + sk_sort = OPENSSL_sk_sort, + sk_is_sorted = OPENSSL_sk_is_sorted, +}; diff --git a/libcrypto_sha_h.lua b/libcrypto_sha_h.lua new file mode 100644 index 0000000..59d74dd --- /dev/null +++ b/libcrypto_sha_h.lua @@ -0,0 +1,64 @@ +// csrc/openssl/src/include/openssl/sha.h +enum { + SHA_LONG = unsigned int, + SHA_LBLOCK = 16, + SHA_CBLOCK = (SHA_LBLOCK*4), + SHA_LAST_BLOCK = (SHA_CBLOCK-8), + SHA_DIGEST_LENGTH = 20, +}; +typedef struct SHAstate_st { + unsigned int h0, h1, h2, h3, h4; + unsigned int Nl, Nh; + unsigned int data[16]; + unsigned int num; +} SHA_CTX; +int SHA1_Init(SHA_CTX *c); +int SHA1_Update(SHA_CTX *c, const void *data, size_t len); +int SHA1_Final(unsigned char *md, SHA_CTX *c); +unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); +void SHA1_Transform(SHA_CTX *c, const unsigned char *data); +enum { + SHA256_CBLOCK = (SHA_LBLOCK*4), +}; +typedef struct SHA256state_st { + unsigned int h[8]; + unsigned int Nl, Nh; + unsigned int data[16]; + unsigned int num, md_len; +} SHA256_CTX; +int SHA224_Init(SHA256_CTX *c); +int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); +int SHA224_Final(unsigned char *md, SHA256_CTX *c); +unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); +int SHA256_Init(SHA256_CTX *c); +int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); +int SHA256_Final(unsigned char *md, SHA256_CTX *c); +unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); +void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); +enum { + SHA224_DIGEST_LENGTH = 28, + SHA256_DIGEST_LENGTH = 32, + SHA384_DIGEST_LENGTH = 48, + SHA512_DIGEST_LENGTH = 64, + SHA512_CBLOCK = (SHA_LBLOCK*8), + SHA_LONG64 = unsigned long long, +}; +#define U64(C) C ##ULL +typedef struct SHA512state_st { + unsigned long long h[8]; + unsigned long long Nl, Nh; + union { + unsigned long long d[16]; + unsigned char p[(16*8)]; + } u; + unsigned int num, md_len; +} SHA512_CTX; +int SHA384_Init(SHA512_CTX *c); +int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); +int SHA384_Final(unsigned char *md, SHA512_CTX *c); +unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); +int SHA512_Init(SHA512_CTX *c); +int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); +int SHA512_Final(unsigned char *md, SHA512_CTX *c); +unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); +void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); diff --git a/libcrypto_types_h.lua b/libcrypto_types_h.lua new file mode 100644 index 0000000..9a89e8d --- /dev/null +++ b/libcrypto_types_h.lua @@ -0,0 +1,105 @@ +local ffi = require'ffi' --ossl_typ.h +ffi.cdef[[ +typedef int64_t time_t; +typedef int64_t intmax_t; +typedef uint64_t uintmax_t; + +typedef struct asn1_string_st ASN1_INTEGER; +typedef struct asn1_string_st ASN1_ENUMERATED; +typedef struct asn1_string_st ASN1_BIT_STRING; +typedef struct asn1_string_st ASN1_OCTET_STRING; +typedef struct asn1_string_st ASN1_PRINTABLESTRING; +typedef struct asn1_string_st ASN1_T61STRING; +typedef struct asn1_string_st ASN1_IA5STRING; +typedef struct asn1_string_st ASN1_GENERALSTRING; +typedef struct asn1_string_st ASN1_UNIVERSALSTRING; +typedef struct asn1_string_st ASN1_BMPSTRING; +typedef struct asn1_string_st ASN1_UTCTIME; +typedef struct asn1_string_st ASN1_TIME; +typedef struct asn1_string_st ASN1_GENERALIZEDTIME; +typedef struct asn1_string_st ASN1_VISIBLESTRING; +typedef struct asn1_string_st ASN1_UTF8STRING; +typedef struct asn1_string_st ASN1_STRING; +typedef int ASN1_BOOLEAN; +typedef int ASN1_NULL; +typedef struct asn1_object_st ASN1_OBJECT; +typedef struct ASN1_ITEM_st ASN1_ITEM; +typedef struct asn1_pctx_st ASN1_PCTX; +typedef struct asn1_sctx_st ASN1_SCTX; +struct dane_st; +typedef struct bio_st BIO; +typedef struct bignum_st BIGNUM; +typedef struct bignum_ctx BN_CTX; +typedef struct bn_blinding_st BN_BLINDING; +typedef struct bn_mont_ctx_st BN_MONT_CTX; +typedef struct bn_recp_ctx_st BN_RECP_CTX; +typedef struct bn_gencb_st BN_GENCB; +typedef struct buf_mem_st BUF_MEM; +typedef struct evp_cipher_st EVP_CIPHER; +typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; +typedef struct evp_md_st EVP_MD; +typedef struct evp_md_ctx_st EVP_MD_CTX; +typedef struct evp_pkey_st EVP_PKEY; +typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; +typedef struct evp_pkey_method_st EVP_PKEY_METHOD; +typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; +typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX; +typedef struct hmac_ctx_st HMAC_CTX; +typedef struct dh_st DH; +typedef struct dh_method DH_METHOD; +typedef struct dsa_st DSA; +typedef struct dsa_method DSA_METHOD; +typedef struct rsa_st RSA; +typedef struct rsa_meth_st RSA_METHOD; +typedef struct ec_key_st EC_KEY; +typedef struct ec_key_method_st EC_KEY_METHOD; +typedef struct rand_meth_st RAND_METHOD; +typedef struct rand_drbg_st RAND_DRBG; +typedef struct ssl_dane_st SSL_DANE; +typedef struct x509_st X509; +typedef struct X509_algor_st X509_ALGOR; +typedef struct X509_crl_st X509_CRL; +typedef struct x509_crl_method_st X509_CRL_METHOD; +typedef struct x509_revoked_st X509_REVOKED; +typedef struct X509_name_st X509_NAME; +typedef struct X509_pubkey_st X509_PUBKEY; +typedef struct x509_store_st X509_STORE; +typedef struct x509_store_ctx_st X509_STORE_CTX; +typedef struct x509_object_st X509_OBJECT; +typedef struct x509_lookup_st X509_LOOKUP; +typedef struct x509_lookup_method_st X509_LOOKUP_METHOD; +typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM; +typedef struct x509_sig_info_st X509_SIG_INFO; +typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; +typedef struct v3_ext_ctx X509V3_CTX; +typedef struct conf_st CONF; +typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS; +typedef struct ui_st UI; +typedef struct ui_method_st UI_METHOD; +typedef struct engine_st ENGINE; +typedef struct ssl_st SSL; +typedef struct ssl_ctx_st SSL_CTX; +typedef struct comp_ctx_st COMP_CTX; +typedef struct comp_method_st COMP_METHOD; +typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; +typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; +typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; +typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; +typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; +typedef struct DIST_POINT_st DIST_POINT; +typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; +typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; +typedef struct crypto_ex_data_st CRYPTO_EX_DATA; +typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; +typedef struct ocsp_response_st OCSP_RESPONSE; +typedef struct ocsp_responder_id_st OCSP_RESPID; +typedef struct sct_st SCT; +typedef struct sct_ctx_st SCT_CTX; +typedef struct ctlog_st CTLOG; +typedef struct ctlog_store_st CTLOG_STORE; +typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX; +typedef struct ossl_store_info_st OSSL_STORE_INFO; +typedef struct ossl_store_search_st OSSL_STORE_SEARCH; +typedef intmax_t ossl_intmax_t; +typedef uintmax_t ossl_uintmax_t; +]] diff --git a/libcrypto_ui_h.lua b/libcrypto_ui_h.lua new file mode 100644 index 0000000..6dce993 --- /dev/null +++ b/libcrypto_ui_h.lua @@ -0,0 +1,147 @@ +// csrc/openssl/src/include/openssl/ui.h +UI *UI_new(void); +UI *UI_new_method(const UI_METHOD *method); +void UI_free(UI *ui); +int UI_add_input_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize); +int UI_dup_input_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize); +int UI_add_verify_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize, + const char *test_buf); +int UI_dup_verify_string(UI *ui, const char *prompt, int flags, + char *result_buf, int minsize, int maxsize, + const char *test_buf); +int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, + const char *ok_chars, const char *cancel_chars, + int flags, char *result_buf); +int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, + const char *ok_chars, const char *cancel_chars, + int flags, char *result_buf); +int UI_add_info_string(UI *ui, const char *text); +int UI_dup_info_string(UI *ui, const char *text); +int UI_add_error_string(UI *ui, const char *text); +int UI_dup_error_string(UI *ui, const char *text); +enum { + UI_INPUT_FLAG_ECHO = 0x01, + UI_INPUT_FLAG_DEFAULT_PWD = 0x02, + UI_INPUT_FLAG_USER_BASE = 16, +}; +char *UI_construct_prompt(UI *ui_method, + const char *object_desc, const char *object_name); +void *UI_add_user_data(UI *ui, void *user_data); +int UI_dup_user_data(UI *ui, void *user_data); +void *UI_get0_user_data(UI *ui); +const char *UI_get0_result(UI *ui, int i); +int UI_get_result_length(UI *ui, int i); +int UI_process(UI *ui); +int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); +enum { + UI_CTRL_PRINT_ERRORS = 1, + UI_CTRL_IS_REDOABLE = 2, +}; +#define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg) +#define UI_get_app_data(s) UI_get_ex_data(s,0) +#define UI_get_ex_new_index(l,p,newf,dupf,freef) CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, l, p, newf, dupf, freef) +int UI_set_ex_data(UI *r, int idx, void *arg); +void *UI_get_ex_data(UI *r, int idx); +void UI_set_default_method(const UI_METHOD *meth); +const UI_METHOD *UI_get_default_method(void); +const UI_METHOD *UI_get_method(UI *ui); +const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); +UI_METHOD *UI_OpenSSL(void); +const UI_METHOD *UI_null(void); +typedef struct ui_string_st UI_STRING; +struct stack_st_UI_STRING; typedef int (*sk_UI_STRING_compfunc)(const UI_STRING * const *a, const UI_STRING *const *b); typedef void (*sk_UI_STRING_freefunc)(UI_STRING *a); typedef UI_STRING * (*sk_UI_STRING_copyfunc)(const UI_STRING *a); static __attribute__((unused)) inline int sk_UI_STRING_num(const struct stack_st_UI_STRING *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline UI_STRING *sk_UI_STRING_value(const struct stack_st_UI_STRING *sk, int idx) { return (UI_STRING *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_UI_STRING *sk_UI_STRING_new(sk_UI_STRING_compfunc compare) { return (struct stack_st_UI_STRING *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_UI_STRING *sk_UI_STRING_new_null(void) { return (struct stack_st_UI_STRING *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_UI_STRING *sk_UI_STRING_new_reserve(sk_UI_STRING_compfunc compare, int n) { return (struct stack_st_UI_STRING *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_UI_STRING_reserve(struct stack_st_UI_STRING *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_UI_STRING_free(struct stack_st_UI_STRING *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_UI_STRING_zero(struct stack_st_UI_STRING *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline UI_STRING *sk_UI_STRING_delete(struct stack_st_UI_STRING *sk, int i) { return (UI_STRING *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline UI_STRING *sk_UI_STRING_delete_ptr(struct stack_st_UI_STRING *sk, UI_STRING *ptr) { return (UI_STRING *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_UI_STRING_push(struct stack_st_UI_STRING *sk, UI_STRING *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_UI_STRING_unshift(struct stack_st_UI_STRING *sk, UI_STRING *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline UI_STRING *sk_UI_STRING_pop(struct stack_st_UI_STRING *sk) { return (UI_STRING *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline UI_STRING *sk_UI_STRING_shift(struct stack_st_UI_STRING *sk) { return (UI_STRING *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_UI_STRING_pop_free(struct stack_st_UI_STRING *sk, sk_UI_STRING_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_UI_STRING_insert(struct stack_st_UI_STRING *sk, UI_STRING *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline UI_STRING *sk_UI_STRING_set(struct stack_st_UI_STRING *sk, int idx, UI_STRING *ptr) { return (UI_STRING *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_UI_STRING_find(struct stack_st_UI_STRING *sk, UI_STRING *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_UI_STRING_find_ex(struct stack_st_UI_STRING *sk, UI_STRING *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_UI_STRING_sort(struct stack_st_UI_STRING *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_UI_STRING_is_sorted(const struct stack_st_UI_STRING *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_UI_STRING * sk_UI_STRING_dup(const struct stack_st_UI_STRING *sk) { return (struct stack_st_UI_STRING *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_UI_STRING *sk_UI_STRING_deep_copy(const struct stack_st_UI_STRING *sk, sk_UI_STRING_copyfunc copyfunc, sk_UI_STRING_freefunc freefunc) { return (struct stack_st_UI_STRING *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_UI_STRING_compfunc sk_UI_STRING_set_cmp_func(struct stack_st_UI_STRING *sk, sk_UI_STRING_compfunc compare) { return (sk_UI_STRING_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +enum UI_string_types { + UIT_NONE = 0, + UIT_PROMPT, + UIT_VERIFY, + UIT_BOOLEAN, + UIT_INFO, + UIT_ERROR +}; +UI_METHOD *UI_create_method(const char *name); +void UI_destroy_method(UI_METHOD *ui_method); +int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui)); +int UI_method_set_writer(UI_METHOD *method, + int (*writer) (UI *ui, UI_STRING *uis)); +int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui)); +int UI_method_set_reader(UI_METHOD *method, + int (*reader) (UI *ui, UI_STRING *uis)); +int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui)); +int UI_method_set_data_duplicator(UI_METHOD *method, + void *(*duplicator) (UI *ui, void *ui_data), + void (*destructor)(UI *ui, void *ui_data)); +int UI_method_set_prompt_constructor(UI_METHOD *method, + char *(*prompt_constructor) (UI *ui, + const char + *object_desc, + const char + *object_name)); +int UI_method_set_ex_data(UI_METHOD *method, int idx, void *data); +int (*UI_method_get_opener(const UI_METHOD *method)) (UI *); +int (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING *); +int (*UI_method_get_flusher(const UI_METHOD *method)) (UI *); +int (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING *); +int (*UI_method_get_closer(const UI_METHOD *method)) (UI *); +char *(*UI_method_get_prompt_constructor(const UI_METHOD *method)) + (UI *, const char *, const char *); +void *(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI *, void *); +void (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *, void *); +const void *UI_method_get_ex_data(const UI_METHOD *method, int idx); +enum UI_string_types UI_get_string_type(UI_STRING *uis); +int UI_get_input_flags(UI_STRING *uis); +const char *UI_get0_output_string(UI_STRING *uis); +const char *UI_get0_action_string(UI_STRING *uis); +const char *UI_get0_result_string(UI_STRING *uis); +int UI_get_result_string_length(UI_STRING *uis); +const char *UI_get0_test_string(UI_STRING *uis); +int UI_get_result_minsize(UI_STRING *uis); +int UI_get_result_maxsize(UI_STRING *uis); +int UI_set_result(UI *ui, UI_STRING *uis, const char *result); +int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int len); +int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, + int verify); +int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, + int verify); +UI_METHOD *UI_UTIL_wrap_read_pem_callback(pem_password_cb *cb, int rwflag); + +// csrc/openssl/src/include/openssl/uierr.h +int ERR_load_UI_strings(void); +enum { + UI_F_CLOSE_CONSOLE = 115, + UI_F_ECHO_CONSOLE = 116, + UI_F_GENERAL_ALLOCATE_BOOLEAN = 108, + UI_F_GENERAL_ALLOCATE_PROMPT = 109, + UI_F_NOECHO_CONSOLE = 117, + UI_F_OPEN_CONSOLE = 114, + UI_F_UI_CONSTRUCT_PROMPT = 121, + UI_F_UI_CREATE_METHOD = 112, + UI_F_UI_CTRL = 111, + UI_F_UI_DUP_ERROR_STRING = 101, + UI_F_UI_DUP_INFO_STRING = 102, + UI_F_UI_DUP_INPUT_BOOLEAN = 110, + UI_F_UI_DUP_INPUT_STRING = 103, + UI_F_UI_DUP_USER_DATA = 118, + UI_F_UI_DUP_VERIFY_STRING = 106, + UI_F_UI_GET0_RESULT = 107, + UI_F_UI_GET_RESULT_LENGTH = 119, + UI_F_UI_NEW_METHOD = 104, + UI_F_UI_PROCESS = 113, + UI_F_UI_SET_RESULT = 105, + UI_F_UI_SET_RESULT_EX = 120, + UI_R_COMMON_OK_AND_CANCEL_CHARACTERS = 104, + UI_R_INDEX_TOO_LARGE = 102, + UI_R_INDEX_TOO_SMALL = 103, + UI_R_NO_RESULT_BUFFER = 105, + UI_R_PROCESSING_ERROR = 107, + UI_R_RESULT_TOO_LARGE = 100, + UI_R_RESULT_TOO_SMALL = 101, + UI_R_SYSASSIGN_ERROR = 109, + UI_R_SYSDASSGN_ERROR = 110, + UI_R_SYSQIOW_ERROR = 111, + UI_R_UNKNOWN_CONTROL_COMMAND = 106, + UI_R_UNKNOWN_TTYGET_ERRNO_VALUE = 108, + UI_R_USER_DATA_DUPLICATION_UNSUPPORTED = 112, +}; diff --git a/libcrypto_x509_h.lua b/libcrypto_x509_h.lua new file mode 100644 index 0000000..91742da --- /dev/null +++ b/libcrypto_x509_h.lua @@ -0,0 +1,852 @@ +// csrc/openssl/src/include/openssl/x509.h +enum { + X509_SIG_INFO_VALID = 0x1, + X509_SIG_INFO_TLS = 0x2, + X509_FILETYPE_PEM = 1, + X509_FILETYPE_ASN1 = 2, + X509_FILETYPE_DEFAULT = 3, + X509v3_KU_DIGITAL_SIGNATURE = 0x0080, + X509v3_KU_NON_REPUDIATION = 0x0040, + X509v3_KU_KEY_ENCIPHERMENT = 0x0020, + X509v3_KU_DATA_ENCIPHERMENT = 0x0010, + X509v3_KU_KEY_AGREEMENT = 0x0008, + X509v3_KU_KEY_CERT_SIGN = 0x0004, + X509v3_KU_CRL_SIGN = 0x0002, + X509v3_KU_ENCIPHER_ONLY = 0x0001, + X509v3_KU_DECIPHER_ONLY = 0x8000, + X509v3_KU_UNDEF = 0xffff, +}; +struct X509_algor_st { + ASN1_OBJECT *algorithm; + ASN1_TYPE *parameter; +} ; +typedef struct stack_st_X509_ALGOR X509_ALGORS; +typedef struct X509_val_st { + ASN1_TIME *notBefore; + ASN1_TIME *notAfter; +} X509_VAL; +typedef struct X509_sig_st X509_SIG; +typedef struct X509_name_entry_st X509_NAME_ENTRY; +struct stack_st_X509_NAME_ENTRY; typedef int (*sk_X509_NAME_ENTRY_compfunc)(const X509_NAME_ENTRY * const *a, const X509_NAME_ENTRY *const *b); typedef void (*sk_X509_NAME_ENTRY_freefunc)(X509_NAME_ENTRY *a); typedef X509_NAME_ENTRY * (*sk_X509_NAME_ENTRY_copyfunc)(const X509_NAME_ENTRY *a); static __attribute__((unused)) inline int sk_X509_NAME_ENTRY_num(const struct stack_st_X509_NAME_ENTRY *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_NAME_ENTRY *sk_X509_NAME_ENTRY_value(const struct stack_st_X509_NAME_ENTRY *sk, int idx) { return (X509_NAME_ENTRY *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509_NAME_ENTRY *sk_X509_NAME_ENTRY_new(sk_X509_NAME_ENTRY_compfunc compare) { return (struct stack_st_X509_NAME_ENTRY *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509_NAME_ENTRY *sk_X509_NAME_ENTRY_new_null(void) { return (struct stack_st_X509_NAME_ENTRY *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509_NAME_ENTRY *sk_X509_NAME_ENTRY_new_reserve(sk_X509_NAME_ENTRY_compfunc compare, int n) { return (struct stack_st_X509_NAME_ENTRY *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_NAME_ENTRY_reserve(struct stack_st_X509_NAME_ENTRY *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_NAME_ENTRY_free(struct stack_st_X509_NAME_ENTRY *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_NAME_ENTRY_zero(struct stack_st_X509_NAME_ENTRY *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_NAME_ENTRY *sk_X509_NAME_ENTRY_delete(struct stack_st_X509_NAME_ENTRY *sk, int i) { return (X509_NAME_ENTRY *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509_NAME_ENTRY *sk_X509_NAME_ENTRY_delete_ptr(struct stack_st_X509_NAME_ENTRY *sk, X509_NAME_ENTRY *ptr) { return (X509_NAME_ENTRY *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_NAME_ENTRY_push(struct stack_st_X509_NAME_ENTRY *sk, X509_NAME_ENTRY *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_NAME_ENTRY_unshift(struct stack_st_X509_NAME_ENTRY *sk, X509_NAME_ENTRY *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509_NAME_ENTRY *sk_X509_NAME_ENTRY_pop(struct stack_st_X509_NAME_ENTRY *sk) { return (X509_NAME_ENTRY *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_NAME_ENTRY *sk_X509_NAME_ENTRY_shift(struct stack_st_X509_NAME_ENTRY *sk) { return (X509_NAME_ENTRY *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_NAME_ENTRY_pop_free(struct stack_st_X509_NAME_ENTRY *sk, sk_X509_NAME_ENTRY_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_NAME_ENTRY_insert(struct stack_st_X509_NAME_ENTRY *sk, X509_NAME_ENTRY *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509_NAME_ENTRY *sk_X509_NAME_ENTRY_set(struct stack_st_X509_NAME_ENTRY *sk, int idx, X509_NAME_ENTRY *ptr) { return (X509_NAME_ENTRY *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_NAME_ENTRY_find(struct stack_st_X509_NAME_ENTRY *sk, X509_NAME_ENTRY *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_NAME_ENTRY_find_ex(struct stack_st_X509_NAME_ENTRY *sk, X509_NAME_ENTRY *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_NAME_ENTRY_sort(struct stack_st_X509_NAME_ENTRY *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_NAME_ENTRY_is_sorted(const struct stack_st_X509_NAME_ENTRY *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_NAME_ENTRY * sk_X509_NAME_ENTRY_dup(const struct stack_st_X509_NAME_ENTRY *sk) { return (struct stack_st_X509_NAME_ENTRY *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_NAME_ENTRY *sk_X509_NAME_ENTRY_deep_copy(const struct stack_st_X509_NAME_ENTRY *sk, sk_X509_NAME_ENTRY_copyfunc copyfunc, sk_X509_NAME_ENTRY_freefunc freefunc) { return (struct stack_st_X509_NAME_ENTRY *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_NAME_ENTRY_compfunc sk_X509_NAME_ENTRY_set_cmp_func(struct stack_st_X509_NAME_ENTRY *sk, sk_X509_NAME_ENTRY_compfunc compare) { return (sk_X509_NAME_ENTRY_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +struct stack_st_X509_NAME; typedef int (*sk_X509_NAME_compfunc)(const X509_NAME * const *a, const X509_NAME *const *b); typedef void (*sk_X509_NAME_freefunc)(X509_NAME *a); typedef X509_NAME * (*sk_X509_NAME_copyfunc)(const X509_NAME *a); static __attribute__((unused)) inline int sk_X509_NAME_num(const struct stack_st_X509_NAME *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_NAME *sk_X509_NAME_value(const struct stack_st_X509_NAME *sk, int idx) { return (X509_NAME *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509_NAME *sk_X509_NAME_new(sk_X509_NAME_compfunc compare) { return (struct stack_st_X509_NAME *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509_NAME *sk_X509_NAME_new_null(void) { return (struct stack_st_X509_NAME *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509_NAME *sk_X509_NAME_new_reserve(sk_X509_NAME_compfunc compare, int n) { return (struct stack_st_X509_NAME *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_NAME_reserve(struct stack_st_X509_NAME *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_NAME_free(struct stack_st_X509_NAME *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_NAME_zero(struct stack_st_X509_NAME *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_NAME *sk_X509_NAME_delete(struct stack_st_X509_NAME *sk, int i) { return (X509_NAME *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509_NAME *sk_X509_NAME_delete_ptr(struct stack_st_X509_NAME *sk, X509_NAME *ptr) { return (X509_NAME *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_NAME_push(struct stack_st_X509_NAME *sk, X509_NAME *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_NAME_unshift(struct stack_st_X509_NAME *sk, X509_NAME *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509_NAME *sk_X509_NAME_pop(struct stack_st_X509_NAME *sk) { return (X509_NAME *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_NAME *sk_X509_NAME_shift(struct stack_st_X509_NAME *sk) { return (X509_NAME *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_NAME_pop_free(struct stack_st_X509_NAME *sk, sk_X509_NAME_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_NAME_insert(struct stack_st_X509_NAME *sk, X509_NAME *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509_NAME *sk_X509_NAME_set(struct stack_st_X509_NAME *sk, int idx, X509_NAME *ptr) { return (X509_NAME *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_NAME_find(struct stack_st_X509_NAME *sk, X509_NAME *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_NAME_find_ex(struct stack_st_X509_NAME *sk, X509_NAME *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_NAME_sort(struct stack_st_X509_NAME *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_NAME_is_sorted(const struct stack_st_X509_NAME *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_NAME * sk_X509_NAME_dup(const struct stack_st_X509_NAME *sk) { return (struct stack_st_X509_NAME *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_NAME *sk_X509_NAME_deep_copy(const struct stack_st_X509_NAME *sk, sk_X509_NAME_copyfunc copyfunc, sk_X509_NAME_freefunc freefunc) { return (struct stack_st_X509_NAME *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_NAME_compfunc sk_X509_NAME_set_cmp_func(struct stack_st_X509_NAME *sk, sk_X509_NAME_compfunc compare) { return (sk_X509_NAME_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +enum { + X509_EX_V_NETSCAPE_HACK = 0x8000, + X509_EX_V_INIT = 0x0001, +}; +typedef struct X509_extension_st X509_EXTENSION; +typedef struct stack_st_X509_EXTENSION X509_EXTENSIONS; +struct stack_st_X509_EXTENSION; typedef int (*sk_X509_EXTENSION_compfunc)(const X509_EXTENSION * const *a, const X509_EXTENSION *const *b); typedef void (*sk_X509_EXTENSION_freefunc)(X509_EXTENSION *a); typedef X509_EXTENSION * (*sk_X509_EXTENSION_copyfunc)(const X509_EXTENSION *a); static __attribute__((unused)) inline int sk_X509_EXTENSION_num(const struct stack_st_X509_EXTENSION *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_EXTENSION *sk_X509_EXTENSION_value(const struct stack_st_X509_EXTENSION *sk, int idx) { return (X509_EXTENSION *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509_EXTENSION *sk_X509_EXTENSION_new(sk_X509_EXTENSION_compfunc compare) { return (struct stack_st_X509_EXTENSION *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509_EXTENSION *sk_X509_EXTENSION_new_null(void) { return (struct stack_st_X509_EXTENSION *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509_EXTENSION *sk_X509_EXTENSION_new_reserve(sk_X509_EXTENSION_compfunc compare, int n) { return (struct stack_st_X509_EXTENSION *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_EXTENSION_reserve(struct stack_st_X509_EXTENSION *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_EXTENSION_free(struct stack_st_X509_EXTENSION *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_EXTENSION_zero(struct stack_st_X509_EXTENSION *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_EXTENSION *sk_X509_EXTENSION_delete(struct stack_st_X509_EXTENSION *sk, int i) { return (X509_EXTENSION *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509_EXTENSION *sk_X509_EXTENSION_delete_ptr(struct stack_st_X509_EXTENSION *sk, X509_EXTENSION *ptr) { return (X509_EXTENSION *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_EXTENSION_push(struct stack_st_X509_EXTENSION *sk, X509_EXTENSION *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_EXTENSION_unshift(struct stack_st_X509_EXTENSION *sk, X509_EXTENSION *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509_EXTENSION *sk_X509_EXTENSION_pop(struct stack_st_X509_EXTENSION *sk) { return (X509_EXTENSION *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_EXTENSION *sk_X509_EXTENSION_shift(struct stack_st_X509_EXTENSION *sk) { return (X509_EXTENSION *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_EXTENSION_pop_free(struct stack_st_X509_EXTENSION *sk, sk_X509_EXTENSION_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_EXTENSION_insert(struct stack_st_X509_EXTENSION *sk, X509_EXTENSION *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509_EXTENSION *sk_X509_EXTENSION_set(struct stack_st_X509_EXTENSION *sk, int idx, X509_EXTENSION *ptr) { return (X509_EXTENSION *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_EXTENSION_find(struct stack_st_X509_EXTENSION *sk, X509_EXTENSION *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_EXTENSION_find_ex(struct stack_st_X509_EXTENSION *sk, X509_EXTENSION *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_EXTENSION_sort(struct stack_st_X509_EXTENSION *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_EXTENSION_is_sorted(const struct stack_st_X509_EXTENSION *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_EXTENSION * sk_X509_EXTENSION_dup(const struct stack_st_X509_EXTENSION *sk) { return (struct stack_st_X509_EXTENSION *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_EXTENSION *sk_X509_EXTENSION_deep_copy(const struct stack_st_X509_EXTENSION *sk, sk_X509_EXTENSION_copyfunc copyfunc, sk_X509_EXTENSION_freefunc freefunc) { return (struct stack_st_X509_EXTENSION *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_EXTENSION_compfunc sk_X509_EXTENSION_set_cmp_func(struct stack_st_X509_EXTENSION *sk, sk_X509_EXTENSION_compfunc compare) { return (sk_X509_EXTENSION_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +typedef struct x509_attributes_st X509_ATTRIBUTE; +struct stack_st_X509_ATTRIBUTE; typedef int (*sk_X509_ATTRIBUTE_compfunc)(const X509_ATTRIBUTE * const *a, const X509_ATTRIBUTE *const *b); typedef void (*sk_X509_ATTRIBUTE_freefunc)(X509_ATTRIBUTE *a); typedef X509_ATTRIBUTE * (*sk_X509_ATTRIBUTE_copyfunc)(const X509_ATTRIBUTE *a); static __attribute__((unused)) inline int sk_X509_ATTRIBUTE_num(const struct stack_st_X509_ATTRIBUTE *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_ATTRIBUTE *sk_X509_ATTRIBUTE_value(const struct stack_st_X509_ATTRIBUTE *sk, int idx) { return (X509_ATTRIBUTE *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509_ATTRIBUTE *sk_X509_ATTRIBUTE_new(sk_X509_ATTRIBUTE_compfunc compare) { return (struct stack_st_X509_ATTRIBUTE *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509_ATTRIBUTE *sk_X509_ATTRIBUTE_new_null(void) { return (struct stack_st_X509_ATTRIBUTE *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509_ATTRIBUTE *sk_X509_ATTRIBUTE_new_reserve(sk_X509_ATTRIBUTE_compfunc compare, int n) { return (struct stack_st_X509_ATTRIBUTE *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_ATTRIBUTE_reserve(struct stack_st_X509_ATTRIBUTE *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_ATTRIBUTE_free(struct stack_st_X509_ATTRIBUTE *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_ATTRIBUTE_zero(struct stack_st_X509_ATTRIBUTE *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_ATTRIBUTE *sk_X509_ATTRIBUTE_delete(struct stack_st_X509_ATTRIBUTE *sk, int i) { return (X509_ATTRIBUTE *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509_ATTRIBUTE *sk_X509_ATTRIBUTE_delete_ptr(struct stack_st_X509_ATTRIBUTE *sk, X509_ATTRIBUTE *ptr) { return (X509_ATTRIBUTE *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_ATTRIBUTE_push(struct stack_st_X509_ATTRIBUTE *sk, X509_ATTRIBUTE *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_ATTRIBUTE_unshift(struct stack_st_X509_ATTRIBUTE *sk, X509_ATTRIBUTE *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509_ATTRIBUTE *sk_X509_ATTRIBUTE_pop(struct stack_st_X509_ATTRIBUTE *sk) { return (X509_ATTRIBUTE *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_ATTRIBUTE *sk_X509_ATTRIBUTE_shift(struct stack_st_X509_ATTRIBUTE *sk) { return (X509_ATTRIBUTE *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_ATTRIBUTE_pop_free(struct stack_st_X509_ATTRIBUTE *sk, sk_X509_ATTRIBUTE_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_ATTRIBUTE_insert(struct stack_st_X509_ATTRIBUTE *sk, X509_ATTRIBUTE *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509_ATTRIBUTE *sk_X509_ATTRIBUTE_set(struct stack_st_X509_ATTRIBUTE *sk, int idx, X509_ATTRIBUTE *ptr) { return (X509_ATTRIBUTE *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_ATTRIBUTE_find(struct stack_st_X509_ATTRIBUTE *sk, X509_ATTRIBUTE *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_ATTRIBUTE_find_ex(struct stack_st_X509_ATTRIBUTE *sk, X509_ATTRIBUTE *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_ATTRIBUTE_sort(struct stack_st_X509_ATTRIBUTE *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_ATTRIBUTE_is_sorted(const struct stack_st_X509_ATTRIBUTE *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_ATTRIBUTE * sk_X509_ATTRIBUTE_dup(const struct stack_st_X509_ATTRIBUTE *sk) { return (struct stack_st_X509_ATTRIBUTE *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_ATTRIBUTE *sk_X509_ATTRIBUTE_deep_copy(const struct stack_st_X509_ATTRIBUTE *sk, sk_X509_ATTRIBUTE_copyfunc copyfunc, sk_X509_ATTRIBUTE_freefunc freefunc) { return (struct stack_st_X509_ATTRIBUTE *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_ATTRIBUTE_compfunc sk_X509_ATTRIBUTE_set_cmp_func(struct stack_st_X509_ATTRIBUTE *sk, sk_X509_ATTRIBUTE_compfunc compare) { return (sk_X509_ATTRIBUTE_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +typedef struct X509_req_info_st X509_REQ_INFO; +typedef struct X509_req_st X509_REQ; +typedef struct x509_cert_aux_st X509_CERT_AUX; +typedef struct x509_cinf_st X509_CINF; +struct stack_st_X509; typedef int (*sk_X509_compfunc)(const X509 * const *a, const X509 *const *b); typedef void (*sk_X509_freefunc)(X509 *a); typedef X509 * (*sk_X509_copyfunc)(const X509 *a); static __attribute__((unused)) inline int sk_X509_num(const struct stack_st_X509 *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509 *sk_X509_value(const struct stack_st_X509 *sk, int idx) { return (X509 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509 *sk_X509_new(sk_X509_compfunc compare) { return (struct stack_st_X509 *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509 *sk_X509_new_null(void) { return (struct stack_st_X509 *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509 *sk_X509_new_reserve(sk_X509_compfunc compare, int n) { return (struct stack_st_X509 *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_reserve(struct stack_st_X509 *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_free(struct stack_st_X509 *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_zero(struct stack_st_X509 *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509 *sk_X509_delete(struct stack_st_X509 *sk, int i) { return (X509 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509 *sk_X509_delete_ptr(struct stack_st_X509 *sk, X509 *ptr) { return (X509 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_push(struct stack_st_X509 *sk, X509 *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_unshift(struct stack_st_X509 *sk, X509 *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509 *sk_X509_pop(struct stack_st_X509 *sk) { return (X509 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509 *sk_X509_shift(struct stack_st_X509 *sk) { return (X509 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_pop_free(struct stack_st_X509 *sk, sk_X509_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_insert(struct stack_st_X509 *sk, X509 *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509 *sk_X509_set(struct stack_st_X509 *sk, int idx, X509 *ptr) { return (X509 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_find(struct stack_st_X509 *sk, X509 *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_find_ex(struct stack_st_X509 *sk, X509 *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_sort(struct stack_st_X509 *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_is_sorted(const struct stack_st_X509 *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509 * sk_X509_dup(const struct stack_st_X509 *sk) { return (struct stack_st_X509 *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509 *sk_X509_deep_copy(const struct stack_st_X509 *sk, sk_X509_copyfunc copyfunc, sk_X509_freefunc freefunc) { return (struct stack_st_X509 *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_compfunc sk_X509_set_cmp_func(struct stack_st_X509 *sk, sk_X509_compfunc compare) { return (sk_X509_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +typedef struct x509_trust_st { + int trust; + int flags; + int (*check_trust) (struct x509_trust_st *, X509 *, int); + char *name; + int arg1; + void *arg2; +} X509_TRUST; +struct stack_st_X509_TRUST; typedef int (*sk_X509_TRUST_compfunc)(const X509_TRUST * const *a, const X509_TRUST *const *b); typedef void (*sk_X509_TRUST_freefunc)(X509_TRUST *a); typedef X509_TRUST * (*sk_X509_TRUST_copyfunc)(const X509_TRUST *a); static __attribute__((unused)) inline int sk_X509_TRUST_num(const struct stack_st_X509_TRUST *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_TRUST *sk_X509_TRUST_value(const struct stack_st_X509_TRUST *sk, int idx) { return (X509_TRUST *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509_TRUST *sk_X509_TRUST_new(sk_X509_TRUST_compfunc compare) { return (struct stack_st_X509_TRUST *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509_TRUST *sk_X509_TRUST_new_null(void) { return (struct stack_st_X509_TRUST *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509_TRUST *sk_X509_TRUST_new_reserve(sk_X509_TRUST_compfunc compare, int n) { return (struct stack_st_X509_TRUST *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_TRUST_reserve(struct stack_st_X509_TRUST *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_TRUST_free(struct stack_st_X509_TRUST *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_TRUST_zero(struct stack_st_X509_TRUST *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_TRUST *sk_X509_TRUST_delete(struct stack_st_X509_TRUST *sk, int i) { return (X509_TRUST *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509_TRUST *sk_X509_TRUST_delete_ptr(struct stack_st_X509_TRUST *sk, X509_TRUST *ptr) { return (X509_TRUST *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_TRUST_push(struct stack_st_X509_TRUST *sk, X509_TRUST *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_TRUST_unshift(struct stack_st_X509_TRUST *sk, X509_TRUST *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509_TRUST *sk_X509_TRUST_pop(struct stack_st_X509_TRUST *sk) { return (X509_TRUST *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_TRUST *sk_X509_TRUST_shift(struct stack_st_X509_TRUST *sk) { return (X509_TRUST *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_TRUST_pop_free(struct stack_st_X509_TRUST *sk, sk_X509_TRUST_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_TRUST_insert(struct stack_st_X509_TRUST *sk, X509_TRUST *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509_TRUST *sk_X509_TRUST_set(struct stack_st_X509_TRUST *sk, int idx, X509_TRUST *ptr) { return (X509_TRUST *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_TRUST_find(struct stack_st_X509_TRUST *sk, X509_TRUST *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_TRUST_find_ex(struct stack_st_X509_TRUST *sk, X509_TRUST *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_TRUST_sort(struct stack_st_X509_TRUST *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_TRUST_is_sorted(const struct stack_st_X509_TRUST *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_TRUST * sk_X509_TRUST_dup(const struct stack_st_X509_TRUST *sk) { return (struct stack_st_X509_TRUST *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_TRUST *sk_X509_TRUST_deep_copy(const struct stack_st_X509_TRUST *sk, sk_X509_TRUST_copyfunc copyfunc, sk_X509_TRUST_freefunc freefunc) { return (struct stack_st_X509_TRUST *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_TRUST_compfunc sk_X509_TRUST_set_cmp_func(struct stack_st_X509_TRUST *sk, sk_X509_TRUST_compfunc compare) { return (sk_X509_TRUST_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +enum { + X509_TRUST_DEFAULT = 0, + X509_TRUST_COMPAT = 1, + X509_TRUST_SSL_CLIENT = 2, + X509_TRUST_SSL_SERVER = 3, + X509_TRUST_EMAIL = 4, + X509_TRUST_OBJECT_SIGN = 5, + X509_TRUST_OCSP_SIGN = 6, + X509_TRUST_OCSP_REQUEST = 7, + X509_TRUST_TSA = 8, + X509_TRUST_MIN = 1, + X509_TRUST_MAX = 8, + X509_TRUST_DYNAMIC = (1U << 0), + X509_TRUST_DYNAMIC_NAME = (1U << 1), + X509_TRUST_NO_SS_COMPAT = (1U << 2), + X509_TRUST_DO_SS_COMPAT = (1U << 3), + X509_TRUST_OK_ANY_EKU = (1U << 4), + X509_TRUST_TRUSTED = 1, + X509_TRUST_REJECTED = 2, + X509_TRUST_UNTRUSTED = 3, + X509_FLAG_COMPAT = 0, + X509_FLAG_NO_HEADER = 1L, + X509_FLAG_NO_VERSION = (1L << 1), + X509_FLAG_NO_SERIAL = (1L << 2), + X509_FLAG_NO_SIGNAME = (1L << 3), + X509_FLAG_NO_ISSUER = (1L << 4), + X509_FLAG_NO_VALIDITY = (1L << 5), + X509_FLAG_NO_SUBJECT = (1L << 6), + X509_FLAG_NO_PUBKEY = (1L << 7), + X509_FLAG_NO_EXTENSIONS = (1L << 8), + X509_FLAG_NO_SIGDUMP = (1L << 9), + X509_FLAG_NO_AUX = (1L << 10), + X509_FLAG_NO_ATTRIBUTES = (1L << 11), + X509_FLAG_NO_IDS = (1L << 12), + XN_FLAG_SEP_MASK = (0xf << 16), + XN_FLAG_COMPAT = 0, + XN_FLAG_SEP_COMMA_PLUS = (1 << 16), + XN_FLAG_SEP_CPLUS_SPC = (2 << 16), + XN_FLAG_SEP_SPLUS_SPC = (3 << 16), + XN_FLAG_SEP_MULTILINE = (4 << 16), + XN_FLAG_DN_REV = (1 << 20), + XN_FLAG_FN_MASK = (0x3 << 21), + XN_FLAG_FN_SN = 0, + XN_FLAG_FN_LN = (1 << 21), + XN_FLAG_FN_OID = (2 << 21), + XN_FLAG_FN_NONE = (3 << 21), + XN_FLAG_SPC_EQ = (1 << 23), + XN_FLAG_DUMP_UNKNOWN_FIELDS = (1 << 24), + XN_FLAG_FN_ALIGN = (1 << 25), + XN_FLAG_RFC2253 = (ASN1_STRFLGS_RFC2253 | XN_FLAG_SEP_COMMA_PLUS | XN_FLAG_DN_REV | XN_FLAG_FN_SN | XN_FLAG_DUMP_UNKNOWN_FIELDS), + XN_FLAG_ONELINE = (ASN1_STRFLGS_RFC2253 | ASN1_STRFLGS_ESC_QUOTE | XN_FLAG_SEP_CPLUS_SPC | XN_FLAG_SPC_EQ | XN_FLAG_FN_SN), + XN_FLAG_MULTILINE = (ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB | XN_FLAG_SEP_MULTILINE | XN_FLAG_SPC_EQ | XN_FLAG_FN_LN | XN_FLAG_FN_ALIGN), +}; +struct stack_st_X509_REVOKED; typedef int (*sk_X509_REVOKED_compfunc)(const X509_REVOKED * const *a, const X509_REVOKED *const *b); typedef void (*sk_X509_REVOKED_freefunc)(X509_REVOKED *a); typedef X509_REVOKED * (*sk_X509_REVOKED_copyfunc)(const X509_REVOKED *a); static __attribute__((unused)) inline int sk_X509_REVOKED_num(const struct stack_st_X509_REVOKED *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_REVOKED *sk_X509_REVOKED_value(const struct stack_st_X509_REVOKED *sk, int idx) { return (X509_REVOKED *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509_REVOKED *sk_X509_REVOKED_new(sk_X509_REVOKED_compfunc compare) { return (struct stack_st_X509_REVOKED *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509_REVOKED *sk_X509_REVOKED_new_null(void) { return (struct stack_st_X509_REVOKED *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509_REVOKED *sk_X509_REVOKED_new_reserve(sk_X509_REVOKED_compfunc compare, int n) { return (struct stack_st_X509_REVOKED *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_REVOKED_reserve(struct stack_st_X509_REVOKED *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_REVOKED_free(struct stack_st_X509_REVOKED *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_REVOKED_zero(struct stack_st_X509_REVOKED *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_REVOKED *sk_X509_REVOKED_delete(struct stack_st_X509_REVOKED *sk, int i) { return (X509_REVOKED *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509_REVOKED *sk_X509_REVOKED_delete_ptr(struct stack_st_X509_REVOKED *sk, X509_REVOKED *ptr) { return (X509_REVOKED *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_REVOKED_push(struct stack_st_X509_REVOKED *sk, X509_REVOKED *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_REVOKED_unshift(struct stack_st_X509_REVOKED *sk, X509_REVOKED *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509_REVOKED *sk_X509_REVOKED_pop(struct stack_st_X509_REVOKED *sk) { return (X509_REVOKED *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_REVOKED *sk_X509_REVOKED_shift(struct stack_st_X509_REVOKED *sk) { return (X509_REVOKED *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_REVOKED_pop_free(struct stack_st_X509_REVOKED *sk, sk_X509_REVOKED_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_REVOKED_insert(struct stack_st_X509_REVOKED *sk, X509_REVOKED *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509_REVOKED *sk_X509_REVOKED_set(struct stack_st_X509_REVOKED *sk, int idx, X509_REVOKED *ptr) { return (X509_REVOKED *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_REVOKED_find(struct stack_st_X509_REVOKED *sk, X509_REVOKED *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_REVOKED_find_ex(struct stack_st_X509_REVOKED *sk, X509_REVOKED *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_REVOKED_sort(struct stack_st_X509_REVOKED *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_REVOKED_is_sorted(const struct stack_st_X509_REVOKED *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_REVOKED * sk_X509_REVOKED_dup(const struct stack_st_X509_REVOKED *sk) { return (struct stack_st_X509_REVOKED *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_REVOKED *sk_X509_REVOKED_deep_copy(const struct stack_st_X509_REVOKED *sk, sk_X509_REVOKED_copyfunc copyfunc, sk_X509_REVOKED_freefunc freefunc) { return (struct stack_st_X509_REVOKED *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_REVOKED_compfunc sk_X509_REVOKED_set_cmp_func(struct stack_st_X509_REVOKED *sk, sk_X509_REVOKED_compfunc compare) { return (sk_X509_REVOKED_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +typedef struct X509_crl_info_st X509_CRL_INFO; +struct stack_st_X509_CRL; typedef int (*sk_X509_CRL_compfunc)(const X509_CRL * const *a, const X509_CRL *const *b); typedef void (*sk_X509_CRL_freefunc)(X509_CRL *a); typedef X509_CRL * (*sk_X509_CRL_copyfunc)(const X509_CRL *a); static __attribute__((unused)) inline int sk_X509_CRL_num(const struct stack_st_X509_CRL *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_CRL *sk_X509_CRL_value(const struct stack_st_X509_CRL *sk, int idx) { return (X509_CRL *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509_CRL *sk_X509_CRL_new(sk_X509_CRL_compfunc compare) { return (struct stack_st_X509_CRL *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509_CRL *sk_X509_CRL_new_null(void) { return (struct stack_st_X509_CRL *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509_CRL *sk_X509_CRL_new_reserve(sk_X509_CRL_compfunc compare, int n) { return (struct stack_st_X509_CRL *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_CRL_reserve(struct stack_st_X509_CRL *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_CRL_free(struct stack_st_X509_CRL *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_CRL_zero(struct stack_st_X509_CRL *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_CRL *sk_X509_CRL_delete(struct stack_st_X509_CRL *sk, int i) { return (X509_CRL *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509_CRL *sk_X509_CRL_delete_ptr(struct stack_st_X509_CRL *sk, X509_CRL *ptr) { return (X509_CRL *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_CRL_push(struct stack_st_X509_CRL *sk, X509_CRL *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_CRL_unshift(struct stack_st_X509_CRL *sk, X509_CRL *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509_CRL *sk_X509_CRL_pop(struct stack_st_X509_CRL *sk) { return (X509_CRL *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_CRL *sk_X509_CRL_shift(struct stack_st_X509_CRL *sk) { return (X509_CRL *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_CRL_pop_free(struct stack_st_X509_CRL *sk, sk_X509_CRL_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_CRL_insert(struct stack_st_X509_CRL *sk, X509_CRL *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509_CRL *sk_X509_CRL_set(struct stack_st_X509_CRL *sk, int idx, X509_CRL *ptr) { return (X509_CRL *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_CRL_find(struct stack_st_X509_CRL *sk, X509_CRL *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_CRL_find_ex(struct stack_st_X509_CRL *sk, X509_CRL *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_CRL_sort(struct stack_st_X509_CRL *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_CRL_is_sorted(const struct stack_st_X509_CRL *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_CRL * sk_X509_CRL_dup(const struct stack_st_X509_CRL *sk) { return (struct stack_st_X509_CRL *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_CRL *sk_X509_CRL_deep_copy(const struct stack_st_X509_CRL *sk, sk_X509_CRL_copyfunc copyfunc, sk_X509_CRL_freefunc freefunc) { return (struct stack_st_X509_CRL *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_CRL_compfunc sk_X509_CRL_set_cmp_func(struct stack_st_X509_CRL *sk, sk_X509_CRL_compfunc compare) { return (sk_X509_CRL_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +typedef struct private_key_st { + int version; + X509_ALGOR *enc_algor; + ASN1_OCTET_STRING *enc_pkey; + EVP_PKEY *dec_pkey; + int key_length; + char *key_data; + int key_free; + EVP_CIPHER_INFO cipher; +} X509_PKEY; +typedef struct X509_info_st { + X509 *x509; + X509_CRL *crl; + X509_PKEY *x_pkey; + EVP_CIPHER_INFO enc_cipher; + int enc_len; + char *enc_data; +} X509_INFO; +struct stack_st_X509_INFO; typedef int (*sk_X509_INFO_compfunc)(const X509_INFO * const *a, const X509_INFO *const *b); typedef void (*sk_X509_INFO_freefunc)(X509_INFO *a); typedef X509_INFO * (*sk_X509_INFO_copyfunc)(const X509_INFO *a); static __attribute__((unused)) inline int sk_X509_INFO_num(const struct stack_st_X509_INFO *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_INFO *sk_X509_INFO_value(const struct stack_st_X509_INFO *sk, int idx) { return (X509_INFO *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509_INFO *sk_X509_INFO_new(sk_X509_INFO_compfunc compare) { return (struct stack_st_X509_INFO *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509_INFO *sk_X509_INFO_new_null(void) { return (struct stack_st_X509_INFO *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509_INFO *sk_X509_INFO_new_reserve(sk_X509_INFO_compfunc compare, int n) { return (struct stack_st_X509_INFO *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_INFO_reserve(struct stack_st_X509_INFO *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_INFO_free(struct stack_st_X509_INFO *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_INFO_zero(struct stack_st_X509_INFO *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_INFO *sk_X509_INFO_delete(struct stack_st_X509_INFO *sk, int i) { return (X509_INFO *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509_INFO *sk_X509_INFO_delete_ptr(struct stack_st_X509_INFO *sk, X509_INFO *ptr) { return (X509_INFO *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_INFO_push(struct stack_st_X509_INFO *sk, X509_INFO *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_INFO_unshift(struct stack_st_X509_INFO *sk, X509_INFO *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509_INFO *sk_X509_INFO_pop(struct stack_st_X509_INFO *sk) { return (X509_INFO *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_INFO *sk_X509_INFO_shift(struct stack_st_X509_INFO *sk) { return (X509_INFO *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_INFO_pop_free(struct stack_st_X509_INFO *sk, sk_X509_INFO_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_INFO_insert(struct stack_st_X509_INFO *sk, X509_INFO *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509_INFO *sk_X509_INFO_set(struct stack_st_X509_INFO *sk, int idx, X509_INFO *ptr) { return (X509_INFO *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_INFO_find(struct stack_st_X509_INFO *sk, X509_INFO *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_INFO_find_ex(struct stack_st_X509_INFO *sk, X509_INFO *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_INFO_sort(struct stack_st_X509_INFO *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_INFO_is_sorted(const struct stack_st_X509_INFO *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_INFO * sk_X509_INFO_dup(const struct stack_st_X509_INFO *sk) { return (struct stack_st_X509_INFO *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_INFO *sk_X509_INFO_deep_copy(const struct stack_st_X509_INFO *sk, sk_X509_INFO_copyfunc copyfunc, sk_X509_INFO_freefunc freefunc) { return (struct stack_st_X509_INFO *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_INFO_compfunc sk_X509_INFO_set_cmp_func(struct stack_st_X509_INFO *sk, sk_X509_INFO_compfunc compare) { return (sk_X509_INFO_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +typedef struct Netscape_spkac_st { + X509_PUBKEY *pubkey; + ASN1_IA5STRING *challenge; +} NETSCAPE_SPKAC; +typedef struct Netscape_spki_st { + NETSCAPE_SPKAC *spkac; + X509_ALGOR sig_algor; + ASN1_BIT_STRING *signature; +} NETSCAPE_SPKI; +typedef struct Netscape_certificate_sequence { + ASN1_OBJECT *type; + struct stack_st_X509 *certs; +} NETSCAPE_CERT_SEQUENCE; +typedef struct PBEPARAM_st { + ASN1_OCTET_STRING *salt; + ASN1_INTEGER *iter; +} PBEPARAM; +typedef struct PBE2PARAM_st { + X509_ALGOR *keyfunc; + X509_ALGOR *encryption; +} PBE2PARAM; +typedef struct PBKDF2PARAM_st { + ASN1_TYPE *salt; + ASN1_INTEGER *iter; + ASN1_INTEGER *keylength; + X509_ALGOR *prf; +} PBKDF2PARAM; +typedef struct SCRYPT_PARAMS_st { + ASN1_OCTET_STRING *salt; + ASN1_INTEGER *costParameter; + ASN1_INTEGER *blockSize; + ASN1_INTEGER *parallelizationParameter; + ASN1_INTEGER *keyLength; +} SCRYPT_PARAMS; +enum { + X509_EXT_PACK_UNKNOWN = 1, + X509_EXT_PACK_STRING = 2, +}; +#define X509_extract_key(x) X509_get_pubkey(x) +#define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a) +#define X509_name_cmp(a,b) X509_NAME_cmp((a),(b)) +void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); +X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), + int (*crl_free) (X509_CRL *crl), + int (*crl_lookup) (X509_CRL *crl, + X509_REVOKED **ret, + ASN1_INTEGER *ser, + X509_NAME *issuer), + int (*crl_verify) (X509_CRL *crl, + EVP_PKEY *pk)); +void X509_CRL_METHOD_free(X509_CRL_METHOD *m); +void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); +void *X509_CRL_get_meth_data(X509_CRL *crl); +const char *X509_verify_cert_error_string(long n); +int X509_verify(X509 *a, EVP_PKEY *r); +int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); +int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); +int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); +NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); +char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); +EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); +int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); +int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); +int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); +int X509_signature_print(BIO *bp, const X509_ALGOR *alg, + const ASN1_STRING *sig); +int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); +int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); +int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); +int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); +int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); +int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); +int X509_pubkey_digest(const X509 *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_digest(const X509 *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, + unsigned char *md, unsigned int *len); +X509 *d2i_X509_fp(FILE *fp, X509 **x509); +int i2d_X509_fp(FILE *fp, X509 *x509); +X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); +int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl); +X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); +int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req); +RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); +int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa); +RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); +int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa); +RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); +int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa); +DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); +int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); +DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); +int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); +EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); +int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey); +EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); +int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey); +X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); +int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8); +PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, + PKCS8_PRIV_KEY_INFO **p8inf); +int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf); +int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); +int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); +int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); +X509 *d2i_X509_bio(BIO *bp, X509 **x509); +int i2d_X509_bio(BIO *bp, X509 *x509); +X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); +int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl); +X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); +int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req); +RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); +int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa); +RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); +int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa); +RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); +int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa); +DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); +int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); +DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); +int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); +EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); +int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey); +EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); +int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey); +X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); +int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8); +PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, + PKCS8_PRIV_KEY_INFO **p8inf); +int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf); +int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); +int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); +int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); +EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); +X509 *X509_dup(X509 *x509); +X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); +X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); +X509_CRL *X509_CRL_dup(X509_CRL *crl); +X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev); +X509_REQ *X509_REQ_dup(X509_REQ *req); +X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); +int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, + void *pval); +void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, + const void **ppval, const X509_ALGOR *algor); +void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); +int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); +X509_NAME *X509_NAME_dup(X509_NAME *xn); +X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); +int X509_cmp_time(const ASN1_TIME *s, time_t *t); +int X509_cmp_current_time(const ASN1_TIME *s); +ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); +ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, + int offset_day, long offset_sec, time_t *t); +ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); +const char *X509_get_default_cert_area(void); +const char *X509_get_default_cert_dir(void); +const char *X509_get_default_cert_file(void); +const char *X509_get_default_cert_dir_env(void); +const char *X509_get_default_cert_file_env(void); +const char *X509_get_default_private_dir(void); +X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); +X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); +X509_ALGOR *X509_ALGOR_new(void); void X509_ALGOR_free(X509_ALGOR *a); X509_ALGOR *d2i_X509_ALGOR(X509_ALGOR **a, const unsigned char **in, long len); int i2d_X509_ALGOR(X509_ALGOR *a, unsigned char **out); const ASN1_ITEM * X509_ALGOR_it(void); +X509_ALGORS *d2i_X509_ALGORS(X509_ALGORS **a, const unsigned char **in, long len); int i2d_X509_ALGORS(X509_ALGORS *a, unsigned char **out); const ASN1_ITEM * X509_ALGORS_it(void); +X509_VAL *X509_VAL_new(void); void X509_VAL_free(X509_VAL *a); X509_VAL *d2i_X509_VAL(X509_VAL **a, const unsigned char **in, long len); int i2d_X509_VAL(X509_VAL *a, unsigned char **out); const ASN1_ITEM * X509_VAL_it(void); +X509_PUBKEY *X509_PUBKEY_new(void); void X509_PUBKEY_free(X509_PUBKEY *a); X509_PUBKEY *d2i_X509_PUBKEY(X509_PUBKEY **a, const unsigned char **in, long len); int i2d_X509_PUBKEY(X509_PUBKEY *a, unsigned char **out); const ASN1_ITEM * X509_PUBKEY_it(void); +int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); +EVP_PKEY *X509_PUBKEY_get0(X509_PUBKEY *key); +EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key); +int X509_get_pubkey_parameters(EVP_PKEY *pkey, struct stack_st_X509 *chain); +long X509_get_pathlen(X509 *x); +int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp); +EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); +int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); +RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); +int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp); +DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); +int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp); +EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length); +X509_SIG *X509_SIG_new(void); void X509_SIG_free(X509_SIG *a); X509_SIG *d2i_X509_SIG(X509_SIG **a, const unsigned char **in, long len); int i2d_X509_SIG(X509_SIG *a, unsigned char **out); const ASN1_ITEM * X509_SIG_it(void); +void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg, + const ASN1_OCTET_STRING **pdigest); +void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg, + ASN1_OCTET_STRING **pdigest); +X509_REQ_INFO *X509_REQ_INFO_new(void); void X509_REQ_INFO_free(X509_REQ_INFO *a); X509_REQ_INFO *d2i_X509_REQ_INFO(X509_REQ_INFO **a, const unsigned char **in, long len); int i2d_X509_REQ_INFO(X509_REQ_INFO *a, unsigned char **out); const ASN1_ITEM * X509_REQ_INFO_it(void); +X509_REQ *X509_REQ_new(void); void X509_REQ_free(X509_REQ *a); X509_REQ *d2i_X509_REQ(X509_REQ **a, const unsigned char **in, long len); int i2d_X509_REQ(X509_REQ *a, unsigned char **out); const ASN1_ITEM * X509_REQ_it(void); +X509_ATTRIBUTE *X509_ATTRIBUTE_new(void); void X509_ATTRIBUTE_free(X509_ATTRIBUTE *a); X509_ATTRIBUTE *d2i_X509_ATTRIBUTE(X509_ATTRIBUTE **a, const unsigned char **in, long len); int i2d_X509_ATTRIBUTE(X509_ATTRIBUTE *a, unsigned char **out); const ASN1_ITEM * X509_ATTRIBUTE_it(void); +X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); +X509_EXTENSION *X509_EXTENSION_new(void); void X509_EXTENSION_free(X509_EXTENSION *a); X509_EXTENSION *d2i_X509_EXTENSION(X509_EXTENSION **a, const unsigned char **in, long len); int i2d_X509_EXTENSION(X509_EXTENSION *a, unsigned char **out); const ASN1_ITEM * X509_EXTENSION_it(void); +X509_EXTENSIONS *d2i_X509_EXTENSIONS(X509_EXTENSIONS **a, const unsigned char **in, long len); int i2d_X509_EXTENSIONS(X509_EXTENSIONS *a, unsigned char **out); const ASN1_ITEM * X509_EXTENSIONS_it(void); +X509_NAME_ENTRY *X509_NAME_ENTRY_new(void); void X509_NAME_ENTRY_free(X509_NAME_ENTRY *a); X509_NAME_ENTRY *d2i_X509_NAME_ENTRY(X509_NAME_ENTRY **a, const unsigned char **in, long len); int i2d_X509_NAME_ENTRY(X509_NAME_ENTRY *a, unsigned char **out); const ASN1_ITEM * X509_NAME_ENTRY_it(void); +X509_NAME *X509_NAME_new(void); void X509_NAME_free(X509_NAME *a); X509_NAME *d2i_X509_NAME(X509_NAME **a, const unsigned char **in, long len); int i2d_X509_NAME(X509_NAME *a, unsigned char **out); const ASN1_ITEM * X509_NAME_it(void); +int X509_NAME_set(X509_NAME **xn, X509_NAME *name); +X509_CINF *X509_CINF_new(void); void X509_CINF_free(X509_CINF *a); X509_CINF *d2i_X509_CINF(X509_CINF **a, const unsigned char **in, long len); int i2d_X509_CINF(X509_CINF *a, unsigned char **out); const ASN1_ITEM * X509_CINF_it(void); +X509 *X509_new(void); void X509_free(X509 *a); X509 *d2i_X509(X509 **a, const unsigned char **in, long len); int i2d_X509(X509 *a, unsigned char **out); const ASN1_ITEM * X509_it(void); +X509_CERT_AUX *X509_CERT_AUX_new(void); void X509_CERT_AUX_free(X509_CERT_AUX *a); X509_CERT_AUX *d2i_X509_CERT_AUX(X509_CERT_AUX **a, const unsigned char **in, long len); int i2d_X509_CERT_AUX(X509_CERT_AUX *a, unsigned char **out); const ASN1_ITEM * X509_CERT_AUX_it(void); +#define X509_get_ex_new_index(l,p,newf,dupf,freef) CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509, l, p, newf, dupf, freef) +int X509_set_ex_data(X509 *r, int idx, void *arg); +void *X509_get_ex_data(X509 *r, int idx); +int i2d_X509_AUX(X509 *a, unsigned char **pp); +X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length); +int i2d_re_X509_tbs(X509 *x, unsigned char **pp); +int X509_SIG_INFO_get(const X509_SIG_INFO *siginf, int *mdnid, int *pknid, + int *secbits, uint32_t *flags); +void X509_SIG_INFO_set(X509_SIG_INFO *siginf, int mdnid, int pknid, + int secbits, uint32_t flags); +int X509_get_signature_info(X509 *x, int *mdnid, int *pknid, int *secbits, + uint32_t *flags); +void X509_get0_signature(const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg, const X509 *x); +int X509_get_signature_nid(const X509 *x); +int X509_trusted(const X509 *x); +int X509_alias_set1(X509 *x, const unsigned char *name, int len); +int X509_keyid_set1(X509 *x, const unsigned char *id, int len); +unsigned char *X509_alias_get0(X509 *x, int *len); +unsigned char *X509_keyid_get0(X509 *x, int *len); +int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, + int); +int X509_TRUST_set(int *t, int trust); +int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj); +int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj); +void X509_trust_clear(X509 *x); +void X509_reject_clear(X509 *x); +struct stack_st_ASN1_OBJECT *X509_get0_trust_objects(X509 *x); +struct stack_st_ASN1_OBJECT *X509_get0_reject_objects(X509 *x); +X509_REVOKED *X509_REVOKED_new(void); void X509_REVOKED_free(X509_REVOKED *a); X509_REVOKED *d2i_X509_REVOKED(X509_REVOKED **a, const unsigned char **in, long len); int i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **out); const ASN1_ITEM * X509_REVOKED_it(void); +X509_CRL_INFO *X509_CRL_INFO_new(void); void X509_CRL_INFO_free(X509_CRL_INFO *a); X509_CRL_INFO *d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len); int i2d_X509_CRL_INFO(X509_CRL_INFO *a, unsigned char **out); const ASN1_ITEM * X509_CRL_INFO_it(void); +X509_CRL *X509_CRL_new(void); void X509_CRL_free(X509_CRL *a); X509_CRL *d2i_X509_CRL(X509_CRL **a, const unsigned char **in, long len); int i2d_X509_CRL(X509_CRL *a, unsigned char **out); const ASN1_ITEM * X509_CRL_it(void); +int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); +int X509_CRL_get0_by_serial(X509_CRL *crl, + X509_REVOKED **ret, ASN1_INTEGER *serial); +int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); +X509_PKEY *X509_PKEY_new(void); +void X509_PKEY_free(X509_PKEY *a); +NETSCAPE_SPKI *NETSCAPE_SPKI_new(void); void NETSCAPE_SPKI_free(NETSCAPE_SPKI *a); NETSCAPE_SPKI *d2i_NETSCAPE_SPKI(NETSCAPE_SPKI **a, const unsigned char **in, long len); int i2d_NETSCAPE_SPKI(NETSCAPE_SPKI *a, unsigned char **out); const ASN1_ITEM * NETSCAPE_SPKI_it(void); +NETSCAPE_SPKAC *NETSCAPE_SPKAC_new(void); void NETSCAPE_SPKAC_free(NETSCAPE_SPKAC *a); NETSCAPE_SPKAC *d2i_NETSCAPE_SPKAC(NETSCAPE_SPKAC **a, const unsigned char **in, long len); int i2d_NETSCAPE_SPKAC(NETSCAPE_SPKAC *a, unsigned char **out); const ASN1_ITEM * NETSCAPE_SPKAC_it(void); +NETSCAPE_CERT_SEQUENCE *NETSCAPE_CERT_SEQUENCE_new(void); void NETSCAPE_CERT_SEQUENCE_free(NETSCAPE_CERT_SEQUENCE *a); NETSCAPE_CERT_SEQUENCE *d2i_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE **a, const unsigned char **in, long len); int i2d_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE *a, unsigned char **out); const ASN1_ITEM * NETSCAPE_CERT_SEQUENCE_it(void); +X509_INFO *X509_INFO_new(void); +void X509_INFO_free(X509_INFO *a); +char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size); +int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, + ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); +int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, + unsigned char *md, unsigned int *len); +int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, + char *data, EVP_PKEY *pkey, const EVP_MD *type); +int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, + unsigned char *md, unsigned int *len); +int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, + ASN1_BIT_STRING *signature, void *data, EVP_PKEY *pkey); +int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *data, + EVP_PKEY *pkey, const EVP_MD *type); +int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, + X509_ALGOR *algor2, ASN1_BIT_STRING *signature, + void *asn, EVP_MD_CTX *ctx); +long X509_get_version(const X509 *x); +int X509_set_version(X509 *x, long version); +int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); +ASN1_INTEGER *X509_get_serialNumber(X509 *x); +const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x); +int X509_set_issuer_name(X509 *x, X509_NAME *name); +X509_NAME *X509_get_issuer_name(const X509 *a); +int X509_set_subject_name(X509 *x, X509_NAME *name); +X509_NAME *X509_get_subject_name(const X509 *a); +const ASN1_TIME * X509_get0_notBefore(const X509 *x); +ASN1_TIME *X509_getm_notBefore(const X509 *x); +int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm); +const ASN1_TIME *X509_get0_notAfter(const X509 *x); +ASN1_TIME *X509_getm_notAfter(const X509 *x); +int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm); +int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); +int X509_up_ref(X509 *x); +int X509_get_signature_type(const X509 *x); +enum { + X509_get_notBefore = X509_getm_notBefore, + X509_get_notAfter = X509_getm_notAfter, + X509_set_notBefore = X509_set1_notBefore, + X509_set_notAfter = X509_set1_notAfter, +}; +X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x); +const struct stack_st_X509_EXTENSION *X509_get0_extensions(const X509 *x); +void X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid, + const ASN1_BIT_STRING **psuid); +const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x); +EVP_PKEY *X509_get0_pubkey(const X509 *x); +EVP_PKEY *X509_get_pubkey(X509 *x); +ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); +int X509_certificate_type(const X509 *x, const EVP_PKEY *pubkey); +long X509_REQ_get_version(const X509_REQ *req); +int X509_REQ_set_version(X509_REQ *x, long version); +X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req); +int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); +void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_REQ_get_signature_nid(const X509_REQ *req); +int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); +int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); +EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); +EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); +X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); +int X509_REQ_extension_nid(int nid); +int *X509_REQ_get_extension_nids(void); +void X509_REQ_set_extension_nids(int *nids); +struct stack_st_X509_EXTENSION *X509_REQ_get_extensions(X509_REQ *req); +int X509_REQ_add_extensions_nid(X509_REQ *req, struct stack_st_X509_EXTENSION *exts, + int nid); +int X509_REQ_add_extensions(X509_REQ *req, struct stack_st_X509_EXTENSION *exts); +int X509_REQ_get_attr_count(const X509_REQ *req); +int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); +int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); +X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); +int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); +int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len); +int X509_REQ_add1_attr_by_NID(X509_REQ *req, + int nid, int type, + const unsigned char *bytes, int len); +int X509_REQ_add1_attr_by_txt(X509_REQ *req, + const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_CRL_set_version(X509_CRL *x, long version); +int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); +int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); +int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); +int X509_CRL_sort(X509_CRL *crl); +int X509_CRL_up_ref(X509_CRL *crl); +enum { + X509_CRL_set_lastUpdate = X509_CRL_set1_lastUpdate, + X509_CRL_set_nextUpdate = X509_CRL_set1_nextUpdate, +}; +long X509_CRL_get_version(const X509_CRL *crl); +const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl); +const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl); +ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl) __attribute__ ((deprecated)); +ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl) __attribute__ ((deprecated)); +X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl); +const struct stack_st_X509_EXTENSION *X509_CRL_get0_extensions(const X509_CRL *crl); +struct stack_st_X509_REVOKED *X509_CRL_get_REVOKED(X509_CRL *crl); +void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig, + const X509_ALGOR **palg); +int X509_CRL_get_signature_nid(const X509_CRL *crl); +int i2d_re_X509_CRL_tbs(X509_CRL *req, unsigned char **pp); +const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x); +int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); +const ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x); +int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); +const struct stack_st_X509_EXTENSION * +X509_REVOKED_get0_extensions(const X509_REVOKED *r); +X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, + EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); +int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); +int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); +int X509_chain_check_suiteb(int *perror_depth, + X509 *x, struct stack_st_X509 *chain, + unsigned long flags); +int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); +struct stack_st_X509 *X509_chain_up_ref(struct stack_st_X509 *chain); +int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); +unsigned long X509_issuer_and_serial_hash(X509 *a); +int X509_issuer_name_cmp(const X509 *a, const X509 *b); +unsigned long X509_issuer_name_hash(X509 *a); +int X509_subject_name_cmp(const X509 *a, const X509 *b); +unsigned long X509_subject_name_hash(X509 *x); +unsigned long X509_issuer_name_hash_old(X509 *a); +unsigned long X509_subject_name_hash_old(X509 *x); +int X509_cmp(const X509 *a, const X509 *b); +int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); +unsigned long X509_NAME_hash(X509_NAME *x); +unsigned long X509_NAME_hash_old(X509_NAME *x); +int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); +int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); +int X509_aux_print(BIO *out, X509 *x, int indent); +int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, + unsigned long cflag); +int X509_print_fp(FILE *bp, X509 *x); +int X509_CRL_print_fp(FILE *bp, X509_CRL *x); +int X509_REQ_print_fp(FILE *bp, X509_REQ *req); +int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent, + unsigned long flags); +int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase); +int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent, + unsigned long flags); +int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, + unsigned long cflag); +int X509_print(BIO *bp, X509 *x); +int X509_ocspid_print(BIO *bp, X509 *x); +int X509_CRL_print_ex(BIO *out, X509_CRL *x, unsigned long nmflag); +int X509_CRL_print(BIO *bp, X509_CRL *x); +int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, + unsigned long cflag); +int X509_REQ_print(BIO *bp, X509_REQ *req); +int X509_NAME_entry_count(const X509_NAME *name); +int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len); +int X509_NAME_get_text_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, + char *buf, int len); +int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos); +int X509_NAME_get_index_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, + int lastpos); +X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc); +X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); +int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, + int loc, int set); +int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len, int loc, + int set); +int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, + const unsigned char *bytes, int len, int loc, + int set); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, + const char *field, int type, + const unsigned char *bytes, + int len); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, + int type, + const unsigned char *bytes, + int len); +int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, + const unsigned char *bytes, int len, int loc, + int set); +X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, + int len); +int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT *obj); +int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, + const unsigned char *bytes, int len); +ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne); +ASN1_STRING * X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne); +int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne); +int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder, + size_t *pderlen); +int X509v3_get_ext_count(const struct stack_st_X509_EXTENSION *x); +int X509v3_get_ext_by_NID(const struct stack_st_X509_EXTENSION *x, + int nid, int lastpos); +int X509v3_get_ext_by_OBJ(const struct stack_st_X509_EXTENSION *x, + const ASN1_OBJECT *obj, int lastpos); +int X509v3_get_ext_by_critical(const struct stack_st_X509_EXTENSION *x, + int crit, int lastpos); +X509_EXTENSION *X509v3_get_ext(const struct stack_st_X509_EXTENSION *x, int loc); +X509_EXTENSION *X509v3_delete_ext(struct stack_st_X509_EXTENSION *x, int loc); +struct stack_st_X509_EXTENSION *X509v3_add_ext(struct stack_st_X509_EXTENSION **x, + X509_EXTENSION *ex, int loc); +int X509_get_ext_count(const X509 *x); +int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); +int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos); +int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos); +X509_EXTENSION *X509_get_ext(const X509 *x, int loc); +X509_EXTENSION *X509_delete_ext(X509 *x, int loc); +int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); +void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx); +int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, + unsigned long flags); +int X509_CRL_get_ext_count(const X509_CRL *x); +int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos); +int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj, + int lastpos); +int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos); +X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc); +X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); +int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); +void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx); +int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, + unsigned long flags); +int X509_REVOKED_get_ext_count(const X509_REVOKED *x); +int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos); +int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT *obj, + int lastpos); +int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, + int lastpos); +X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc); +X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); +int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); +void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int *crit, + int *idx); +int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, + unsigned long flags); +X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, + int nid, int crit, + ASN1_OCTET_STRING *data); +X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, + const ASN1_OBJECT *obj, int crit, + ASN1_OCTET_STRING *data); +int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj); +int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); +int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); +ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); +ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); +int X509_EXTENSION_get_critical(const X509_EXTENSION *ex); +int X509at_get_attr_count(const struct stack_st_X509_ATTRIBUTE *x); +int X509at_get_attr_by_NID(const struct stack_st_X509_ATTRIBUTE *x, int nid, + int lastpos); +int X509at_get_attr_by_OBJ(const struct stack_st_X509_ATTRIBUTE *sk, + const ASN1_OBJECT *obj, int lastpos); +X509_ATTRIBUTE *X509at_get_attr(const struct stack_st_X509_ATTRIBUTE *x, int loc); +X509_ATTRIBUTE *X509at_delete_attr(struct stack_st_X509_ATTRIBUTE *x, int loc); +struct stack_st_X509_ATTRIBUTE *X509at_add1_attr(struct stack_st_X509_ATTRIBUTE **x, + X509_ATTRIBUTE *attr); +struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_OBJ(struct stack_st_X509_ATTRIBUTE + **x, const ASN1_OBJECT *obj, + int type, + const unsigned char *bytes, + int len); +struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_NID(struct stack_st_X509_ATTRIBUTE + **x, int nid, int type, + const unsigned char *bytes, + int len); +struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_txt(struct stack_st_X509_ATTRIBUTE + **x, const char *attrname, + int type, + const unsigned char *bytes, + int len); +void *X509at_get0_data_by_OBJ(struct stack_st_X509_ATTRIBUTE *x, + const ASN1_OBJECT *obj, int lastpos, int type); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, + int atrtype, const void *data, + int len); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, + const ASN1_OBJECT *obj, + int atrtype, const void *data, + int len); +X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, + const char *atrname, int type, + const unsigned char *bytes, + int len); +int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); +int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, + const void *data, int len); +void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, + void *data); +int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr); +ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); +ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); +int EVP_PKEY_get_attr_count(const EVP_PKEY *key); +int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); +int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT *obj, + int lastpos); +X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); +X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); +int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); +int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, + const ASN1_OBJECT *obj, int type, + const unsigned char *bytes, int len); +int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, + int nid, int type, + const unsigned char *bytes, int len); +int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, + const char *attrname, int type, + const unsigned char *bytes, int len); +int X509_verify_cert(X509_STORE_CTX *ctx); +X509 *X509_find_by_issuer_and_serial(struct stack_st_X509 *sk, X509_NAME *name, + ASN1_INTEGER *serial); +X509 *X509_find_by_subject(struct stack_st_X509 *sk, X509_NAME *name); +PBEPARAM *PBEPARAM_new(void); void PBEPARAM_free(PBEPARAM *a); PBEPARAM *d2i_PBEPARAM(PBEPARAM **a, const unsigned char **in, long len); int i2d_PBEPARAM(PBEPARAM *a, unsigned char **out); const ASN1_ITEM * PBEPARAM_it(void); +PBE2PARAM *PBE2PARAM_new(void); void PBE2PARAM_free(PBE2PARAM *a); PBE2PARAM *d2i_PBE2PARAM(PBE2PARAM **a, const unsigned char **in, long len); int i2d_PBE2PARAM(PBE2PARAM *a, unsigned char **out); const ASN1_ITEM * PBE2PARAM_it(void); +PBKDF2PARAM *PBKDF2PARAM_new(void); void PBKDF2PARAM_free(PBKDF2PARAM *a); PBKDF2PARAM *d2i_PBKDF2PARAM(PBKDF2PARAM **a, const unsigned char **in, long len); int i2d_PBKDF2PARAM(PBKDF2PARAM *a, unsigned char **out); const ASN1_ITEM * PBKDF2PARAM_it(void); +SCRYPT_PARAMS *SCRYPT_PARAMS_new(void); void SCRYPT_PARAMS_free(SCRYPT_PARAMS *a); SCRYPT_PARAMS *d2i_SCRYPT_PARAMS(SCRYPT_PARAMS **a, const unsigned char **in, long len); int i2d_SCRYPT_PARAMS(SCRYPT_PARAMS *a, unsigned char **out); const ASN1_ITEM * SCRYPT_PARAMS_it(void); +int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, + const unsigned char *salt, int saltlen); +X509_ALGOR *PKCS5_pbe_set(int alg, int iter, + const unsigned char *salt, int saltlen); +X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, + unsigned char *salt, int saltlen); +X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, + unsigned char *salt, int saltlen, + unsigned char *aiv, int prf_nid); +X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher, + const unsigned char *salt, int saltlen, + unsigned char *aiv, uint64_t N, uint64_t r, + uint64_t p); +X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, + int prf_nid, int keylen); +PKCS8_PRIV_KEY_INFO *PKCS8_PRIV_KEY_INFO_new(void); void PKCS8_PRIV_KEY_INFO_free(PKCS8_PRIV_KEY_INFO *a); PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO **a, const unsigned char **in, long len); int i2d_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO *a, unsigned char **out); const ASN1_ITEM * PKCS8_PRIV_KEY_INFO_it(void); +EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8); +PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); +int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, + int version, int ptype, void *pval, + unsigned char *penc, int penclen); +int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg, + const unsigned char **pk, int *ppklen, + const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8); +const struct stack_st_X509_ATTRIBUTE * +PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8); +int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type, + const unsigned char *bytes, int len); +int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, + int ptype, void *pval, + unsigned char *penc, int penclen); +int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, + const unsigned char **pk, int *ppklen, + X509_ALGOR **pa, X509_PUBKEY *pub); +int X509_check_trust(X509 *x, int id, int flags); +int X509_TRUST_get_count(void); +X509_TRUST *X509_TRUST_get0(int idx); +int X509_TRUST_get_by_id(int id); +int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), + const char *name, int arg1, void *arg2); +void X509_TRUST_cleanup(void); +int X509_TRUST_get_flags(const X509_TRUST *xp); +char *X509_TRUST_get0_name(const X509_TRUST *xp); +int X509_TRUST_get_trust(const X509_TRUST *xp); + + +// csrc/openssl/src/include/openssl/x509err.h +int ERR_load_X509_strings(void); +enum { + X509_F_ADD_CERT_DIR = 100, + X509_F_BUILD_CHAIN = 106, + X509_F_BY_FILE_CTRL = 101, + X509_F_CHECK_NAME_CONSTRAINTS = 149, + X509_F_CHECK_POLICY = 145, + X509_F_DANE_I2D = 107, + X509_F_DIR_CTRL = 102, + X509_F_GET_CERT_BY_SUBJECT = 103, + X509_F_I2D_X509_AUX = 151, + X509_F_LOOKUP_CERTS_SK = 152, + X509_F_NETSCAPE_SPKI_B64_DECODE = 129, + X509_F_NETSCAPE_SPKI_B64_ENCODE = 130, + X509_F_NEW_DIR = 153, + X509_F_X509AT_ADD1_ATTR = 135, + X509_F_X509V3_ADD_EXT = 104, + X509_F_X509_ATTRIBUTE_CREATE_BY_NID = 136, + X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ = 137, + X509_F_X509_ATTRIBUTE_CREATE_BY_TXT = 140, + X509_F_X509_ATTRIBUTE_GET0_DATA = 139, + X509_F_X509_ATTRIBUTE_SET1_DATA = 138, + X509_F_X509_CHECK_PRIVATE_KEY = 128, + X509_F_X509_CRL_DIFF = 105, + X509_F_X509_CRL_METHOD_NEW = 154, + X509_F_X509_CRL_PRINT_FP = 147, + X509_F_X509_EXTENSION_CREATE_BY_NID = 108, + X509_F_X509_EXTENSION_CREATE_BY_OBJ = 109, + X509_F_X509_GET_PUBKEY_PARAMETERS = 110, + X509_F_X509_LOAD_CERT_CRL_FILE = 132, + X509_F_X509_LOAD_CERT_FILE = 111, + X509_F_X509_LOAD_CRL_FILE = 112, + X509_F_X509_LOOKUP_METH_NEW = 160, + X509_F_X509_LOOKUP_NEW = 155, + X509_F_X509_NAME_ADD_ENTRY = 113, + X509_F_X509_NAME_CANON = 156, + X509_F_X509_NAME_ENTRY_CREATE_BY_NID = 114, + X509_F_X509_NAME_ENTRY_CREATE_BY_TXT = 131, + X509_F_X509_NAME_ENTRY_SET_OBJECT = 115, + X509_F_X509_NAME_ONELINE = 116, + X509_F_X509_NAME_PRINT = 117, + X509_F_X509_OBJECT_NEW = 150, + X509_F_X509_PRINT_EX_FP = 118, + X509_F_X509_PUBKEY_DECODE = 148, + X509_F_X509_PUBKEY_GET0 = 119, + X509_F_X509_PUBKEY_SET = 120, + X509_F_X509_REQ_CHECK_PRIVATE_KEY = 144, + X509_F_X509_REQ_PRINT_EX = 121, + X509_F_X509_REQ_PRINT_FP = 122, + X509_F_X509_REQ_TO_X509 = 123, + X509_F_X509_STORE_ADD_CERT = 124, + X509_F_X509_STORE_ADD_CRL = 125, + X509_F_X509_STORE_ADD_LOOKUP = 157, + X509_F_X509_STORE_CTX_GET1_ISSUER = 146, + X509_F_X509_STORE_CTX_INIT = 143, + X509_F_X509_STORE_CTX_NEW = 142, + X509_F_X509_STORE_CTX_PURPOSE_INHERIT = 134, + X509_F_X509_STORE_NEW = 158, + X509_F_X509_TO_X509_REQ = 126, + X509_F_X509_TRUST_ADD = 133, + X509_F_X509_TRUST_SET = 141, + X509_F_X509_VERIFY_CERT = 127, + X509_F_X509_VERIFY_PARAM_NEW = 159, + X509_R_AKID_MISMATCH = 110, + X509_R_BAD_SELECTOR = 133, + X509_R_BAD_X509_FILETYPE = 100, + X509_R_BASE64_DECODE_ERROR = 118, + X509_R_CANT_CHECK_DH_KEY = 114, + X509_R_CERT_ALREADY_IN_HASH_TABLE = 101, + X509_R_CRL_ALREADY_DELTA = 127, + X509_R_CRL_VERIFY_FAILURE = 131, + X509_R_IDP_MISMATCH = 128, + X509_R_INVALID_ATTRIBUTES = 138, + X509_R_INVALID_DIRECTORY = 113, + X509_R_INVALID_FIELD_NAME = 119, + X509_R_INVALID_TRUST = 123, + X509_R_ISSUER_MISMATCH = 129, + X509_R_KEY_TYPE_MISMATCH = 115, + X509_R_KEY_VALUES_MISMATCH = 116, + X509_R_LOADING_CERT_DIR = 103, + X509_R_LOADING_DEFAULTS = 104, + X509_R_METHOD_NOT_SUPPORTED = 124, + X509_R_NAME_TOO_LONG = 134, + X509_R_NEWER_CRL_NOT_NEWER = 132, + X509_R_NO_CERTIFICATE_FOUND = 135, + X509_R_NO_CERTIFICATE_OR_CRL_FOUND = 136, + X509_R_NO_CERT_SET_FOR_US_TO_VERIFY = 105, + X509_R_NO_CRL_FOUND = 137, + X509_R_NO_CRL_NUMBER = 130, + X509_R_PUBLIC_KEY_DECODE_ERROR = 125, + X509_R_PUBLIC_KEY_ENCODE_ERROR = 126, + X509_R_SHOULD_RETRY = 106, + X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN = 107, + X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY = 108, + X509_R_UNKNOWN_KEY_TYPE = 117, + X509_R_UNKNOWN_NID = 109, + X509_R_UNKNOWN_PURPOSE_ID = 121, + X509_R_UNKNOWN_TRUST_ID = 120, + X509_R_UNSUPPORTED_ALGORITHM = 111, + X509_R_WRONG_LOOKUP_TYPE = 112, + X509_R_WRONG_TYPE = 122, +}; + diff --git a/libcrypto_x509_vfy_h.lua b/libcrypto_x509_vfy_h.lua new file mode 100644 index 0000000..6d662eb --- /dev/null +++ b/libcrypto_x509_vfy_h.lua @@ -0,0 +1,457 @@ +// csrc/openssl/src/include/openssl/x509_vfy.h +typedef enum { + X509_LU_NONE = 0, + X509_LU_X509, X509_LU_CRL +} X509_LOOKUP_TYPE; +enum { + X509_LU_RETRY = -1, + X509_LU_FAIL = 0, +}; +struct stack_st_X509_LOOKUP; typedef int (*sk_X509_LOOKUP_compfunc)(const X509_LOOKUP * const *a, const X509_LOOKUP *const *b); typedef void (*sk_X509_LOOKUP_freefunc)(X509_LOOKUP *a); typedef X509_LOOKUP * (*sk_X509_LOOKUP_copyfunc)(const X509_LOOKUP *a); static __attribute__((unused)) inline int sk_X509_LOOKUP_num(const struct stack_st_X509_LOOKUP *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_LOOKUP *sk_X509_LOOKUP_value(const struct stack_st_X509_LOOKUP *sk, int idx) { return (X509_LOOKUP *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509_LOOKUP *sk_X509_LOOKUP_new(sk_X509_LOOKUP_compfunc compare) { return (struct stack_st_X509_LOOKUP *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509_LOOKUP *sk_X509_LOOKUP_new_null(void) { return (struct stack_st_X509_LOOKUP *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509_LOOKUP *sk_X509_LOOKUP_new_reserve(sk_X509_LOOKUP_compfunc compare, int n) { return (struct stack_st_X509_LOOKUP *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_LOOKUP_reserve(struct stack_st_X509_LOOKUP *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_LOOKUP_free(struct stack_st_X509_LOOKUP *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_LOOKUP_zero(struct stack_st_X509_LOOKUP *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_LOOKUP *sk_X509_LOOKUP_delete(struct stack_st_X509_LOOKUP *sk, int i) { return (X509_LOOKUP *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509_LOOKUP *sk_X509_LOOKUP_delete_ptr(struct stack_st_X509_LOOKUP *sk, X509_LOOKUP *ptr) { return (X509_LOOKUP *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_LOOKUP_push(struct stack_st_X509_LOOKUP *sk, X509_LOOKUP *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_LOOKUP_unshift(struct stack_st_X509_LOOKUP *sk, X509_LOOKUP *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509_LOOKUP *sk_X509_LOOKUP_pop(struct stack_st_X509_LOOKUP *sk) { return (X509_LOOKUP *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_LOOKUP *sk_X509_LOOKUP_shift(struct stack_st_X509_LOOKUP *sk) { return (X509_LOOKUP *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_LOOKUP_pop_free(struct stack_st_X509_LOOKUP *sk, sk_X509_LOOKUP_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_LOOKUP_insert(struct stack_st_X509_LOOKUP *sk, X509_LOOKUP *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509_LOOKUP *sk_X509_LOOKUP_set(struct stack_st_X509_LOOKUP *sk, int idx, X509_LOOKUP *ptr) { return (X509_LOOKUP *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_LOOKUP_find(struct stack_st_X509_LOOKUP *sk, X509_LOOKUP *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_LOOKUP_find_ex(struct stack_st_X509_LOOKUP *sk, X509_LOOKUP *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_LOOKUP_sort(struct stack_st_X509_LOOKUP *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_LOOKUP_is_sorted(const struct stack_st_X509_LOOKUP *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_LOOKUP * sk_X509_LOOKUP_dup(const struct stack_st_X509_LOOKUP *sk) { return (struct stack_st_X509_LOOKUP *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_LOOKUP *sk_X509_LOOKUP_deep_copy(const struct stack_st_X509_LOOKUP *sk, sk_X509_LOOKUP_copyfunc copyfunc, sk_X509_LOOKUP_freefunc freefunc) { return (struct stack_st_X509_LOOKUP *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_LOOKUP_compfunc sk_X509_LOOKUP_set_cmp_func(struct stack_st_X509_LOOKUP *sk, sk_X509_LOOKUP_compfunc compare) { return (sk_X509_LOOKUP_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +struct stack_st_X509_OBJECT; typedef int (*sk_X509_OBJECT_compfunc)(const X509_OBJECT * const *a, const X509_OBJECT *const *b); typedef void (*sk_X509_OBJECT_freefunc)(X509_OBJECT *a); typedef X509_OBJECT * (*sk_X509_OBJECT_copyfunc)(const X509_OBJECT *a); static __attribute__((unused)) inline int sk_X509_OBJECT_num(const struct stack_st_X509_OBJECT *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_OBJECT *sk_X509_OBJECT_value(const struct stack_st_X509_OBJECT *sk, int idx) { return (X509_OBJECT *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509_OBJECT *sk_X509_OBJECT_new(sk_X509_OBJECT_compfunc compare) { return (struct stack_st_X509_OBJECT *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509_OBJECT *sk_X509_OBJECT_new_null(void) { return (struct stack_st_X509_OBJECT *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509_OBJECT *sk_X509_OBJECT_new_reserve(sk_X509_OBJECT_compfunc compare, int n) { return (struct stack_st_X509_OBJECT *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_OBJECT_reserve(struct stack_st_X509_OBJECT *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_OBJECT_free(struct stack_st_X509_OBJECT *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_OBJECT_zero(struct stack_st_X509_OBJECT *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_OBJECT *sk_X509_OBJECT_delete(struct stack_st_X509_OBJECT *sk, int i) { return (X509_OBJECT *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509_OBJECT *sk_X509_OBJECT_delete_ptr(struct stack_st_X509_OBJECT *sk, X509_OBJECT *ptr) { return (X509_OBJECT *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_OBJECT_push(struct stack_st_X509_OBJECT *sk, X509_OBJECT *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_OBJECT_unshift(struct stack_st_X509_OBJECT *sk, X509_OBJECT *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509_OBJECT *sk_X509_OBJECT_pop(struct stack_st_X509_OBJECT *sk) { return (X509_OBJECT *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_OBJECT *sk_X509_OBJECT_shift(struct stack_st_X509_OBJECT *sk) { return (X509_OBJECT *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_OBJECT_pop_free(struct stack_st_X509_OBJECT *sk, sk_X509_OBJECT_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_OBJECT_insert(struct stack_st_X509_OBJECT *sk, X509_OBJECT *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509_OBJECT *sk_X509_OBJECT_set(struct stack_st_X509_OBJECT *sk, int idx, X509_OBJECT *ptr) { return (X509_OBJECT *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_OBJECT_find(struct stack_st_X509_OBJECT *sk, X509_OBJECT *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_OBJECT_find_ex(struct stack_st_X509_OBJECT *sk, X509_OBJECT *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_OBJECT_sort(struct stack_st_X509_OBJECT *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_OBJECT_is_sorted(const struct stack_st_X509_OBJECT *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_OBJECT * sk_X509_OBJECT_dup(const struct stack_st_X509_OBJECT *sk) { return (struct stack_st_X509_OBJECT *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_OBJECT *sk_X509_OBJECT_deep_copy(const struct stack_st_X509_OBJECT *sk, sk_X509_OBJECT_copyfunc copyfunc, sk_X509_OBJECT_freefunc freefunc) { return (struct stack_st_X509_OBJECT *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_OBJECT_compfunc sk_X509_OBJECT_set_cmp_func(struct stack_st_X509_OBJECT *sk, sk_X509_OBJECT_compfunc compare) { return (sk_X509_OBJECT_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +struct stack_st_X509_VERIFY_PARAM; typedef int (*sk_X509_VERIFY_PARAM_compfunc)(const X509_VERIFY_PARAM * const *a, const X509_VERIFY_PARAM *const *b); typedef void (*sk_X509_VERIFY_PARAM_freefunc)(X509_VERIFY_PARAM *a); typedef X509_VERIFY_PARAM * (*sk_X509_VERIFY_PARAM_copyfunc)(const X509_VERIFY_PARAM *a); static __attribute__((unused)) inline int sk_X509_VERIFY_PARAM_num(const struct stack_st_X509_VERIFY_PARAM *sk) { return OPENSSL_sk_num((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_VERIFY_PARAM *sk_X509_VERIFY_PARAM_value(const struct stack_st_X509_VERIFY_PARAM *sk, int idx) { return (X509_VERIFY_PARAM *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); } static __attribute__((unused)) inline struct stack_st_X509_VERIFY_PARAM *sk_X509_VERIFY_PARAM_new(sk_X509_VERIFY_PARAM_compfunc compare) { return (struct stack_st_X509_VERIFY_PARAM *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); } static __attribute__((unused)) inline struct stack_st_X509_VERIFY_PARAM *sk_X509_VERIFY_PARAM_new_null(void) { return (struct stack_st_X509_VERIFY_PARAM *)OPENSSL_sk_new_null(); } static __attribute__((unused)) inline struct stack_st_X509_VERIFY_PARAM *sk_X509_VERIFY_PARAM_new_reserve(sk_X509_VERIFY_PARAM_compfunc compare, int n) { return (struct stack_st_X509_VERIFY_PARAM *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); } static __attribute__((unused)) inline int sk_X509_VERIFY_PARAM_reserve(struct stack_st_X509_VERIFY_PARAM *sk, int n) { return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); } static __attribute__((unused)) inline void sk_X509_VERIFY_PARAM_free(struct stack_st_X509_VERIFY_PARAM *sk) { OPENSSL_sk_free((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_VERIFY_PARAM_zero(struct stack_st_X509_VERIFY_PARAM *sk) { OPENSSL_sk_zero((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_VERIFY_PARAM *sk_X509_VERIFY_PARAM_delete(struct stack_st_X509_VERIFY_PARAM *sk, int i) { return (X509_VERIFY_PARAM *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); } static __attribute__((unused)) inline X509_VERIFY_PARAM *sk_X509_VERIFY_PARAM_delete_ptr(struct stack_st_X509_VERIFY_PARAM *sk, X509_VERIFY_PARAM *ptr) { return (X509_VERIFY_PARAM *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_VERIFY_PARAM_push(struct stack_st_X509_VERIFY_PARAM *sk, X509_VERIFY_PARAM *ptr) { return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_VERIFY_PARAM_unshift(struct stack_st_X509_VERIFY_PARAM *sk, X509_VERIFY_PARAM *ptr) { return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline X509_VERIFY_PARAM *sk_X509_VERIFY_PARAM_pop(struct stack_st_X509_VERIFY_PARAM *sk) { return (X509_VERIFY_PARAM *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline X509_VERIFY_PARAM *sk_X509_VERIFY_PARAM_shift(struct stack_st_X509_VERIFY_PARAM *sk) { return (X509_VERIFY_PARAM *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline void sk_X509_VERIFY_PARAM_pop_free(struct stack_st_X509_VERIFY_PARAM *sk, sk_X509_VERIFY_PARAM_freefunc freefunc) { OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline int sk_X509_VERIFY_PARAM_insert(struct stack_st_X509_VERIFY_PARAM *sk, X509_VERIFY_PARAM *ptr, int idx) { return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); } static __attribute__((unused)) inline X509_VERIFY_PARAM *sk_X509_VERIFY_PARAM_set(struct stack_st_X509_VERIFY_PARAM *sk, int idx, X509_VERIFY_PARAM *ptr) { return (X509_VERIFY_PARAM *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_VERIFY_PARAM_find(struct stack_st_X509_VERIFY_PARAM *sk, X509_VERIFY_PARAM *ptr) { return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline int sk_X509_VERIFY_PARAM_find_ex(struct stack_st_X509_VERIFY_PARAM *sk, X509_VERIFY_PARAM *ptr) { return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); } static __attribute__((unused)) inline void sk_X509_VERIFY_PARAM_sort(struct stack_st_X509_VERIFY_PARAM *sk) { OPENSSL_sk_sort((OPENSSL_STACK *)sk); } static __attribute__((unused)) inline int sk_X509_VERIFY_PARAM_is_sorted(const struct stack_st_X509_VERIFY_PARAM *sk) { return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_VERIFY_PARAM * sk_X509_VERIFY_PARAM_dup(const struct stack_st_X509_VERIFY_PARAM *sk) { return (struct stack_st_X509_VERIFY_PARAM *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); } static __attribute__((unused)) inline struct stack_st_X509_VERIFY_PARAM *sk_X509_VERIFY_PARAM_deep_copy(const struct stack_st_X509_VERIFY_PARAM *sk, sk_X509_VERIFY_PARAM_copyfunc copyfunc, sk_X509_VERIFY_PARAM_freefunc freefunc) { return (struct stack_st_X509_VERIFY_PARAM *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, (OPENSSL_sk_copyfunc)copyfunc, (OPENSSL_sk_freefunc)freefunc); } static __attribute__((unused)) inline sk_X509_VERIFY_PARAM_compfunc sk_X509_VERIFY_PARAM_set_cmp_func(struct stack_st_X509_VERIFY_PARAM *sk, sk_X509_VERIFY_PARAM_compfunc compare) { return (sk_X509_VERIFY_PARAM_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); } +int X509_STORE_set_depth(X509_STORE *store, int depth); +typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *); +typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *); +typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, + X509_STORE_CTX *ctx, X509 *x); +typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, + X509 *x, X509 *issuer); +typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); +typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, + X509_CRL **crl, X509 *x); +typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl); +typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, + X509_CRL *crl, X509 *x); +typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx); +typedef struct stack_st_X509 *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx, + X509_NAME *nm); +typedef struct stack_st_X509_CRL *(*X509_STORE_CTX_lookup_crls_fn)(X509_STORE_CTX *ctx, + X509_NAME *nm); +typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); +#define X509_STORE_CTX_set_app_data(ctx,data) X509_STORE_CTX_set_ex_data(ctx,0,data) +#define X509_STORE_CTX_get_app_data(ctx) X509_STORE_CTX_get_ex_data(ctx,0) +enum { + X509_L_FILE_LOAD = 1, + X509_L_ADD_DIR = 2, +}; +#define X509_LOOKUP_load_file(x,name,type) X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) +#define X509_LOOKUP_add_dir(x,name,type) X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) +enum { + X509_V_OK = 0, + X509_V_ERR_UNSPECIFIED = 1, + X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT = 2, + X509_V_ERR_UNABLE_TO_GET_CRL = 3, + X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE = 4, + X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE = 5, + X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY = 6, + X509_V_ERR_CERT_SIGNATURE_FAILURE = 7, + X509_V_ERR_CRL_SIGNATURE_FAILURE = 8, + X509_V_ERR_CERT_NOT_YET_VALID = 9, + X509_V_ERR_CERT_HAS_EXPIRED = 10, + X509_V_ERR_CRL_NOT_YET_VALID = 11, + X509_V_ERR_CRL_HAS_EXPIRED = 12, + X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD = 13, + X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD = 14, + X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD = 15, + X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = 16, + X509_V_ERR_OUT_OF_MEM = 17, + X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT = 18, + X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN = 19, + X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY = 20, + X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE = 21, + X509_V_ERR_CERT_CHAIN_TOO_LONG = 22, + X509_V_ERR_CERT_REVOKED = 23, + X509_V_ERR_INVALID_CA = 24, + X509_V_ERR_PATH_LENGTH_EXCEEDED = 25, + X509_V_ERR_INVALID_PURPOSE = 26, + X509_V_ERR_CERT_UNTRUSTED = 27, + X509_V_ERR_CERT_REJECTED = 28, + X509_V_ERR_SUBJECT_ISSUER_MISMATCH = 29, + X509_V_ERR_AKID_SKID_MISMATCH = 30, + X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH = 31, + X509_V_ERR_KEYUSAGE_NO_CERTSIGN = 32, + X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER = 33, + X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION = 34, + X509_V_ERR_KEYUSAGE_NO_CRL_SIGN = 35, + X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION = 36, + X509_V_ERR_INVALID_NON_CA = 37, + X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED = 38, + X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE = 39, + X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED = 40, + X509_V_ERR_INVALID_EXTENSION = 41, + X509_V_ERR_INVALID_POLICY_EXTENSION = 42, + X509_V_ERR_NO_EXPLICIT_POLICY = 43, + X509_V_ERR_DIFFERENT_CRL_SCOPE = 44, + X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE = 45, + X509_V_ERR_UNNESTED_RESOURCE = 46, + X509_V_ERR_PERMITTED_VIOLATION = 47, + X509_V_ERR_EXCLUDED_VIOLATION = 48, + X509_V_ERR_SUBTREE_MINMAX = 49, + X509_V_ERR_APPLICATION_VERIFICATION = 50, + X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE = 51, + X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX = 52, + X509_V_ERR_UNSUPPORTED_NAME_SYNTAX = 53, + X509_V_ERR_CRL_PATH_VALIDATION_ERROR = 54, + X509_V_ERR_PATH_LOOP = 55, + X509_V_ERR_SUITE_B_INVALID_VERSION = 56, + X509_V_ERR_SUITE_B_INVALID_ALGORITHM = 57, + X509_V_ERR_SUITE_B_INVALID_CURVE = 58, + X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM = 59, + X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED = 60, + X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 = 61, + X509_V_ERR_HOSTNAME_MISMATCH = 62, + X509_V_ERR_EMAIL_MISMATCH = 63, + X509_V_ERR_IP_ADDRESS_MISMATCH = 64, + X509_V_ERR_DANE_NO_MATCH = 65, + X509_V_ERR_EE_KEY_TOO_SMALL = 66, + X509_V_ERR_CA_KEY_TOO_SMALL = 67, + X509_V_ERR_CA_MD_TOO_WEAK = 68, + X509_V_ERR_INVALID_CALL = 69, + X509_V_ERR_STORE_LOOKUP = 70, + X509_V_ERR_NO_VALID_SCTS = 71, + X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION = 72, + X509_V_ERR_OCSP_VERIFY_NEEDED = 73, + X509_V_ERR_OCSP_VERIFY_FAILED = 74, + X509_V_ERR_OCSP_CERT_UNKNOWN = 75, + X509_V_FLAG_CB_ISSUER_CHECK = 0x0, + X509_V_FLAG_USE_CHECK_TIME = 0x2, + X509_V_FLAG_CRL_CHECK = 0x4, + X509_V_FLAG_CRL_CHECK_ALL = 0x8, + X509_V_FLAG_IGNORE_CRITICAL = 0x10, + X509_V_FLAG_X509_STRICT = 0x20, + X509_V_FLAG_ALLOW_PROXY_CERTS = 0x40, + X509_V_FLAG_POLICY_CHECK = 0x80, + X509_V_FLAG_EXPLICIT_POLICY = 0x100, + X509_V_FLAG_INHIBIT_ANY = 0x200, + X509_V_FLAG_INHIBIT_MAP = 0x400, + X509_V_FLAG_NOTIFY_POLICY = 0x800, + X509_V_FLAG_EXTENDED_CRL_SUPPORT = 0x1000, + X509_V_FLAG_USE_DELTAS = 0x2000, + X509_V_FLAG_CHECK_SS_SIGNATURE = 0x4000, + X509_V_FLAG_TRUSTED_FIRST = 0x8000, + X509_V_FLAG_SUITEB_128_LOS_ONLY = 0x10000, + X509_V_FLAG_SUITEB_192_LOS = 0x20000, + X509_V_FLAG_SUITEB_128_LOS = 0x30000, + X509_V_FLAG_PARTIAL_CHAIN = 0x80000, + X509_V_FLAG_NO_ALT_CHAINS = 0x100000, + X509_V_FLAG_NO_CHECK_TIME = 0x200000, + X509_VP_FLAG_DEFAULT = 0x1, + X509_VP_FLAG_OVERWRITE = 0x2, + X509_VP_FLAG_RESET_FLAGS = 0x4, + X509_VP_FLAG_LOCKED = 0x8, + X509_VP_FLAG_ONCE = 0x10, + X509_V_FLAG_POLICY_MASK = (X509_V_FLAG_POLICY_CHECK | X509_V_FLAG_EXPLICIT_POLICY | X509_V_FLAG_INHIBIT_ANY | X509_V_FLAG_INHIBIT_MAP), +}; +int X509_OBJECT_idx_by_subject(struct stack_st_X509_OBJECT *h, X509_LOOKUP_TYPE type, + X509_NAME *name); +X509_OBJECT *X509_OBJECT_retrieve_by_subject(struct stack_st_X509_OBJECT *h, + X509_LOOKUP_TYPE type, + X509_NAME *name); +X509_OBJECT *X509_OBJECT_retrieve_match(struct stack_st_X509_OBJECT *h, + X509_OBJECT *x); +int X509_OBJECT_up_ref_count(X509_OBJECT *a); +X509_OBJECT *X509_OBJECT_new(void); +void X509_OBJECT_free(X509_OBJECT *a); +X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a); +X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a); +int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); +X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *a); +int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); +X509_STORE *X509_STORE_new(void); +void X509_STORE_free(X509_STORE *v); +int X509_STORE_lock(X509_STORE *ctx); +int X509_STORE_unlock(X509_STORE *ctx); +int X509_STORE_up_ref(X509_STORE *v); +struct stack_st_X509_OBJECT *X509_STORE_get0_objects(X509_STORE *v); +struct stack_st_X509 *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); +struct stack_st_X509_CRL *X509_STORE_CTX_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); +int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); +int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); +int X509_STORE_set_trust(X509_STORE *ctx, int trust); +int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); +X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *ctx); +void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); +#define X509_STORE_set_verify_func(ctx,func) X509_STORE_set_verify((ctx),(func)) +void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, + X509_STORE_CTX_verify_fn verify); +X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx); +void X509_STORE_set_verify_cb(X509_STORE *ctx, + X509_STORE_CTX_verify_cb verify_cb); +#define X509_STORE_set_verify_cb_func(ctx,func) X509_STORE_set_verify_cb((ctx),(func)) +X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(X509_STORE *ctx); +void X509_STORE_set_get_issuer(X509_STORE *ctx, + X509_STORE_CTX_get_issuer_fn get_issuer); +X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(X509_STORE *ctx); +void X509_STORE_set_check_issued(X509_STORE *ctx, + X509_STORE_CTX_check_issued_fn check_issued); +X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(X509_STORE *ctx); +void X509_STORE_set_check_revocation(X509_STORE *ctx, + X509_STORE_CTX_check_revocation_fn check_revocation); +X509_STORE_CTX_check_revocation_fn X509_STORE_get_check_revocation(X509_STORE *ctx); +void X509_STORE_set_get_crl(X509_STORE *ctx, + X509_STORE_CTX_get_crl_fn get_crl); +X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(X509_STORE *ctx); +void X509_STORE_set_check_crl(X509_STORE *ctx, + X509_STORE_CTX_check_crl_fn check_crl); +X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(X509_STORE *ctx); +void X509_STORE_set_cert_crl(X509_STORE *ctx, + X509_STORE_CTX_cert_crl_fn cert_crl); +X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(X509_STORE *ctx); +void X509_STORE_set_check_policy(X509_STORE *ctx, + X509_STORE_CTX_check_policy_fn check_policy); +X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(X509_STORE *ctx); +void X509_STORE_set_lookup_certs(X509_STORE *ctx, + X509_STORE_CTX_lookup_certs_fn lookup_certs); +X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(X509_STORE *ctx); +void X509_STORE_set_lookup_crls(X509_STORE *ctx, + X509_STORE_CTX_lookup_crls_fn lookup_crls); +#define X509_STORE_set_lookup_crls_cb(ctx,func) X509_STORE_set_lookup_crls((ctx), (func)) +X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(X509_STORE *ctx); +void X509_STORE_set_cleanup(X509_STORE *ctx, + X509_STORE_CTX_cleanup_fn cleanup); +X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(X509_STORE *ctx); +#define X509_STORE_get_ex_new_index(l,p,newf,dupf,freef) CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) +int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); +void *X509_STORE_get_ex_data(X509_STORE *ctx, int idx); +X509_STORE_CTX *X509_STORE_CTX_new(void); +int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); +void X509_STORE_CTX_free(X509_STORE_CTX *ctx); +int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, + X509 *x509, struct stack_st_X509 *chain); +void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, struct stack_st_X509 *sk); +void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); +X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); +X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx); +struct stack_st_X509* X509_STORE_CTX_get0_untrusted(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, struct stack_st_X509 *sk); +void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, + X509_STORE_CTX_verify_cb verify); +X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(X509_STORE_CTX *ctx); +X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(X509_STORE_CTX *ctx); +X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(X509_STORE_CTX *ctx); +X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(X509_STORE_CTX *ctx); +X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(X509_STORE_CTX *ctx); +X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(X509_STORE_CTX *ctx); +X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(X509_STORE_CTX *ctx); +X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(X509_STORE_CTX *ctx); +X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(X509_STORE_CTX *ctx); +enum { + X509_STORE_CTX_get_chain = X509_STORE_CTX_get0_chain, + X509_STORE_CTX_set_chain = X509_STORE_CTX_set0_untrusted, + X509_STORE_CTX_trusted_stack = X509_STORE_CTX_set0_trusted_stack, + X509_STORE_get_by_subject = X509_STORE_CTX_get_by_subject, + X509_STORE_get1_certs = X509_STORE_CTX_get1_certs, + X509_STORE_get1_crls = X509_STORE_CTX_get1_crls, + X509_STORE_get1_cert = X509_STORE_CTX_get1_certs, + X509_STORE_get1_crl = X509_STORE_CTX_get1_crls, +}; +X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); +X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); +X509_LOOKUP_METHOD *X509_LOOKUP_file(void); +typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc, + long argl, char **ret); +typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + X509_NAME *name, + X509_OBJECT *ret); +typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + X509_NAME *name, + ASN1_INTEGER *serial, + X509_OBJECT *ret); +typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + const unsigned char* bytes, + int len, + X509_OBJECT *ret); +typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx, + X509_LOOKUP_TYPE type, + const char *str, + int len, + X509_OBJECT *ret); +X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name); +void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method); +int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method, + int (*new_item) (X509_LOOKUP *ctx)); +int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); +int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method, + void (*free_fn) (X509_LOOKUP *ctx)); +void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); +int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method, + int (*init) (X509_LOOKUP *ctx)); +int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); +int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method, + int (*shutdown) (X509_LOOKUP *ctx)); +int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method)) + (X509_LOOKUP *ctx); +int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method, + X509_LOOKUP_ctrl_fn ctrl_fn); +X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method); +int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_subject_fn fn); +X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject( + const X509_LOOKUP_METHOD *method); +int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_issuer_serial_fn fn); +X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial( + const X509_LOOKUP_METHOD *method); +int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_fingerprint_fn fn); +X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint( + const X509_LOOKUP_METHOD *method); +int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method, + X509_LOOKUP_get_by_alias_fn fn); +X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( + const X509_LOOKUP_METHOD *method); +int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); +int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); +int X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, + X509_NAME *name, X509_OBJECT *ret); +X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, + X509_LOOKUP_TYPE type, + X509_NAME *name); +int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, + long argl, char **ret); +int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); +int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); +int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); +X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); +void X509_LOOKUP_free(X509_LOOKUP *ctx); +int X509_LOOKUP_init(X509_LOOKUP *ctx); +int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + X509_NAME *name, X509_OBJECT *ret); +int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + X509_NAME *name, ASN1_INTEGER *serial, + X509_OBJECT *ret); +int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + const unsigned char *bytes, int len, + X509_OBJECT *ret); +int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, + const char *str, int len, X509_OBJECT *ret); +int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data); +void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); +X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); +int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); +int X509_STORE_load_locations(X509_STORE *ctx, + const char *file, const char *dir); +int X509_STORE_set_default_paths(X509_STORE *ctx); +#define X509_STORE_CTX_get_ex_new_index(l,p,newf,dupf,freef) CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) +int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); +void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx); +int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); +int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth); +X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x); +X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx); +X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx); +X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx); +struct stack_st_X509 *X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx); +struct stack_st_X509 *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x); +void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, struct stack_st_X509 *sk); +void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, struct stack_st_X509_CRL *sk); +int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); +int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); +int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, + int purpose, int trust); +void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); +void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, + time_t t); +X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); +int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); +int X509_STORE_CTX_get_num_untrusted(X509_STORE_CTX *ctx); +X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); +void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); +int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); +void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane); +enum { + DANE_FLAG_NO_DANE_EE_NAMECHECKS = (1L << 0), +}; +X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); +void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, + const X509_VERIFY_PARAM *from); +int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, + const X509_VERIFY_PARAM *from); +int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); +int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, + unsigned long flags); +int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, + unsigned long flags); +unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); +int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); +void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); +void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); +time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param); +void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); +int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, + ASN1_OBJECT *policy); +int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, + struct stack_st_ASN1_OBJECT *policies); +int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, + uint32_t flags); +uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen); +int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, + const char *name, size_t namelen); +void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, + unsigned int flags); +unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param); +char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); +void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *); +int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, + const char *email, size_t emaillen); +int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, + const unsigned char *ip, size_t iplen); +int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, + const char *ipasc); +int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param); +const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); +int X509_VERIFY_PARAM_get_count(void); +const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); +const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); +void X509_VERIFY_PARAM_table_cleanup(void); +enum { + X509_PCY_TREE_FAILURE = -2, + X509_PCY_TREE_INVALID = -1, + X509_PCY_TREE_INTERNAL = 0, + X509_PCY_TREE_VALID = 1, + X509_PCY_TREE_EMPTY = 2, + X509_PCY_TREE_EXPLICIT = 4, +}; +int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, + struct stack_st_X509 *certs, + struct stack_st_ASN1_OBJECT *policy_oids, unsigned int flags); +void X509_policy_tree_free(X509_POLICY_TREE *tree); +int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); +X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, + int i); +struct stack_st_X509_POLICY_NODE *X509_policy_tree_get0_policies(const + X509_POLICY_TREE + *tree); +struct stack_st_X509_POLICY_NODE *X509_policy_tree_get0_user_policies(const + X509_POLICY_TREE + *tree); +int X509_policy_level_node_count(X509_POLICY_LEVEL *level); +X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, + int i); +const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); +struct stack_st_POLICYQUALINFO *X509_policy_node_get0_qualifiers(const + X509_POLICY_NODE + *node); +const X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE + *node); diff --git a/openssl.lua b/openssl.lua new file mode 100644 index 0000000..2eedbe5 --- /dev/null +++ b/openssl.lua @@ -0,0 +1,5 @@ + +--OpenSSL binding for LuaJIT. +--Written by Cosmin Apreutesei. Public Domain. + + diff --git a/openssl_h.lua b/openssl_h.lua new file mode 100644 index 0000000..0e02bc1 --- /dev/null +++ b/openssl_h.lua @@ -0,0 +1,6 @@ +local ffi = require'ffi' + +ffi.cdef[[ + + +]]