📄 asn1.h
字号:
#ifndef OPENSSL_NO_BIOvoid *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 *(*)(type *(*)(void),D2I_OF(type),BIO *,type **))openssl_fcast(ASN1_d2i_bio))(xnew,d2i,in,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) \ ((int (*)(I2D_OF(type),BIO *,type *))openssl_fcast(ASN1_i2d_bio))(i2d,out,x)#define ASN1_i2d_bio_of_const(type,i2d,out,x) \ ((int (*)(I2D_OF_const(type),BIO *,const type *))openssl_fcast(ASN1_i2d_bio))(i2d,out,x)int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x);int ASN1_UTCTIME_print(BIO *fp,ASN1_UTCTIME *a);int ASN1_GENERALIZEDTIME_print(BIO *fp,ASN1_GENERALIZEDTIME *a);int ASN1_TIME_print(BIO *fp,ASN1_TIME *a);int ASN1_STRING_print(BIO *bp,ASN1_STRING *v);int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags);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);#endifconst char *ASN1_tag2str(int tag);/* Used to load and write netscape format cert/key */int i2d_ASN1_HEADER(ASN1_HEADER *a,unsigned char **pp);ASN1_HEADER *d2i_ASN1_HEADER(ASN1_HEADER **a,const unsigned char **pp, long length);ASN1_HEADER *ASN1_HEADER_new(void );void ASN1_HEADER_free(ASN1_HEADER *a);int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s);/* Not used that much at this point, except for the first two */ASN1_METHOD *X509_asn1_meth(void);ASN1_METHOD *RSAPrivateKey_asn1_meth(void);ASN1_METHOD *ASN1_IA5STRING_asn1_meth(void);ASN1_METHOD *ASN1_BIT_STRING_asn1_meth(void);int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len);int ASN1_TYPE_get_octetstring(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(ASN1_TYPE *a,long *num, unsigned char *data, int max_len);STACK *ASN1_seq_unpack(const unsigned char *buf, int len, d2i_of_void *d2i, void (*free_func)(void *));unsigned char *ASN1_seq_pack(STACK *safes, i2d_of_void *i2d, unsigned char **buf, int *len );void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i);void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d, ASN1_OCTET_STRING **oct);#define ASN1_pack_string_of(type,obj,i2d,oct) \ ((ASN1_STRING *(*)(type *,I2D_OF(type),ASN1_OCTET_STRING **))openssl_fcast(ASN1_pack_string))(obj,i2d,oct)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(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 template functions *//* Old API compatible functions */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);ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf);ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf); /* BEGIN ERROR CODES *//* The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */void ERR_load_ASN1_strings(void);/* Error codes for the ASN1 functions. *//* Function codes. */#define ASN1_F_A2D_ASN1_OBJECT 100#define ASN1_F_A2I_ASN1_ENUMERATED 101#define ASN1_F_A2I_ASN1_INTEGER 102#define ASN1_F_A2I_ASN1_STRING 103#define ASN1_F_APPEND_EXP 176#define ASN1_F_ASN1_BIT_STRING_SET_BIT 183#define ASN1_F_ASN1_CB 177#define ASN1_F_ASN1_CHECK_TLEN 104#define ASN1_F_ASN1_COLLATE_PRIMITIVE 105#define ASN1_F_ASN1_COLLECT 106#define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108#define ASN1_F_ASN1_D2I_FP 109#define ASN1_F_ASN1_D2I_READ_BIO 107#define ASN1_F_ASN1_DIGEST 184#define ASN1_F_ASN1_DO_ADB 110#define ASN1_F_ASN1_DUP 111#define ASN1_F_ASN1_ENUMERATED_SET 112#define ASN1_F_ASN1_ENUMERATED_TO_BN 113#define ASN1_F_ASN1_EX_C2I 204#define ASN1_F_ASN1_FIND_END 190#define ASN1_F_ASN1_GENERALIZEDTIME_SET 185#define ASN1_F_ASN1_GENERATE_V3 178#define ASN1_F_ASN1_GET_OBJECT 114#define ASN1_F_ASN1_HEADER_NEW 115#define ASN1_F_ASN1_I2D_BIO 116#define ASN1_F_ASN1_I2D_FP 117#define ASN1_F_ASN1_INTEGER_SET 118#define ASN1_F_ASN1_INTEGER_TO_BN 119#define ASN1_F_ASN1_ITEM_D2I_FP 190#define ASN1_F_ASN1_ITEM_DUP 191#define ASN1_F_ASN1_ITEM_EX_COMBINE_NEW 121#define ASN1_F_ASN1_ITEM_EX_D2I 120#define ASN1_F_ASN1_ITEM_I2D_BIO 192#define ASN1_F_ASN1_ITEM_I2D_FP 193#define ASN1_F_ASN1_ITEM_PACK 198#define ASN1_F_ASN1_ITEM_SIGN 195#define ASN1_F_ASN1_ITEM_UNPACK 199#define ASN1_F_ASN1_ITEM_VERIFY 197#define ASN1_F_ASN1_MBSTRING_NCOPY 122#define ASN1_F_ASN1_OBJECT_NEW 123#define ASN1_F_ASN1_PACK_STRING 124#define ASN1_F_ASN1_PCTX_NEW 205#define ASN1_F_ASN1_PKCS5_PBE_SET 125#define ASN1_F_ASN1_SEQ_PACK 126#define ASN1_F_ASN1_SEQ_UNPACK 127#define ASN1_F_ASN1_SIGN 128#define ASN1_F_ASN1_STR2TYPE 179#define ASN1_F_ASN1_STRING_SET 186#define ASN1_F_ASN1_STRING_TABLE_ADD 129#define ASN1_F_ASN1_STRING_TYPE_NEW 130#define ASN1_F_ASN1_TEMPLATE_EX_D2I 132#define ASN1_F_ASN1_TEMPLATE_NEW 133#define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131#define ASN1_F_ASN1_TIME_SET 175#define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134#define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135#define ASN1_F_ASN1_UNPACK_STRING 136#define ASN1_F_ASN1_UTCTIME_SET 187#define ASN1_F_ASN1_VERIFY 137#define ASN1_F_BITSTR_CB 180#define ASN1_F_BN_TO_ASN1_ENUMERATED 138#define ASN1_F_BN_TO_ASN1_INTEGER 139#define ASN1_F_C2I_ASN1_BIT_STRING 189#define ASN1_F_C2I_ASN1_INTEGER 194#define ASN1_F_C2I_ASN1_OBJECT 196#define ASN1_F_COLLECT_DATA 140#define ASN1_F_D2I_ASN1_BIT_STRING 141#define ASN1_F_D2I_ASN1_BOOLEAN 142#define ASN1_F_D2I_ASN1_BYTES 143#define ASN1_F_D2I_ASN1_GENERALIZEDTIME 144#define ASN1_F_D2I_ASN1_HEADER 145#define ASN1_F_D2I_ASN1_INTEGER 146#define ASN1_F_D2I_ASN1_OBJECT 147#define ASN1_F_D2I_ASN1_SET 148#define ASN1_F_D2I_ASN1_TYPE_BYTES 149#define ASN1_F_D2I_ASN1_UINTEGER 150#define ASN1_F_D2I_ASN1_UTCTIME 151#define ASN1_F_D2I_NETSCAPE_RSA 152#define ASN1_F_D2I_NETSCAPE_RSA_2 153#define ASN1_F_D2I_PRIVATEKEY 154#define ASN1_F_D2I_PUBLICKEY 155#define ASN1_F_D2I_RSA_NET 200#define ASN1_F_D2I_RSA_NET_2 201#define ASN1_F_D2I_X509 156#define ASN1_F_D2I_X509_CINF 157#define ASN1_F_D2I_X509_PKEY 159#define ASN1_F_I2D_ASN1_SET 188#define ASN1_F_I2D_ASN1_TIME 160#define ASN1_F_I2D_DSA_PUBKEY 161#define ASN1_F_I2D_EC_PUBKEY 181#define ASN1_F_I2D_PRIVATEKEY 163#define ASN1_F_I2D_PUBLICKEY 164#define ASN1_F_I2D_RSA_NET 162#define ASN1_F_I2D_RSA_PUBKEY 165#define ASN1_F_LONG_C2I 166#define ASN1_F_OID_MODULE_INIT 174#define ASN1_F_PARSE_TAGGING 182#define ASN1_F_PKCS5_PBE2_SET 167#define ASN1_F_PKCS5_PBE_SET 202#define ASN1_F_X509_CINF_NEW 168#define ASN1_F_X509_CRL_ADD0_REVOKED 169#define ASN1_F_X509_INFO_NEW 170#define ASN1_F_X509_NAME_ENCODE 203#define ASN1_F_X509_NAME_EX_D2I 158#define ASN1_F_X509_NAME_EX_NEW 171#define ASN1_F_X509_NEW 172#define ASN1_F_X509_PKEY_NEW 173/* Reason codes. */#define ASN1_R_ADDING_OBJECT 171#define ASN1_R_AUX_ERROR 100#define ASN1_R_BAD_CLASS 101#define ASN1_R_BAD_OBJECT_HEADER 102#define ASN1_R_BAD_PASSWORD_READ 103#define ASN1_R_BAD_TAG 104#define ASN1_R_BN_LIB 105#define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106#define ASN1_R_BUFFER_TOO_SMALL 107#define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108#define ASN1_R_DATA_IS_WRONG 109#define ASN1_R_DECODE_ERROR 110#define ASN1_R_DECODING_ERROR 111#define ASN1_R_DEPTH_EXCEEDED 174#define ASN1_R_ENCODE_ERROR 112#define ASN1_R_ERROR_GETTING_TIME 173#define ASN1_R_ERROR_LOADING_SECTION 172#define ASN1_R_ERROR_PARSING_SET_ELEMENT 113#define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114#define ASN1_R_EXPECTING_AN_INTEGER 115#define ASN1_R_EXPECTING_AN_OBJECT 116#define ASN1_R_EXPECTING_A_BOOLEAN 117#define ASN1_R_EXPECTING_A_TIME 118#define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119#define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120#define ASN1_R_FIELD_MISSING 121#define ASN1_R_FIRST_NUM_TOO_LARGE 122#define ASN1_R_HEADER_TOO_LONG 123#define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175#define ASN1_R_ILLEGAL_BOOLEAN 176#define ASN1_R_ILLEGAL_CHARACTERS 124#define ASN1_R_ILLEGAL_FORMAT 177#define ASN1_R_ILLEGAL_HEX 178#define ASN1_R_ILLEGAL_IMPLICIT_TAG 179#define ASN1_R_ILLEGAL_INTEGER 180#define ASN1_R_ILLEGAL_NESTED_TAGGING 181#define ASN1_R_ILLEGAL_NULL 125#define ASN1_R_ILLEGAL_NULL_VALUE 182#define ASN1_R_ILLEGAL_OBJECT 183#define ASN1_R_ILLEGAL_OPTIONAL_ANY 126#define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170#define ASN1_R_ILLEGAL_TAGGED_ANY 127#define ASN1_R_ILLEGAL_TIME_VALUE 184#define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185#define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128#define ASN1_R_INVALID_BMPSTRING_LENGTH 129#define ASN1_R_INVALID_DIGIT 130#define ASN1_R_INVALID_MODIFIER 186#define ASN1_R_INVALID_NUMBER 187#define ASN1_R_INVALID_SEPARATOR 131#define ASN1_R_INVALID_TIME_FORMAT 132#define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133#define ASN1_R_INVALID_UTF8STRING 134#define ASN1_R_IV_TOO_LARGE 135#define ASN1_R_LENGTH_ERROR 136#define ASN1_R_LIST_ERROR 188#define ASN1_R_MISSING_EOC 137#define ASN1_R_MISSING_SECOND_NUMBER 138#define ASN1_R_MISSING_VALUE 189#define ASN1_R_MSTRING_NOT_UNIVERSAL 139#define ASN1_R_MSTRING_WRONG_TAG 140#define ASN1_R_NESTED_ASN1_STRING 197#define ASN1_R_NON_HEX_CHARACTERS 141#define ASN1_R_NOT_ASCII_FORMAT 190#define ASN1_R_NOT_ENOUGH_DATA 142#define ASN1_R_NO_MATCHING_CHOICE_TYPE 143#define ASN1_R_NULL_IS_WRONG_LENGTH 144#define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191#define ASN1_R_ODD_NUMBER_OF_CHARS 145#define ASN1_R_PRIVATE_KEY_HEADER_MISSING 146#define ASN1_R_SECOND_NUMBER_TOO_LARGE 147#define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148#define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149#define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192#define ASN1_R_SHORT_LINE 150#define ASN1_R_STRING_TOO_LONG 151#define ASN1_R_STRING_TOO_SHORT 152#define ASN1_R_TAG_VALUE_TOO_HIGH 153#define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154#define ASN1_R_TIME_NOT_ASCII_FORMAT 193#define ASN1_R_TOO_LONG 155#define ASN1_R_TYPE_NOT_CONSTRUCTED 156#define ASN1_R_UNABLE_TO_DECODE_RSA_KEY 157#define ASN1_R_UNABLE_TO_DECODE_RSA_PRIVATE_KEY 158#define ASN1_R_UNEXPECTED_EOC 159#define ASN1_R_UNKNOWN_FORMAT 160#define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161#define ASN1_R_UNKNOWN_OBJECT_TYPE 162#define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163#define ASN1_R_UNKNOWN_TAG 194#define ASN1_R_UNKOWN_FORMAT 195#define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164#define ASN1_R_UNSUPPORTED_CIPHER 165#define ASN1_R_UNSUPPORTED_ENCRYPTION_ALGORITHM 166#define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167#define ASN1_R_UNSUPPORTED_TYPE 196#define ASN1_R_WRONG_TAG 168#define ASN1_R_WRONG_TYPE 169#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -