语法
定义
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