首页 > 其他分享 >ASN.1 证书编码

ASN.1 证书编码

时间:2023-04-26 11:12:04浏览次数:30  
标签:x32 编码 x30 CN 证书 ASN.1 x06

 

一、任务详情

  1. 参考附件中图书p223 中13.2的实验指导,完成DER编码
  2. 序列号=1174(0x0496),证书签发者 DN="CN=Virtual CA,C=CN",证书持有者DN="CN=你的名字拼音, OU=Person,C=CN",证书有效期=20200222000000-20220222000000。
  3. 用echo -n -e "编码" > 你的学号.der中,用OpenSSL asn1parse 分析编码的正确性
  4. 提交编码过程文档

二、查看姓名、学号的16进制ASCII码

三、ASN.1描述与实例

1.TBSCertificate 的 ASN.1描述与实例

TBSCertificate格式用ASN.1描述如下:
TBSCertificate :=SEQUENCE {
version
[0] EXPLICIT Version DEFAULT v1,
serialNumber
CertificateSerialNumber,
signature
Algorithmldentifier,
issuer
Name,
validity
Validity,
subject
Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID[1] IMPLICIT Uniqueldentifier OPTIONAL,
-- If present, version MUST be v2 or v3

subjectUniqueID [2] IMPLICIT Uniqueldentifier OPTIONAL,
-- If present, version MUST be v2 or v3
extensions[3]EXPLICIT Extensions OPTIONAL
-- If present, version MUST be v3
}
Extensions ::=SEQUENCE SIZE (1..MAX) OF ExtensionTBSCertificate 中各项内容具体值如表13-3所示。

TBSCertificate
version 02
serialNumber 04 96
signature sha 1 WithRSAEncryption ( 1.2.840.113549.1.1.5)
issuer “CN=Virtual CA,C=CN”
validity notBefore=20200222000000、notAfter=20220222000000
subject “CN=chenshaoqing,OU=Person,C=CN”
subjectPublicKeyInfo
issuerUniquelD subjectUniquelD
extensions 包含6个扩展项(Extension ): basicContraints、subjectKeyldentifier、keyUsage、extKeyUsage,netscapeCertType、authorityKeyIdentifier

2.Extension的ASN.1描述与实例Extension格式用ASN.1描述如下:

Extension :=SEQUENCE {
extnID
OBJECT IDENTIFIER,
critical
BOOLEAN DEFAULT FALSE,
extnValue
OCTET STRING }
Extension各扩展项值如表13-4所示。
image

3.Certificate 的ASN.1描述与实例Certificate格式用ASN.1描述如下:

Certificate ::=SEQUENCE {
tbsCertificate
TBSCertificate,
signatureAlgorithm
AlgorithmIdentifier,
signature Value
BIT STRING }
Certificate中各项内容的具体值如表13-5所示。

四、DER编码过程

(一)对Extension进行DER编码

各扩展项具体内容用ASN.1描述如下:
BasicConstraints ::=SEQUENCE{
cA
BOOLEAN DEFAULT FALSE,
pathLenConstraint
INTEGER (O..MAX)OPTIONAL}
SubjectKeyIdentifier ::= Keyldentifier
(KeyIdentifier ::= OCTET STRING)KeyUsage ::= BIT STRING
ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX)OF KeyPurposeld

(KeyPurposeld ::= OBJECT IDENTIFIER)NetscapeCertType ::= BIT STRING
AuthorityKeyldentifier ::=SEQUENCE{
keyIdentifier
[O] KeyIdentifier
OPTIONAL,
authorityCertIssuer
[1]GeneralNames
OPTIONAL,
authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }(KeyIdentifier ::= OCTET STRING)
Extension为 SEQUENCE结构类型,不同扩展项DER编码值包含在OCTET STRING类型extnValue中,编码规则采用结构类型定长模式。各扩展项DER编码值用括号分隔。其中,对于BIT STRING类型,编码后第1个字节表示填充位数或未使用位数。
image

(二)对TBSCertificate进行DER编码

验证:openssl asn1parse -inform der -in ./20201320.der

1.序列号1174(0x0496)

 
echo -n -e "\xA0\x03\x02\x01\x02\x02\x02\x04\x96\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00" > 20201320.der

2.证书签发者DN="CN=Virtual CA

 
echo -n -e "\x30\x22\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x4E\x31\x13\x30\x11\x06\x03\x55\x04\x03\x13\x0A\x56\x69\x72\x74\x75\x61\x6C\x20\x43\x41" >> 20201320.der

3.证书有效期=20200222000000-20220222000000

 
echo -n -e "\x17\x0D\x32\x30\x32\x30\x30\x32\x32\x32\x30\x30\x30\x30\x5A\x17\x0D\x32\x30\x32\x32\x30\x32\x32\x32\x30\x30\x30\x30\x5A" >> 20201320.der

4.证书持有者DN=CN=Yang Chengyu, OU=Person

echo -n -e "\x30\x33\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x4e\x31\x11\x30\x0f\x06\x03\x55\x04\x0a\x13\x08\x32\x30\x32\x30\x31\x32\x31\x32\x31\x11\x30\x0f\x06\x03\x55\x04\x03\x13\x08\x59\x61\x6e\x67\x43\x68\x65\x6e\x67\x79\x75" >> 20201320.der

 

标签:x32,编码,x30,CN,证书,ASN.1,x06
From: https://www.cnblogs.com/sztsao/p/17354549.html

相关文章

  • ASN.1 测试
    在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务对你的8位学号(数字)进行der编码,写入1.der文件中对你的8位学号(文本)进行der编码,写入2.der文件中3,使用oepnssl命令分析上面两个der文件提交过程截图......
  • ASN.1 基础测试
    1参考https://www.cnblogs.com/rocedu/p/14891816.html#echo打印字符串和变量值2十六进制数:30030201AA,写入文件1.der,用od查看内容,用asn1view或opensslasn1pars命令查看内容,提交截图3十六进制数:3013020105160e416e79626f64792074686572653f,写......
  • Java+GeoTools实现WKT数据根据EPSG编码进行坐标系转换
    场景Java+GeoTools(开源的JavaGIS工具包)快速入门-实现读取shp文件并显示:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130367852在上面实现Java中集成Geotools之后,需求是将WKT数据转换成其他坐标系的WKT。比如说将EPSG:4524的坐标系转换成EPSG:2334的坐标系......
  • Base64 编码的字符串转换为 Blob 对象方法
    constblob=function(data:string,mime:string){data=data.split(',')[1];data=window.atob(data);letia=newUint8Array(data.length);for(vari=0;i<data.length;i++){ia[i]=data.charCodeAt(i);};returnnew......
  • Adobe国际认证证书有必要考吗?
    Adobe公司作为全球领先的数字媒体和数字营销软件解决方案提供商之一。其产品包括Photoshop、Illustrator、InDesign、Dreamweaver等软件被广泛应用于设计、出版、网站开发、视频制作等领域。为了帮助用户更好地使用这些软件,Adobe推出了Adobe国际认证证书,以证明用户在相关领域具备专......
  • SciTE4AutoHotkey新建文件默认编码 UTF-8 with BOM
    若SciTE4AutoHotkey,能在新建时自动选编码为 带BOM的UTF-8的就省事省心了。可通过配置SciTEGlobal.properties、SciTEUser.properties无法解决这个难题,似乎是个bug。通过菜单 工具Scite4AutoHotkeysettings...设置也只能使新建的文件编码为UTF-8NOBOM经过无数次的搜索以......
  • m基于EAN13字符编码规则的一维条形码条码宽度计算和数字译码matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要条码技术是在计算机的应用实践中产生和发展起来的一种自动识别技术,条码应用技术就是应用条码系统进行的信息处理技术。条码技术的研究始于20世纪中期,是继计算机技术应用和发展应运而生的。随着70年代微处理器的问......
  • Problem I: base64编码
    ProblemDescription对于任意二进制文件(如图像、声音、视频、程序等),都可以用base64编码。base64编码方法:先把二进制代码划分为一系列24位长的单元,然后把每一个24位单元划分为4个6位的组。每一个6位组按下列方法转换为ASCII码。6位二进制有64个不同的值,0-63。用A表示0,B表示1,等。2......
  • 程序猿之编码格式
    为什么要编码?这是全网讲解最好的文章:https://zhuanlan.zhihu.com/p/427488961https://zhuanlan.zhihu.com/p/46216008https://blog.csdn.net/qq_23274715/article/details/104931433......
  • 长文本摘要模型的位置编码
    LongformerRoberta使用绝对位置编码,最大512.为了能够适应更长的文本,Longformer添加到4096。为了利用Roberta的预训练后的权重,多次复制512位置编码。做了实验,对比随机初始化位置编码和复制位置编码,显示出复制位置编码的重要性。扩展BART的1Ktokens到16Ktokens。初始化位置......