- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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
- 易控(eCon)DSP版.pdf
- 星级考评在安全设施标准化中的应用.pdf
- 易方达消费行业基金.ppt
- 晋东南-荆门特高压线路保护浅析.pdf
- 普通开关设备在高海拔地区的应用.pdf
- 普定电站10.5kV系统断路器无油化改造.pdf
- 普通弹簧管式压力表检定中常见问题及调修技巧.pdf
- 晶闸管串联调压电容无功补偿装置及其在电网中的应用.pdf
- 智能低压电动机保护装置的研究.pdf
- 【重点研报】行稳致远,风物长宜放眼量2024年半年度中国银行业回顾与展望.docx
- 【重点研报】2024年中国Robotaxi商业化趋势研究报告.pptx
- 【重点研报】西北五省(区)旅游调查报告-2024.9.docx
- 【重点研报】2024山西省能源行业发展趋势与技术创新分析报告-DIRC-2024.9.pptx
- 【重点研报】医生对医药推广人员的态度调研报告.docx
- 【重点研报】中国银发人群健康养老消费报告-京东健康&艾瑞咨询-2024.docx
- 【重点研报】在华德企ESG实践报告+2024.docx
- 【重点研报】2024年中国银龄旅游专题报告-量子之歌&CIC灼识咨询-2024.10.pptx
- 静电喷涂防止粉尘爆炸方面的安全对策措施(新版) .pdf
- 驻村第一书记个人工作总结与驻村第一书记事迹材料汇编.pdf
最近下载
- 河北对口单招第十类职业适应性测试(计算机)-第七章演示文稿软件应用课件ppt.pptx VIP
- 亚硫酸氢钠安全技术说明书.docx VIP
- 疾控大学习《病原微生物实验室生物安全风险识别和控制》习题答案.docx
- 四年级上册数学三位数乘两位数竖式计算题练习150道.pdf
- 医院公开招聘简章.pdf
- XX银行A分行业务人员培训效果评估.pdf VIP
- 思维导图在高中化学学习中的应用教学研究开题报告教学研究课题报告.docx
- GB 50937-2013 选煤厂管道安装工程施工与验收规范.docx
- 第四章 控制及其设计 课件-2023-2024学年高中通用技术苏教版(2019)必修《技术与设计2》.pptx VIP
- 学习贯彻党的二十届三中全会精神测试题三套(含答案).docx VIP
文档评论(0)