void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); 【ASN1_OBJECT】 该系列的new和free函数分别完成了ASN1_OBJECT对象的创建和释放。在创建ASN1_OBJECT对象的时候,该函数给对象分配内存空间,并将结构内所有指针类型的变量值都设为NULL,nid和长度都初始化为0,并将flags设置为ASN1_OBJECT_FLAG_DY...
struct asn1_object_st struct asn1_string_st struct ASN1_ENCODING_st struct asn1_string_table_st struct asn1_type_st struct NETSCAPE_X509_st struct BIT_STRING_BITNAME_st Macros #define V_ASN1_UNIVERSAL 0x00 #define V_ASN1_APPLICATION 0x40 #define V_ASN1_CONTEXT_SPECIFIC 0x80 #define ...
k1.int OBJ_obj2nid(const ASN1_OBJECT *a) 根据对象获取其nid; l1 int OBJ_obj2nid(const ASN1_OBJECT *a) 根据对象获取器nid; m1 OBJ_obj2txt 根据对象获取对象说明或者nid n1.OBJ_txt2obj 根据sn或者ln得到的对象 13.8 属性证书编码 对属性证书(x509v4)编码 typedef struct X509V4_VALID_st { ASN...
关于ASN1结构和x509证书值的正式文档在哪里? 使用OpenSSL命令(如openssl asn1parse -in server.der -inform DER ),我可以看到cert是如何构造的,但是,例如,value OBJECT :sha256WithRSAEncryption是HEX 2A 86 48 86 F7 0D 01 01 0B,或者countryName标识符是55 04 06 --所有这些值都记录在哪里?
【ASN1_OBJECT】该结构用来保存一个ASN1对象,其定义如下:typedef struct 16、 asn1_object_st char *sn,*ln; int nid; int length; unsigned char *data; 17、; int flags;ASN1_OBJECT;· nid是openssl内部定义的每个数字对象的独特标识码; · sn是对象的简称; · ln是对象的长名或小写名; · data...
ASN1_ITEM_st表述一个“项”,这个“项”是一种复合结构,templates是一个ASN1_ITEM_st容器,该容器可以容纳一个ASN1_ITEM_st也可以容纳多个ASN1_ITEM_st,多个ASN1_ITEM_st同样以templates为更低一级的容器,实质上在我们的例子中,x509_cinf结构体就是一个ASN1_ITEM_st,其中包含一系列的ASN1_TEMPLATE,这个一会...
# define V_ASN1_INTEGER 2 # define V_ASN1_BIT_STRING 3 # define V_ASN1_OCTET_STRING 4 # define V_ASN1_NULL 5 # define V_ASN1_OBJECT 6 # define V_ASN1_OBJECT_DESCRIPTOR 7 # define V_ASN1_EXTERNAL 8 # define V_ASN1_REAL 9 # define V_ASN1_ENUMERAT...
asn1对OID的编码有一些规定,形如a.b.c.d.e的OID被编码的时候,完全可以按照der的编码规则将整个oid的类型设定为object,然后将每一个点分数字的类型设定为integer,最终编码为[obj|length[[int|lena[a]]][int|lenb[b]][int|lenc[c]]...],可是asn1标准并没有如此编码,而是使用了"more bit"这 ...
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_PRINTABL...
【ASN1_OBJECT】 该结构用来保存一个ASN1对象,其定义如下: typedef struct asn1_object_st { char *sn,*ln; int nid; int length; unsigned char *data; int flags; }ASN1_OBJECT; nid是openssl内部定义的每个数字对象的独特标识码; sn是对象的简称; ...