X509证书结构

news/2024/6/17 3:00:54 标签: 数据结构

使用ASN.1语言描述,我们可以将X509Certificate抽象为以下结构:

 Certificate  ::=  SEQUENCE  {
                   tbsCertificate       TBSCertificate,
                   signatureAlgorithm   AlgorithmIdentifier,
                  signature            BIT STRING  
     }

即基本证书域、签名算法、签名值。

其中TBSCertificate的结构为:

  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
      }

即版本、序列号、签名算法、颁发者、有效期、使用者、主体公钥信息、扩展项。

主体公钥信息:

  SubjectPublicKeyInfo ::= SEQUENCE {
    algorithm AlgorithmIdentifier,
    subjectPublicKey BIT STRING }

算法标识符:

  AlgorithmIdentifier ::= SEQUENCE {
    algorithm OBJECT IDENTIFIER,
    parameters ANY DEFINED BY algorithm OPTIONAL 
    }

http://www.niftyadmin.cn/n/5057528.html

相关文章

行为型-中介者模式

一、简介: 中介者模式(Mediator Pattern)是一种行为型设计模式,它用于减少对象之间的直接交互,而是通过一个中介者对象来协调和管理对象之间的通信。中介者模式的主要目标是降低系统中对象之间的耦合度,使…

Spark SQL案例【电商购买数据分析】

数据说明 Spark 数据分析 (Scala) import org.apache.spark.rdd.RDD import org.apache.spark.sql.{DataFrame, SparkSession} import org.apache.spark.{SparkConf, SparkContext}import java.io.{File, PrintWriter}object Taobao {case class Info(u…

tortoiseSVN树冲突解决方案

方案一: 手动导出 trunk 上的文件(夹),把本地目录文件(夹)删了并替换成 trunk上的,再点击测试合并方案二: 如果执行了方案一还是冲突,确认本地和trunk文件一致后,可以跳过冲突的revision

rust生命期

一、生命期是什么 生命期,又叫生存期,就是变量的有效期。 实例1 {let r;{let x 5;r &x;}println!("r: {}", r); }编译错误,原因是r所引用的值已经被释放。 上图中的绿色范围’a表示r的生命期,蓝色范围’b表示…

翻墙工作?承德程序员被罚款 108 万元!

近年来,随着互联网的快速发展,远程办公成为越来越多公司和个人的选择。很多国外的远程办公公司也在中国和其他各个国家招收员工。 然而,最近一则承德程序员因远程办公被罚款100万的新闻引起了广泛关注。这个程序员给一家软件公司打工&#x…

C++学习第二十六天----内联函数与引用变量

1.内联函数 可以举个例子说明内联函数与常规函数的区别:比如我们去吃饭,常规函数代码本身消耗时间并不长,时间主要浪费在了去跳转执行代码的路上,就好像吃饭花了10分钟,来回路上各花了1个小时一样。 内联函数就是在每个…

RabbitMQ之发布确认高级

RabbitMQ之发布确认高级 一、发布确认 SpringBoot 版本1.1 确认机制方案1.2 代码架构图1.3 配置文件1.4 添加配置类1.5 消息生产者1.6 回调接口1.7 消息消费者1.8 结果分析 二、回退消息2.1 Mandatory 参数2.2 消息生产者代码2.3 回调接口2.4 结果分析 三、备份交换机3.1 代码架…

对日项目工作总结

从18年8月到23年中秋节,目前已经入职主营对日车载项目的公司满5年了,一般来说,在一家公司工作工作超过3年,如果是在比较大型以及流程规范的公司,那么该公司的工作流程,工作思维会深深地烙印在该员工的脑海中…