📄 asn1.h
字号:
int ASN1_BIT_STRING_num_asc(char *name, BIT_STRING_BITNAME *tbl);int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value, BIT_STRING_BITNAME *tbl);int i2d_ASN1_BOOLEAN(int a,unsigned char **pp);int d2i_ASN1_BOOLEAN(int *a,unsigned char **pp,long length);DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER)int i2c_ASN1_INTEGER(ASN1_INTEGER *a,unsigned char **pp);ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a,unsigned char **pp, long length);ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a,unsigned char **pp, long length);ASN1_INTEGER * ASN1_INTEGER_dup(ASN1_INTEGER *x);int ASN1_INTEGER_cmp(ASN1_INTEGER *x, ASN1_INTEGER *y);DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED)int ASN1_UTCTIME_check(ASN1_UTCTIME *a);ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s,time_t t);int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, char *str); int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t);#if 0time_t ASN1_UTCTIME_get(const ASN1_UTCTIME *s);#endifint ASN1_GENERALIZEDTIME_check(ASN1_GENERALIZEDTIME *a);ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,time_t t);int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, char *str); DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING)ASN1_OCTET_STRING * ASN1_OCTET_STRING_dup(ASN1_OCTET_STRING *a);int ASN1_OCTET_STRING_cmp(ASN1_OCTET_STRING *a, ASN1_OCTET_STRING *b);int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, unsigned char *data, int len);DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING)DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING)DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING)DECLARE_ASN1_FUNCTIONS(ASN1_NULL)DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING)int UTF8_getc(const unsigned char *str, int len, unsigned long *val);int UTF8_putc(unsigned char *str, int len, unsigned long value);DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE)DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING)DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT)DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING)DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING)DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING)DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING)DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME)DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME)DECLARE_ASN1_FUNCTIONS(ASN1_TIME)ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s,time_t t);int ASN1_TIME_check(ASN1_TIME *t);ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME **out);int i2d_ASN1_SET(STACK *a, unsigned char **pp, int (*func)(), int ex_tag, int ex_class, int is_set);STACK * d2i_ASN1_SET(STACK **a, unsigned char **pp, long length, char *(*func)(), void (*free_func)(void *), int ex_tag, int ex_class);#ifndef OPENSSL_NO_BIOint i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a);int a2i_ASN1_INTEGER(BIO *bp,ASN1_INTEGER *bs,char *buf,int size);int i2a_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *a);int a2i_ASN1_ENUMERATED(BIO *bp,ASN1_ENUMERATED *bs,char *buf,int size);int i2a_ASN1_OBJECT(BIO *bp,ASN1_OBJECT *a);int a2i_ASN1_STRING(BIO *bp,ASN1_STRING *bs,char *buf,int size);int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type);#endifint i2t_ASN1_OBJECT(char *buf,int buf_len,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_set(ASN1_INTEGER *a, long v);long ASN1_INTEGER_get(ASN1_INTEGER *a);ASN1_INTEGER *BN_to_ASN1_INTEGER(BIGNUM *bn, ASN1_INTEGER *ai);BIGNUM *ASN1_INTEGER_to_BN(ASN1_INTEGER *ai,BIGNUM *bn);int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v);long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a);ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai);BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai,BIGNUM *bn);/* General *//* given a string, return the correct type, max is the maximum length */int ASN1_PRINTABLE_type(unsigned char *s, int max);int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass);ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, unsigned char **pp, long length, int Ptag, int Pclass);unsigned long ASN1_tag2bit(int tag);/* type is one or more of the B_ASN1_ values. */ASN1_STRING *d2i_ASN1_type_bytes(ASN1_STRING **a,unsigned char **pp, long length,int type);/* PARSING */int asn1_Finish(ASN1_CTX *c);/* SPECIALS */int ASN1_get_object(unsigned char **pp, long *plength, int *ptag, int *pclass, long omax);int ASN1_check_infinite_end(unsigned char **p,long len);void ASN1_put_object(unsigned char **pp, int constructed, int length, int tag, int xclass);int ASN1_object_size(int constructed, int length, int tag);/* Used to implement other functions */char *ASN1_dup(int (*i2d)(),char *(*d2i)(),char *x);void *ASN1_item_dup(const ASN1_ITEM *it, void *x);#ifndef OPENSSL_NO_FP_APIchar *ASN1_d2i_fp(char *(*xnew)(),char *(*d2i)(),FILE *fp,unsigned char **x);void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x);int ASN1_i2d_fp(int (*i2d)(),FILE *out,unsigned char *x);int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x);int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags);#endifint ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in);#ifndef OPENSSL_NO_BIOchar *ASN1_d2i_bio(char *(*xnew)(),char *(*d2i)(),BIO *bp,unsigned char **x);void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x);int ASN1_i2d_bio(int (*i2d)(),BIO *out,unsigned char *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,unsigned char *pp,long len,int indent);int ASN1_parse_dump(BIO *bp,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,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(unsigned char *buf, int len, char *(*d2i)(), void (*free_func)(void *) ); unsigned char *ASN1_seq_pack(STACK *safes, int (*i2d)(), unsigned char **buf, int *len );void *ASN1_unpack_string(ASN1_STRING *oct, char *(*d2i)());void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);ASN1_STRING *ASN1_pack_string(void *obj, int (*i2d)(), ASN1_OCTET_STRING **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, unsigned char **in, long len, const ASN1_ITEM *it);int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it);void ASN1_add_oid_module(void);/* 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_ASN1_CHECK_TLEN 104#define ASN1_F_ASN1_COLLATE_PRIMITIVE 105#define ASN1_F_ASN1_COLLECT 106#define ASN1_F_ASN1_D2I_BIO 107#define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108#define ASN1_F_ASN1_D2I_FP 109#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_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_EX_D2I 120#define ASN1_F_ASN1_ITEM_NEW 121#define ASN1_F_ASN1_MBSTRING_COPY 122#define ASN1_F_ASN1_OBJECT_NEW 123#define ASN1_F_ASN1_PACK_STRING 124#define ASN1_F_ASN1_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_STRING_TABLE_ADD 129#define ASN1_F_ASN1_STRING_TYPE_NEW 130#define ASN1_F_ASN1_TEMPLATE_D2I 131#define ASN1_F_ASN1_TEMPLATE_EX_D2I 132#define ASN1_F_ASN1_TEMPLATE_NEW 133#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_VERIFY 137#define ASN1_F_BN_TO_ASN1_ENUMERATED 138#define ASN1_F_BN_TO_ASN1_INTEGER 139#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_X509 156#define ASN1_F_D2I_X509_CINF 157#define ASN1_F_D2I_X509_NAME 158#define ASN1_F_D2I_X509_PKEY 159#define ASN1_F_I2D_ASN1_TIME 160#define ASN1_F_I2D_DSA_PUBKEY 161#define ASN1_F_I2D_NETSCAPE_RSA 162#define ASN1_F_I2D_PRIVATEKEY 163#define ASN1_F_I2D_PUBLICKEY 164#define ASN1_F_I2D_RSA_PUBKEY 165#define ASN1_F_LONG_C2I 166#define ASN1_F_OID_MODULE_INIT 174#define ASN1_F_PKCS5_PBE2_SET 167#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_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_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_CHARACTERS 124#define ASN1_R_ILLEGAL_NULL 125#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_INTEGER_TOO_LARGE_FOR_LONG 128#define ASN1_R_INVALID_BMPSTRING_LENGTH 129#define ASN1_R_INVALID_DIGIT 130#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_MISSING_EOC 137#define ASN1_R_MISSING_SECOND_NUMBER 138#define ASN1_R_MSTRING_NOT_UNIVERSAL 139#define ASN1_R_MSTRING_WRONG_TAG 140#define ASN1_R_NON_HEX_CHARACTERS 141#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_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_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_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_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_WRONG_TAG 168#define ASN1_R_WRONG_TYPE 169#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -