当前位置:   article > 正文

《程序员密码学》 学习笔记 - 02 - ASN.1编码学习_java中sm2加密后转为asn.1编码

java中sm2加密后转为asn.1编码

定义
ASN.1 抽象语法记法一
是ITU—T的一个标准集,它用来编码及表示通用数据类型。
ASN.1执行了以何种方式对平凡的数据类型进行编码,以便其他任何平台及第三方工具能够解释其内容
编码方面支持 基本编码规则BER, 正则编码规则CER, 非典型编码规则DER

语法
定义
Name ::= type
定义一个名称为“Name”的元素 它是一个给定ASN.1类型“Type”的实例
MyName ::= IA5String
//IA5String(类似于ASCII字符)
定义并初始化
MyName ::= IA5String(Tom)
MyName 是字符串"Tom" 的编码
扩展
MyName ::= IA5String(Tom|Joe)
MyName 可以是Tom也可以是Joe

容器 Container
包含了其他相同或则不同类型元素的数据类型 
序列 SEQUENCE    单一序列 SEQUENCE OF   集合 SET  单一集合  SET OF
Name ::= Container{
    Name Type,
    [Name Type, .....]
}
UserRecord ::= SEQUENCE{
    Name SEQUENCE{
        First IA5String,
        Last  IA5String
    }
    DoB  UTCTIME
}
等价于 C语言的
struct UserRecord{
    struct Name{
        char *First;
        char *Last;
    };
    time_t DoB;
};

修改器
可选 OPTIONAL  默认 DEFAULT   选择 CHOICE
//没有完全明白意思 后面看了再写吧

数据类型
布尔型  Boolean
八位位数组  OCTET String
位串     BIT String
类似于ASCII字符 IA5String
可打印字符串 PrintableString
整数 INTEGER
对象标识符 OBJECT Identifier, OID
世界协调时  UTCTIME
空 NULL
序列 SEQUENCE   单一序列  SEQUENCE  OF
集合 SET 单一集合 SET OF

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/998394
推荐阅读
相关标签
  

闽ICP备14008679号