- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
openssl之ASN1系列
openssl之ASN.1系列之1---引言和ASN.1概述作者:DragonKing(Eric Wang)Mail: wzhah@263.net发布于:OpenSSL版本:openssl-0.9.7版权声明:未经作者授权,本文不能在任何商业性质的出版物或网站上进行转载【引言】ASN.1 全称为Abstract Syntax Notation One,是一种描述数字对象的方法和标准。openssl的编码方法就是基于该标准的,目前,很多其他软件的编码方法也是基于该标准。对于直接使用 openssl的API或者应用程序来说,可能对ASN.1的了解并不需要很清楚,但是为了使大家对后续介绍的各个API有一个更深刻的编码知识基础,所以对该ASN.1以及openssl相应提供的API处理函数作介绍。【ASN.1概述】ASN.1 作为一个数字对象描述标准,包括了两部分,分别为数据描述语言(ISO8824)和数据编码规则(ISO8825)。ASN.1的数据描述语言标准允许用户自定义基本数据类型,并可以通过简单的数据类型组成更复杂的数据类型。比如一个复杂的数据对象,如X509证书,就是在其它一些数据类型上定义的,而其它数据类型又是在更基本的数据类型上建立的,直到回溯到定义的最基本的数据类型。比如ASN.1定义的X509证书的一个子域Validity(证书有效期)就定义如下:Validity ::= SEQUENCE {??notBefore????????????UTCTIME,??notAfter???????????? UTCTIME}其意义就是定义Validity为一个有序序列,由两个个UTCTIME类型的数据notBefore和notAfter组成。然后,就需要找出UTCTIME是怎么定义的,当然,事实上UTCTIME是ASN.1定义的一个基本的时间数据类型。在上述数据定义的基础上,ASN.1定义了一组编码规则,以规定怎么将上述描述的对象转换成应用程序能够处理和进行传输的二进制编码形式。ASN.1定义了多种编码方法,包括了BER, DER, PER, 和XER等,不过,虽然最基本最常用的编码方式是BER(Basic Encoding Rules),但是由于该编码方法可能对一个相同的对象有几种不同的合法二进制编码,所以在openssl里面使用的是BER的子集DER (Distinguished Encoding Rules),使用DER编码方法,对于每一个ASN.1对象,其相应的二进制编码是唯一的。ASN.1里定义的每个基本对象都有一个对应的数字标识tag,在进行二进制编码的时候需要使用该标志。【ASN.1定义的基本数据类型】下面列出ASN.1定义的部分基本数据类型,其各字段的意义如下:[数据类型]-[数据说明]-[Tag(16进制)][BOOLEAN]-[有两个值:false或true]-[01][INTEGER]-[整型值]-[02][BIT STRING]-[0位或多位]-[03][OCTET STRING]-[0字节或多字节]-[04][NULL]-[NULL值]-[05][OBJECT IDENTIFIER]-[相应于一个对象的独特标识数字]-[06][OBJECT DESCRIPTOR]-[一个对象的简称]-[07][EXTERNAL]-[ASN.1没有定义的数据类型]-[08][REAL]-[实数值]-[09][ENUMERATED]-[数值列表,这些数据每个都有独特的标识符,作为ASN.1定义数据类型的一部分]-[0a][SEQUENCE和SEQUENCE OF]-[有序数列,SEQUENCE里面的每个数值都可以是不同类型的,而SEQUENCE OF里是0个或多个类型相同的数据]-[10][SET和SET OF]-[无序数列,SET里面的每个数值都可以是不同类型的,而SET OF里是0个或多个类型相同的数据]-[11][NumericString]-[0-9以及空格]-[12][PrintableString]-[A-Z、a-z、0-9、空格以及符号 ()+,-./:=?]-[13][UTCTime]-[统一全球时间格式]-[17]除了上述基本类型,ASN.1还定义了另外一些专用的数据类型,这里不再一一叙述。openssl之ASN.1系列之2---ASN.1编码方法简介作者:DragonKing(Eric Wang)Mail: wzhah@263.net版权声明:未经作者授权,本文不能在任何商业性质的出版物或网站上进行转载发布网站:OpenSSL版本:openssl-0.9.7参考资料:“Computer Network
您可能关注的文档
最近下载
- 迅德宠物医院管理软件说明书.pdf
- 脉动预真空压力蒸汽灭菌湿包原因分析及对策.doc VIP
- 人教新目标八年级英语上册 Unit 7 单元测试题(含答案).docx VIP
- 石油化工设备检修规程 离心泵分解.doc VIP
- 2025下半年省公务员考试第一季行测模考大赛(江苏a卷).docx
- 微型党课课件--做让党和人民满意的好老师.pptx VIP
- 滤泡性淋巴瘤的护理查房.pptx VIP
- 人教版八年级英语上册《Unit 6 单元综合测试卷》测试题及参考答案.pdf VIP
- 铃木船外机四冲程DF150TG-DF150ZG-DF175TG-DF175ZG中文维修手册.pdf
- 财务报表模板(资产负债表、利润表、现金流量表).xls
文档评论(0)