ISO15118-2 解读4 —— XML、EXI、签名

一、前言

本章,咱们来聊下 XML、EXI、签名等内容吧~

二、原文 XML 出处

三、XML

XML 就是数据的一种表示形式,类似网页 HTML 那样,XML 学习网址:https://www.w3school.com.cn/xml/xml_intro.asphttps://www.w3school.com.cn/xml/xml_intro.asp

四、V2G XML

如图,CurrentDemandReq 的 XML 格式内容如下。主包很好奇,这么长的字符串,通信时处理得过来吗?缓冲区不得干爆了?

做多马爹,XML 内容可不是直接传过去滴,它需要经过 EXI 紧凑型编码,然后传递 EXI Stream。

五、EXI

EXI 学习网址如下:

http://www.w3.org/TR/exi/https://www.w3.org/TR/exi/

六、V2G EXI

主包这里还在学习中,大概的原理就是:V2G XML 的内容,按照特定的 ISO15118 的 XSD 规则,可以把很长的字符串转成事件 bit 流,注意这个"事件"关键字。

底层的解码编码都是有开源库滴,但底层的大致原理咱们还是要弄懂滴~

七、签名机制

1、原文参考

签名机制,直接查看原文附录J,如下

2、签名个人小结

1、AuthorizationReq XML 原文

2、AuthorizationReq XML ------> EXI Stream

3、EXI Stream hash 运算 + base64 编码 ------> DisgestValue

4、URI、DisgestValue 放入 XML Signature 模板

5、XML SignedInfo 内容 ------> EXI Stream

6、EXI Stream hash 运算 ------> hash 值

7、hash 值 + 私钥,ECDSA 运算 ------> 签名值(SignatureValue)

ECDSA 运算是一种非对称加密。

1、签名:用私钥对内容签名

2、验签:用公钥对内容验签,表明内容确实是来自对方的,且经过对方签名的。

8、签名值 放入 XML Signature 模板

9、AuthorizationReq XML + Signature XML

10、整个XML ------> EXI Stream

3、验签个人小结

验签那就是反过来嘛,对端在收到 EXI Stream 解码成 XML 内容后,做以下操作。

1、参考验证

1.1、验 ID 相同

1.2、验 hash 值相同

对 AuthorizationReq XML 做 EXI Stream,再对其做 hash 运算得到哈希值,然后再base64编码,若与 DigestValue 相同则通过。

2、验签

1、XML SignedInfo 内容 ------> EXI Stream

2、EXI Stream hash 运算 ------> hash 值

3、hash 值 + 公钥 + SignatureValue + ECDSA 运算 ------> 数学关系匹配?

八、总结

具体的 XML、EXI 的库函数,以及签名加密相关的 mbedtls 库函数,实现过程自行网上查阅哈~

相关推荐
2301_818732062 天前
项目启动报错,错误指向xml 已解决
xml·java·数据库·后端·springboot
csdn2015_3 天前
generatorConfig.xml 配置 Controller、Service 完整教程
xml·mybatis
特立独行的猫a3 天前
从XML到Compose的UI变革:现代(2026)Android开发指南
android·xml·ui·compose·jetpack
spencer_tseng3 天前
Stream not available [SysDictDataMapper.xml]
xml·java
qq_297574674 天前
MySQL迁移到瀚高数据库 常用转换函数对照表(附XML示例,直接复用)
xml·数据库·mysql
好好研究5 天前
SpringBoot整合SpringMVC
xml·java·spring boot·后端·mvc
从此不归路6 天前
Qt5 进阶【12】JSON/XML 数据协议处理:与后端/配置文件的对接
xml·开发语言·c++·qt·json
方芯半导体7 天前
EtherCAT “通信 + 控制“ 的全国产化控制方案,ESC芯片(FCE1323)与国产MCU芯片功能板解析
xml·网络·单片机·嵌入式硬件·网络协议·机器人·自动化
好好研究7 天前
总结SSM设置欢迎页的方式
xml·java·后端·mvc
R-sz8 天前
mybatis的XML,如何多值匹配,支持单值(=)和多值(IN)查询
xml·mybatis