ASN.1编码/语法以及相关第三方模块使用

前言:这篇笔记是关于ASN1编码的学习笔记,因为后面自己想写一些kerberos的通信代码来深入了解kerberos的通信。

参考文章:https://blog.csdn.net/qq_14945847/article/details/79369041

什么是ASN.1

为了解决高级语言中结构化数据在网络传输中的结构关系能送达目的地进行还原,出现了以下几种数据序列化的方法:ASN.1,XML,Json等。

ASN.1本身只定义了表示信息的抽象句法,但是没有限定其编码的方法,它与语言实现和物理标识无关。

各种ASN.1编码规则提供了由ASN.1描述其抽象句法的数据的值的传送语法(具体表达)。

标准的ASN.1编码规则有基本编码规则(BER,Basic Encoding Rules)、规范编码规则(CER,Canonical Encoding Rules)、唯一编码规则(DER,Distinguished Encoding Rules)、压缩编码规则(PER,Packed Encoding Rules)和XML编码规则(XER,XML EncodingRules)。

ASN.1语法

先来如下一个例子来进行学习,


Report ::=SEQUENCE {
  author OCTETSTRING,
  title OCTETSTRING,
  body OCTETSTRING,
  biblio Bibliography
}

kerberos

"%ASN1C%"\bin\asn1cpp.exe "%ASN1C%"\asn1dflt\asn1dflt.msx64.zp8 KerberosV5Spec2.asn KerberosV5-PK-INIT-SPEC.asn PKIX1Explicit88.asn PKINIT.asn MS-SFU-KILE.asn -noSampleCode -der -root -externalName chibd_asn1 -messageFormat msvc -verbose -headerFile kull_m_kerberos_oss_asn1_internal.h -out kull_m_kerberos_oss_asn1_internal_x64.cpp
posted @ 2021-12-04 01:11  zpchcbd  阅读(443)  评论(0)    收藏  举报