学习记录 2020/6/12

研一


PKCS12再看一遍

PKCS12标准的作用是传递个人信息, 如公钥,证书,私钥(存疑)等。PKCS12同PKCS7类似,都是用于传递消息,但PKCS7是用于传递传统意义上的信息,如一篇文章的加密、不加密或文章的数字签名等信息,而PKCS12则是专门为了传递用户信息而设置,如书名,作者名,ISBN编码等。两者的区别就是传递内容不尽相同。此外,PKCS12中有用到PKCS7中的很多内容,在PKCS12的数据结构中需要注意contentInfo的出现,该数据类型即由PKCS7中所定义。
PKCS12最高层的包称为PFX,可以看作是PDU的另一个名字。其中包含三种值:Version, authsafe, macData。

  1. version是语法版本号;
  2. authsafe最重要,包含需要传递的用户信息;
  3. macData并不一定会出现,它只有在authsafe中的类型定义为DATA时才会存在。

进一步解释相关数据类型:
authsafe是contentInfo类型的数据,contentInfo类型的数据包括两个值,分别是contentType和content。其中authsafe的contentType可选值有Data和SignedData,DATA表示content中的值会被口令签名来保护完整性,而SignedData表示authsafe中content中的值会被公钥签名来保护完整性。如果ContentType是DATA的话,此处的content值就直接是AuthenticatedSafe值,而如果contentType值是SignedData的话,此处的content就是在PKCS7中定义的SignedData中的一系列值,包含version, SignerInfo, ContentInfo, DigestAlgorithmIdentifiers, crls, certificates,其中的ContentInfo才放置AuthenticatedSafe值。
Authenticated数据结构为Sequence类型,Sequence类型中包含一系列ContentInfo,此处的contentInfo中ContentType也有三个可选项,分别为Data, EncryptedData, EnvelopedData,表明该Content中依然嵌套了PKCS7中定义的数据类型,如果选择了Data,则此处的数据是明文数据,如果选择了EncryptedData或EnvelopedData,则此处数据是加密的,加密的内容的明文包含Sequence类型的SafeContents数据类型,里面是一系列SafeBag数据。
终于到了PKCS12中最重要的地方,即SafeBag的定义。SafeBag是PKCS12给出的定义,其中包含的即为用户需要传输的数据。其中包含bagId, bagvalue和bagAttributes。
bagId是数据包的类型,即传输数据的类型。此处有六种选项。分别为keyBag, pkcs8shroudedKeyBag, certBag, CRLBag, secretBag, safecontentsBag。

  • keyBag装的是私钥
  • pkcs8shroudedKeyBag装的是PKCS8包装的密钥信息。
  • certBag装的是证书
  • CRLBag装的是证书回收列表
  • secretBag装的是其他秘密信息
  • safecontentsBag装的是以上信息的任意嵌套,该数据类型还没有见到过,不好说具体怎么使。

算法导论

线性时间排序

近世代数

2页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值