der解码规则_DER 编码规范理解
这几天在研究 X.509 证书和 DER 编码的解码信息。
1. 基本概念
在 TLS/SSL 协议中,服务端需要向客户端提供一个证书,以证明自己的身份。
这个证书里面包含了服务端的加密公钥、一些用于描述自己身份的信息,以及一个签名。
X.509 是现代公钥证书的格式规范,目前常用。
如果看到这里不理解什么是 X.509 证书,请自行补课。
X.509 证书有很多种格式,本文只描述 DER 编码的格式。
2. 证书结构
一个 X.509 证书,其结构使用 ASN.1 语法描述如下:
此处只需随便看一眼,具体解释看下文。
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING
}
TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
extensions [3] EXPLICIT Extensions OPTIONAL
-- If present, version MUST be v3
}
Version ::= INTEGER { v1(0), v2(1), v3(2) }
CertificateSerialNumber ::= INTEGER
Validity ::= SEQUENCE {
notBefore Time,
notAfter Time
}
Time ::= CHOICE {
utcTime UTCTime,
generalTime GeneralizedTime
}
UniqueIdentifier ::= BIT STRING
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING
}
Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
Extension ::= SEQUENCE {
extnID OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTET STRING
-- contains the DER encoding of an ASN.1 value
-- corresponding to the extension type identified
-- by extnID
}
der解码规则_DER 编码规范理解相关推荐
- der解码规则_DER编码简介
概念: DER是BER的子集,它为每一个ASN.1类型定义一种唯一的编码方案. DER与BER的区别: DER在BER的基础上增加了如下限制: 长度小于等于127,必须使用短型长度表示法. 长度大于1 ...
- C#命名规则和编码规范
1. 用Pascal规则来命名属性.方法.事件和类名 1 2 3 4 5 6 public class HelloWorld { public void SayHello(string name) { ...
- 《阿里巴巴JAVA编码规范》阅读理解
https://github.com/alibaba/p3c/ https://github.com/singgel?tab=repositories 前言 2017 年阿里云栖大会,阿里发布了针对 ...
- 【协作MIMO+非规则LDPC】协作MIMO系统上,中继协作解码转发策略和编码协作策略,采用非规则LDPC编码
1.软件版本 MATLAB2013b 2.本算法理论知识 做非规则LDPC码的以编码协作形式的中继协议,比较以下三种情况下的误码率图和中断概率图: 源节点一个(配置一根天线),中继节点4个(每个节点配 ...
- java der pem_JAVA解析各种编码密钥对(DER、PEM、openssh公钥)
一.DER编码密钥对 先说下DER编码,是因为JCE本身是支持DER编码密钥对的解析的,可以参见PKCS8EncodedKeySpec和X509EncodedKeySpec. DER编码是ASN.1编 ...
- 视频编解码和MPEG4编码
来自 http://blog.csdn.net/dansin/article/details/389149 MPEG-4编解码学习. 1.视频数据编码的办法对数据进行编码的目的前面以前提过,一方面降低 ...
- OWASP 安全编码规范 快速参考指南
原文pdf:http://www.owasp.org.cn/owasp-project/download/OWASP_SCP_Quick_Reference_GuideChinese.pdf 1.序言 ...
- 前端基础路线一:HTML编码规范
HTML编码规范 1 前言 2 代码风格 2.1 缩进与换行 2.2 命名 2.3 标签 2.4 属性 3 通用 3.1 DOCTYPE 3.2 编码 3.3 CSS 和 JavaScript 引入 ...
- web项目开发 之 前端规范 --- HTML编码规范
此文严格按照W3C规范和部分实际项目可读性,浏览器加载,性能等众多属性权衡,做出平时前端编码规范文 档.供广大web工作者参考并实施,对维护和项目扩展升级都能省时省力. 转载请注明出处,JS前端实用开 ...
- JavaScript最全编码规范
转载: JavaScript最全编码规范 类型 ●基本类型:访问基本类型时,应该直接操作类型值 ●string ●number ●boolean ●null ●undefined var foo = ...
最新文章
- SqlSessionFactoryBean的构建流程
- 英特尔开源版HE-Transformer,对于隐私数据AI终于上手了!
- uva 610(割边)
- C# NPOCO 轻量级ORM框架(进阶)
- hdu4907 水dp 或者set
- linux内核引入模块机制好处,linux内核模块的版本检查机制
- 【sql】leetcode习题 (共 42 题)
- Android允许应用程序使用Http明文网络传输
- RHEL6 安装ipvsadm-1.26
- leetcode力扣12. 整数转罗马数字
- JDBC 连接数据库,包含连接池
- 想知道自己的物理内存地址都是如何分配的么?
- 容器技术Docker K8s 49 容器镜像服务(ACR)详解-概述
- python简单代码示例-python3简单代码示例
- 网络流量监控iptraf
- Beyond Compare4破解方法
- 程序员修炼之道关键点总结和个人感悟
- windows什么录屏软件好用,windows屏幕录制软件
- impala理论篇之三:impala介绍
- 群里的初级工程师求助说,要采集采招数据,必须给他安排上