2021年动作《速度与激情9》BD中英双字迅雷下载_电影天堂
update:2021-8-4

magnet:?xt=urn:btih:155970bfc960f57cce7033f4c52181da2a5744cb

magnet:?xt=urn:btih:ca6c26a08122deca8319bc5f8b88a057e18337fa 速度与激情9-2021_HD中英双字V2.mp4.torrent magnet:?xt=urn:btih:2c8438b63cc34b8d840220be5e8a9974753b6c2f 速度与激情9-2021_HD中英双字精译.mp4.torrent
Referenced from:https://www.btdx8.com/torrent/sdyjq9_2021.html

速度与激情9 迅雷网盘 密码: kmzw(打开链接密码自动复制)
Referenced from:https://www.bd2020.com/zx/33147.htm

◎译  名 速度与激情9/F9狂野时速(港)/Fast & Furious 9/FF9/狂野时速9/玩命关头9(台)/速激9
◎片  名 F9: The Fast Saga
◎年  代 2021
◎产  地 美国,泰国,加拿大
◎类  别 动作/犯罪
◎语  言 英语
◎字  幕 中英双字
◎上映日期 2021-05-19(韩国) / 2021-05-21(中国大陆) / 2021-06-25(美国)
◎IMDb评分  5.4/10 from 44700 users
◎豆瓣评分 5.4/10 from 131770 users
◎片  长 142分钟
◎导  演 林诣彬 Justin Lin
◎编  剧 丹·凯西 Daniel Casey
       盖瑞·斯科特·汤普森 Gary Scott Thompson
       克里斯·摩根 Chris Morgan
◎主  演 范·迪塞尔 Vin Diesel
       约翰·塞纳 John Cena
       米歇尔·罗德里格兹 Michelle Rodriguez
       乔丹娜·布鲁斯特 Jordana Brewster
       泰瑞斯·吉布森 Tyrese Gibson
       卢达·克里斯 Ludacris
       查理兹·塞隆 Charlize Theron
       海伦·米伦 Helen Mirren
       姜成镐 Sung Kang
       娜塔莉·伊曼纽尔 Nathalie Emmanuel
       迈克尔·鲁克 Michael Rooker
       卢卡斯·布莱克 Lucas Black
       杜俊纬 Jason Tobin
       卡迪·B Cardi B
       吉姆·帕拉克 Jim Parrack
       芬恩·科尔 Finn Cole
       安珀·西耶娜 Amber Sienna
       马丁·福特 Martyn Ford
       艾拉·沃克 Ella Walker
       泽井杏奈 Anna Sawai
       图厄·埃尔斯特德·拉斯姆森 Thue Ersted Rasmussen
       米拉吉·格尔比克 Miraj Grbic
       吉米·斯达 Jimmy Star
       莱克斯·艾尔 Lex Elle
       温尼·贝内特 Vinnie Bennett
       马克·克雷尼克 Mark Krenik
       杰森·斯坦森 Jason Statham

◎标  签 动作 | 飙车 | 美国 | 犯罪 | 跑车 | 2021 | 科幻 | 赛车

◎简  介

  “唐老大”多姆·托莱多(范·迪塞尔 饰)与莱蒂(米歇尔·罗德里格兹 饰)和他的儿子小布莱恩,过上了远离纷扰的平静生活。然而他们也知道,安宁之下总潜藏着危机。这一次,为了保护他所爱的人,唐老大不得不直面过去。他和伙伴们面临的是一场足以引起世界动荡的阴谋,以及一个前所未遇的一流杀手和高能车手。而这个名叫雅各布(约翰·塞纳 饰)的人,恰巧是多姆遗落在外的亲弟弟。

◎获奖情况

  第7届豆瓣电影年度榜单 (2020)
  最值得期待的外语电影(提名)
  
  第6届豆瓣电影年度榜单 (2019)
  最值得期待的外语电影(提名)
Referenced from:https://www.dytt8.net/html/gndy/dyzz/20210801/61692.html

OpenSSL 生成 SM2 密钥

openssl ecparam -name SM2 -genkey -out sm2_ec.key 
cat sm2_ec.key 
-----BEGIN EC PARAMETERS-----
BggqgRzPVQGCLQ==
-----END EC PARAMETERS-----
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIB9dGHE5+6AD9DGmA8g/cEqn8HYTMBhbM+g2XJ16RqZ1oAoGCCqBHM9V
AYItoUQDQgAEJg19rra1BeuYx9ZU1GbfD0ceE9X67/c2hdb6XZLQor5oNVa+o9HZ
WBioc1hNCC2avO1Dpg5ZAb2YsS71TT7Bsw==
-----END EC PRIVATE KEY-----

OpenSSL 根据SM2私钥生成公钥

openssl ec -in sm2_ec.key -pubout -out sm2_ec.pubkey 
read EC key
writing EC key
cat sm2_ec.pubkey 
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEJg19rra1BeuYx9ZU1GbfD0ceE9X6
7/c2hdb6XZLQor5oNVa+o9HZWBioc1hNCC2avO1Dpg5ZAb2YsS71TT7Bsw==
-----END PUBLIC KEY-----

OpenSSL SM3 计算文件Hash

echo "https://const.net.cn" > sign.data 
openssl dgst -SM3 sign.data 
SM3(sign.data)= 8c13610aeb3040b2899ac224ae7db0710030803c424f776e7241340c66a6d553

OpenSSL 使用 SM2 签名文件

openssl dgst -SM3 -sign sm2_ec.key -out sm2_ec.sig sign.data 
Error setting context
140524048778560:error:100C508A:elliptic curve routines:pkey_ec_ctrl:invalid digest type:../crypto/ec/ec_pmeth.c:331:

在当前版本(OpenSSL 1.1.1f)还不支持命令行使用SM2结合SM3签名。将hash算法换成sha256试试。
OpenSSL 使用 SM2 结合 sha256签名

openssl dgst -sha256 -sign sm2_ec.key -out sm2_ec.sig sign.data 
root@hesy-ThinkPad-P15v-Gen-1:/home/hesy/2021/asn1/src/sm# hexdump -C sm2_ec.sig 
00000000  30 46 02 21 00 d7 52 c2  63 a3 12 ff ef af 69 8e  |0F.!..R.c.....i.|
00000010  8a 35 17 9f f2 0c e2 b1  80 fb dd a1 38 a3 59 14  |.5..........8.Y.|
00000020  5a 18 33 ba 43 02 21 00  9d 10 91 a7 5f a4 cf bb  |Z.3.C.!....._...|
00000030  7b 75 c0 27 17 d5 2d 55  09 cc 10 49 29 f8 bc 0d  |{u.'..-U...I)...|
00000040  10 d6 02 db b1 e4 7c 7a                           |......|z|
00000048

OpenSSL 使用 SM2 结合 sha256 验签

openssl dgst -sha256 -verify sm2_ec.pubkey -signature sm2_ec.sig sign.data 
Verified OK

OpenSSL 使用 SM2 结合 SM3 验签

openssl dgst -SM3 -verify sm2_ec.pubkey -signature sm2_ec.sig sign.data 
Error setting context
140471948707136:error:100C508A:elliptic curve routines:pkey_ec_ctrl:invalid digest type:../crypto/ec/ec_pmeth.c:331:

同上面一样的原因,官方没实现,命令行用不了。

房地产股周三逆势重挫,此前首部公开的地方版住房租赁条例出炉【北京市住房租赁条例(征求意见稿)】,引发对行业监管的忧虑。沪深300地产指数收跌3.7%,该指数今年仍跌逾24%,为表现最差的主要板块之一。对地产有较多风险敞口的银行板块受拖累跌1%。

野村证券首席中国经济学家陆挺在最新报告中称,中国已将遏制房地产泡沫上升到国家战略的层面,直接出手干预了房地产信贷供给,且几乎没有撤回相关高压举措的回旋空间;市场应当准备好迎接比预期严重得多的经济放缓、更多贷款和债券违约、以及潜在的股市动荡。
from https://cn.reuters.com/article/china-stock-0825-wedn-idCNKBS2FQ0KW?il=0

《北京市住房租赁条例(征求意见稿)》
关于对《北京市住房租赁条例》(征求意见稿)公开征求意见的公告
“沃尔克时刻”指的是,美联储前主席沃尔克(Paul Volcker)在1980-82年提高利率以应对通胀,结果是美国出现了严重的双底衰退,债务危机和拉丁美洲出现“失去的十年”。

“白衣骑士” 在工商业上,白武士又称白衣骑士,是指向另一间公司提供协助的公司、私人公司或者个人,可以分为几类。 一类的白武士是向遭受第三方恶意收购的公司提出善意收购。白武士进行收购的目的是为了阻止第三方以较差的条件或价钱收购目标公司的权益。白武士可以提出更好的条件或价钱,以抬高收购价格,或击退进行恶意收购的公司。

野村证券首席中国经济学家陆挺在最新报告中称,未来数月,受最近一波新冠疫情多地散发、出口放缓、房地产高压调控以及减碳等影响,中国经济增速可能大幅下滑;房地产行业可能再度成为焦点,考验中国政府和全球投资者的神经。

但他认为“这次不一样”,因为中国已将遏制房地产泡沫上升到国家战略的层面,直接出手干预了房地产信贷供给,且几乎没有撤回相关高压举措的回旋空间;市场应当准备好迎接比预期严重得多的经济放缓、更多贷款和债券违约、以及潜在的股市动荡。

“经验丰富的投资者或许认为上述观点有夸大之嫌,因为他们早已习惯中国房地产政策的起起落落,但这次情况可能不一样,”陆挺在题为“北京的‘沃尔克时刻’”的报告中称。

他认为,鉴于中国前所未有的收紧房地产行业政策、遏制房价的决心,从某种意义上说,这可能成为中国的“沃尔克(Volcker)时刻”。

在1970年代晚期,时任美国联邦储备委员会(FED)主席沃尔克采取了激进举措来遏制通胀,之后在1980-82年美国经济经历了大幅衰退,但亦为1980年代和1990年代的长期扩张奠定基础。

“至少目前看来,中国政府愿意为了实现包括减少对外国高科技产品依赖、提高出生率、缓解财富不平等等长期目标,而牺牲一部分经济增长稳定性,”陆挺称。

他认为,2018年以来中国面临来自房地产相关的三大挑战:中美关系紧张、出生率迅速下降和财富不平等加剧。中国决心祭出前所未有的房地产高压措施,亦和化解这些挑战密切相关。中国近期打压校外培训行业以减轻中产家庭的教育负担,现在正采取行动移除高房价这座压在中产肩上最重的大山,而这些措施势必将给中国经济和金融市场带来深远影响。

结局会如何?陆挺认为,中国房地产行业的长期前景依然不确定,因为政府尚未给该行业制定全面的长期发展计划,而且这些高压遏制举措可能无法完全达到最高领导人的预期。

他预计中国最终可能决定将上海和重庆的房产税试点推广至全国,一是因为房屋所有权是造成财富不平等的最大根源之一,而且中国已经誓言要实现共同富裕,二是目前的调控举措会导致地方政府土地收入普遍减少,也需要一个替代来补充地方收入来源。

至于公共住房短期内不太可能成为稳增长的“白衣骑士”,因为中国还没有成熟而详实的公共住房规划。公共住房最终影响几何尚不确定,但相信未来数年在向居民提供城镇住房层面市场力量会在某种程度上减弱。

调控持续升级叠加信贷收紧,中国楼市已然入秋。7月70城房价数据环比涨幅降至半年新低,运行数据则显示商品房市场量价热度持续减弱,销售数据年内单月同比首次为负,资金压力凸显;随着调控效果逐步释放,下半年中国房地产料稳中趋缓。(完)

form https://cn.reuters.com/article/nomura-china-economy-0825-wedn-idCNKBS2FQ0HO?il=0

作为日本第一大券商,野村一出手就充满霸气:5月8日,野村证券宣布,任命原华泰证券研究所所长陆挺担任中国区首席经济学家!
陆挺曾以1993年江苏省文科状元身份考入北大经济系。
  陆挺的学术和职业生涯见证了中国经济的崛起过程,他在33岁那年也因准确预测了金融危机后中国经济的走势,在业内声名鹊起。2015年,陆挺从美银美林转至华泰证券,也引发了一股业内海归精英回国的浪潮。

陆挺将常驻中国香港,并向野村新兴市场经济研究主管苏博文(Rob
Subbaraman)汇报。陆挺在野村的主要职责将是带领团队对中国的经济走势进行预测,并致力于影响中国发展的宏观经济专题研究。

  陆挺曾在华泰证券官微发表的一篇文章显示,他的老家在苏北的海门市常乐镇,常乐也是清末状元、著名实业家教育家张謇的故乡。

  据陆挺回忆,他当时填志愿时大胆填写了北大经济系,并最终获得当年江苏省文科状元,这一把“赌赢”让这个农村子弟进入燕园读书。

▲陆挺回到北大讲座 视频截图▲陆挺回到北大讲座 视频截图
  经历了北大和UC伯克利的漫长学术生涯历练,陆挺对中国经济宏观面以及经济学思想史都有了深刻领悟。2006年,博士毕业后陆挺加盟世界第七大投行美林的亚太宏观团队。

  2008年9月,雷曼兄弟申请破产。当时年仅33岁的陆挺随后作出了以下几个判断:

  第一,雷曼兄弟倒台事件,当时国内危机意识不够,过于乐观;

  第二,人民币不会贬值,会稳定;

  第三,2009年中国的GDP增长率会在8%以上。

  这些预测在同行中引发一片反对声,当时很多经济学家对中国和亚太地区的经济走势持悲观预测。除了陆挺之外,只有野村证券的亚太区经济学家站在了陆挺这一方。

  2009年中国GDP增幅达到9.1%,人民币对美元汇率维持在6.8上方。这场论战的胜负不言而喻,而“胜方”陆挺随即声名鹊起。

  2010和2011年他被彭博社评为预测最准确的中国经济学家;

  2012年,他获得《证券市场周刊》“远见杯”中国宏观经济年度预测冠军;

  2013年《机构投资者》亚洲区和中国区经济学家的评比中,陆挺均排名第一;2013年《亚洲货币》杂志经济学家排名中陆挺获得第一。

from http://news.sina.com.cn/c/2018-05-09/doc-ihaichqy6387633.shtml

杨丹旭:“金九银十”冷飕飕 | 联合早报网 update:2021-9-8
官方与房地产市场的博弈,最近也引发一些楼市调控会不会矫枉过正的担忧。野村证券首席中国经济学家陆挺上月底在一篇报告中提出,中国前所未有的收紧房地产行业政策、遏制房价决心,可能成为中国的“沃尔克时刻(Volcker
Moment)”。

什么是“沃尔克时刻”?1970年代末期,美国面对严重的通货膨胀问题。时任美联储主席沃尔克为遏制通胀,采取激进的加息措施,导致失业率飙升,美国经济在1980年至1982年陷入大幅衰退。

陆挺指出,中国已把遏制房地产泡沫上升至国家战略层面,直接出手干预房地产信贷供给,且几乎没有撤回相关高压举措的回旋空间,市场应当准备好迎接比预期严重得多的经济放缓、更多贷款和债券违约,以及潜在的股市动荡。

官方对房地产市场的调控,已经显现连锁反应,例如,去年出台的房地产企业融资“三道红线”给房企套上负债率的“紧箍咒”,包括恒大在内的一些房企,接连因踩到“红线”陷入债务困境,爆雷风险陡升。

中国房地产市场发展到今天,早已与中国经济、社会的方方面面深度绑定,成为一个利益共同体。地方财政收入高度依赖土地财政;银行得担忧房地产泡沫破裂引发金融风险;大量把房地产当做发财工具、负债投资房地产的人,身家财产都与楼市紧密挂钩。

说房地产动荡会让中国陷入“沃尔克时刻”并不夸张,但对决策者而言,如果不牺牲一部分经济增长的稳定性,压在民众身上多年的“大山”恐怕就移不走,共同富裕路上的荆棘也扫不清。别忘了,沃尔克当年遏制通胀,也为美国经济在1980年代和1990年代的长期扩张奠定了基础。

Referenced from:https://www.zaobao.com/finance/china/story20210908-1191421

package main
import "fmt"
import "net/url"
import "strings"
func main() {
//我们将解析这个 URL 示例,它包含了一个 scheme,认证信息,主机名,端口,路径,查询参数和片段。
    s := "postgres://user:pass@host.com:5432/path?k=v#f"
//解析这个 URL 并确保解析没有出错。
    u, err := url.Parse(s)
    if err != nil {
        panic(err)
    }
//直接访问 scheme。
    fmt.Println(u.Scheme)
//User 包含了所有的认证信息,这里调用 Username和 Password 来获取独立值。
    fmt.Println(u.User)
    fmt.Println(u.User.Username())
    p, _ := u.User.Password()
    fmt.Println(p)
//Host 同时包括主机名和端口信息,如过端口存在的话,使用 strings.Split() 从 Host 中手动提取端口。
    fmt.Println(u.Host)
    h := strings.Split(u.Host, ":")
    fmt.Println(h[0])
    fmt.Println(h[1])
//这里我们提出路径和查询片段信息。
    fmt.Println(u.Path)
    fmt.Println(u.Fragment)
//要得到字符串中的 k=v 这种格式的查询参数,可以使用 RawQuery 函数。你也可以将查询参数解析为一个map。已解析的查询参数 map 以查询字符串为键,对应值字符串切片为值,所以如何只想得到一个键对应的第一个值,将索引位置设置为 [0] 就行了。
    fmt.Println(u.RawQuery)
    m, _ := url.ParseQuery(u.RawQuery)
    fmt.Println(m)
    fmt.Println(m["k"][0])
}
//运行我们的 URL 解析程序,显示全部我们提取的 URL 的不同数据块。
$ go run url-parsing.go 
postgres
user:pass
user
pass
host.com:5432
host.com
5432
/path
f
k=v
map[k:[v]]
v

第二个url.Parse示例

func time_GET(w http.ResponseWriter, r *http.Request) {
    u, _ := url.Parse(r.URL.String())
    values, _ := url.ParseQuery(u.RawQuery)
    fmt.Println(u)           // /time?a=111&b=1212424
    fmt.Println(u.RawQuery)  // a=111&b=1212424
    fmt.Println(values)      // map[a:[111] b:[1212424]]
    fmt.Println(values["a"]) //[111]
    fmt.Println(values["b"]) //[1212424]
    ...
}

...

 输入URL:
 http://localhost:8080/time?aaa=111&b=1212424

 程序输出:
/time?a=111&b=1212424
a=111&b=1212424
map[a:[111] b:[1212424]]
[111]
[1212424]

ed2k://|file|[%E7%94%B5%E5%BD%B1%E5%A4%A9%E5%A0%82]%E6%B2%99%E4%B8%98-2021_HD%E4%B8%AD%E8%8B%B1%E5%8F%8C%E5%AD%97.mp4|2255472317|BC985601F5DC0465BB3ACDE5CBC30D35|/

dune.png

magnet:?xt=urn:btih:586bd0fae0d949a4a149ea390bef0895acd536af

dune-download.png

电影《沙丘》为观众呈现了一段神秘而感人至深的英雄之旅。天赋异禀的少年保罗·厄崔迪被命运指引,为了保卫自己的家族和人民,决心前往浩瀚宇宙间最危险的星球,开启一场惊心动魄的冒险。与此同时,各路势力为了抢夺这颗星球上一种能够释放人类最大潜力的珍贵资源而纷纷加入战场。最终,唯有那些能够战胜内心恐惧的人才能生存下去。
dune-movie.png

| 《沙丘》:史诗的加法与减法 update:2021-10-27
即便是在电影《沙丘》公映前的最后时刻,被人们讨论最频繁的话题之一,还是将原著小说影视化的不可操作性。

《沙丘》的原著太过浩瀚,甚至可以说,这部作品本身就是一个庞大的“怪物”:

不仅动辄星辰大海、权力游戏,还将政治、宗教、哲学、生态以及平权等主题交融于其中。如何把这部充满冒险精神和史诗感的文学著作,改编成兼具娱乐价值、情感力量和影视美感的影片,几乎是令任何人都会无所适从的任务。

也正因如此,从佐度洛夫斯基壮志未酬的1970年代版本,到大卫•林奇自己都羞于启齿的1984版,在《沙丘》小说的电影改编之路上,可谓遍布着鬼才艺术家和野心制片人的叹息。

今天,新版的电影《沙丘》终于将与公众见面,指导影片的导演是丹尼斯•维伦纽瓦(Denis
Villeneuve)。这位加拿大导演因细腻的镜头美学和“迷宫式”的叙事著称。从《焦土之城》到《边境杀手》,从《降临》到《银翼杀手2049》,他的作品因在亦幻亦真的世界中探讨人物宿命和时代主题而深入人心。

但是《沙丘》的世界观和人物谱系无疑更宏大、更复杂,在这个粉丝甚众的太空歌剧舞台上,维伦纽瓦能否呈现史诗级别的品质?又该如何继续讲述“迷失”与“寻找”的故事?

众所周知,维伦纽瓦的电影具有鲜明的视觉风格,并且擅长营造强烈的“氛围感”。在他的故事中,时常会出现凝滞且克制的场面,比如《边境杀手》中经典的公路奔袭桥段:武装车队在美墨边境的街区中飞驰,导演通过街景、枪声以及慌乱的视角,就完美地表达出了危机四伏的紧张和窒息。类似的气氛渲染,还被用以描绘电影《降临》中,外星巨船骤然现身地球时所造成混乱和压抑;以及《银翼杀手2049》中,复制人与人类混居一处的那个清冷、薄情的赛博朋克都市。

这种潜心塑造的气氛,往往与影片所要探讨的主题潜在呼应,进而带来极强的沉浸式体验。在这种体验之下,并不仅仅是作为观众的你在观看影片中的景观,景观同样也会从氛围中走出来,深深“凝视”着你。

而维伦纽瓦这种风格化的氛围营造技艺,被以近乎任性的浓度施展在了2021版的《沙丘》中。影片并没有展现密集的战争场面,相反,那种来自景观的“凝视”却比比皆是,几乎每位主要的出场人物、每处重要的场景,以及每段关键的情节,都被赋予了极强的镜头仪式感。

电影《沙丘》剧照
《沙丘》的画面不仅是在耐心地呈现一个又一个星际世界里的奇观,并且还在详细地诠释着这些奇观的“尺度”:究竟什么是“巨大”、“微小”、“迅速”、“汹涌”、“阴暗”、“威仪”…
这些抽象的词汇,都被考究的镜头语言一一精准地定义出来。伴随汉斯•季默时而低沉时而尖亢的音乐,坐在大荧幕前,几乎能真切体验到沙丘星球上的光、风、气息与声响。与此同时,也能清楚感受到,那种经过铺陈和酝酿之后所释放出来的强大张力。

举一处为例:存在于厄拉科斯星球地下的巨型沙虫,在它首次现露真身之前,影片用了近7分钟的时间描绘体积如同山丘一样庞大的沙漠爬行车,以及海浪般起伏汹涌的流沙,而最终沙虫的现身只有一个局部,它像吃点心一样,迅猛地吞掉了爬行车,随后重新沉没进黄沙里,虽然过程只是一个瞬间,但是在充足的伏笔和反差之下,庞然大物所带来的恐怖感已立时被拉满。

然而也许是导演对于塑造沙丘世界的雄心太大,《沙丘》紧绷满溢的氛围,甚至夺走了登场人物的光彩。

维伦纽瓦电影的另一个标志性元素,就是会让主人公置身于一个巨大的谜题里,谜题的答案往往指向一个具有哲思意义的现实问题。而故事中的人物,会因为渴望得到那个答案,不断趋驰奔走,不停接受拷问。

在《焦土之城》中,谜题是双胞胎姐弟寻找父兄的旅途,而最终所揭露出来的,是宗教纷争的荒谬和残酷;在《边境杀手》里,是凯特探员夹在黑白混沌的警匪恩怨中,不断反思“正义”的本质;在《银翼杀手2049》里,复制人K则陷入了对于自己身份真相的反复求解,并在过程中体验“存在”的意义。

以上这些矛盾所讲述的,都是小人物与宏大世事的紧张关系。而此次《沙丘》的谜题主线,是“甜茶”饰演的保罗•厄崔迪,如何在所谓“天命之子”的命运和残酷的现实之间,处理自己的身份危机,并肩负起真正的责任。

维伦纽瓦在接受采访时曾经表示,他希望人们在观看《沙丘》时,不会将保罗看做一个王子或是一个超级英雄,而是把他当成一个“男孩”去看待。

然而,最终我们却并没有清晰地看到一个“男孩的困境”。影片中的保罗,一直游离在一个神秘的梦境里。在一些至关重要的抉择面前,他总是会遵循梦境给出的启示。仿佛他的命运自始至终还是被神祗所牵引的。保罗还是那个“天选之子”,他更多地是在注视他人的遭遇和劫难,即便也会展现脆弱和敏感,但那些脆弱和敏感更像是脸谱化的。

这不由得让人觉得,导演所塑造的保罗或许另有深意。而陪在保罗身边的母亲杰西卡夫人,甚至都比他更能展现出人性真实的犹疑和进退。

反派家族的首领,“暴君”哈克南男爵,反而成了最为立体的角色之一。他的戏份很有限,而且大部分的时间都是在靠语言和眼神出镜,但也因为如此,嚣张和暴力的本性被收敛起来。演员斯卡斯加德(Stellan
Skarsgård)的表演也十分克制,不动神色地把男爵的阴狠、多谋和激进准确传达了出来。直到男爵巨大的身体腾空升起,被完全展现在荧幕中时,那种阴森和畸形的压迫感,又让他的形象进一步深化。

总而言之,《沙丘》是一部风格独特、个性鲜明的科幻电影。导演对一部鸿篇史诗,进行了耐心又富有诚意的剪裁和取舍。而在强大的质感和氛围营造之下,英雄和枭雄都退而变成了芸芸众生。观看完电影之后,被回味最多的,也还是那个气息满满、挥之不散的黄沙世界。这时才会发现,电影真正的主角可能就是舞台本身,就是沙丘自己。

Referenced from:https://www.or123.net/?p=389488

《基于LTE的车联网无线通信技术 安全证书管理系统技术要求》 SM2 验证过程

已知数据
签名证书对应的SM2私钥:

17 9e 18 ae e3 38 72 e1 60 5e 99 e8 bc 61 20 f7 
95 e7 c8 f8 a9 ce 60 7a 4a 71 78 68 23 53 a1 69

签名证书SM3哈希值:

e3 8c 7c b2 ec ed b9 28 9b 6e 71 ad 30 b6 26 2c 
4a 57 85 73 b9 a4 4d e8 ab 65 9a 6b cd 96 7d 77

ToBeSignedData待签名数据值:

40 03 80 20 34 34 34 34 34 34 34 34 34 34 34 34 
34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 
34 34 34 34 40 01 20 00 00 00 00 00 23 73 03 

过程数据
签名证书对应的公钥:

X:
1e 5f 89 a5 74 08 2c 8b 36 11 fb a8 d0 65 f3 08 
b4 8f 64 ee ef 71 30 3c 75 ba 8e 95 d5 be 89 42 
Y:
77 84 ef 22 09 41 de eb cf 5b 3e 34 65 98 0a 30 
91 67 34 6f fe 05 0a e1 00 7c 2d 2f 3f 10 57 74

ZA值:

ff 25 43 65 9c 0b 93 c3 9f e3 b4 00 73 98 df 9f 
b4 0c f4 5d e3 65 e7 c9 af 16 5d 42 68 35 0b b9 

Hash (ZA || Data input) 值:

7a b1 2a 19 b6 45 df c6 36 e2 0e a7 ae b0 e5 5e 
f3 f3 68 38 87 b2 e0 76 a8 eb 32 94 90 4e e5 d4

签名结果数据

R:
DD F9 07 5D D2 D9 47 05 A1 2F 42 5E 51 CB 27 4C 
B8 F4 AE 65 B3 1C 7C DD CD 31 C2 BC 3C 55 28 81
S:
20 86 11 DE 09 A7 CC 4E 48 76 E6 9E F2 E7 C0 6A 
85 39 A4 67 F2 0B 0E A7 FE EB 2A FE 9D 59 5C C4

附录
ZA值计算方法
SM2是一种椭圆曲线密码学算法, SM2只与单个特定的256位椭圆曲线相关联,因此在本标准中与SM2相关联的标识符不需要额外的曲线指示。
本标准中SM2的签名格式r用整数表示。SM2通过将身份字符串添加到要散列的消息前来命名散列函数, 这个身份字符串是:
𝑍𝐴 = 𝐻ASH(𝐸𝑁𝑇𝐿𝐴||𝐼𝐷𝐴||𝑎||𝑏||𝑥𝐺| |𝑦𝐺 ||𝑥𝐴||𝑦𝐴)
其中

1) ENTLA 是由IDA长度转换而成的两个字节字符,值为IDA的有效比特数;
2) IDA 是发送方的ID;
3) a 和b是SM2椭圆曲线的方程参数;
4) xG和yG 是SM2基点的 x和y坐标;
5) xA和yA是验签公钥的x和y坐标;

数字签名用H(ZA || Data input)计算,而不是只用M计算,此处的Data input为待签名的消息数据。
本标准约定IDA为发送方正在使用证书的32字节哈希值,也即IDA=HashedId32(Certificate)并按GB/T 32918进行比特串到字节串的转换,ENTLA 是0x0100。当签发的证书为自签名证书时,IDA为16进制整数31323334353637383132333435363738,并按GB/T 32918进行整数到字节串的转换,因此ENTLA 是0x0080。

  • TDCL 可信域CA证书列表 Trusted Domain CA Certificates List

可信根证书列表(TRCL)和可信域CA证书列表(TDCL)的发布可以分为集中式和分布式两种。
集中式发布方式是指可信根证书列表管理机构(TRCLA)将TRCL和各个安全域的TDCL发送给各个安全域,然后由各个安全域确定如何分发给域内的车联网设备。
分布式发布方式是指向车联网设备提供下载TRCL和各个安全域的TDCL的地址,然后由车联网设备自行下载交叉认证时需要的各个认证域的CA证书。
车联网设备可内置TRCLA签名证书,通过对TRCL的验证建立对其它域根证书的信任,通过使用TRCL中的各个根证书验证TDCL,建立对其它域内各个CA的信任,进而具备验证其它域内实体证书的能力。若TRCL和TDCL由各个安全域分发,各安全域分发的内容应与从TRCLA获得的内容一致。

在TRCL中,包含了五个根证书,这个作为我们验证TDCL(可信根证书列表)使用。
tdcl.oer使用0B89CB67A93CA58C.tdcl,0B89CB67A93CA58C.tdcl看签发机构是catarc,这个机构查询了一下,应该是 中国汽车技术研究中心 。
0B89CB67A93CA58C.tdcl hex 内容

hexdump -C 0B89CB67A93CA58C.tdcl 
00000000  01 83 08 dd d7 e5 63 6c  eb 16 d0 00 02 1f 78 ea  |......cl......x.|
00000010  0e 1f 78 f8 1e 01 02 c0  01 02 80 03 00 83 08 0b  |..x.............|
00000020  89 cb 67 a9 3c a5 8c 79  81 15 69 63 61 2e 76 32  |..g.<..y..ica.v2|
00000030  78 63 61 2e 63 61 74 61  72 63 2e 69 6e 66 6f 00  |xca.catarc.info.|
00000040  00 00 00 00 1f 78 b4 a4  86 00 19 83 01 01 80 00  |.....x..........|
00000050  9c 03 01 02 80 02 0e 2b  80 03 83 00 01 80 02 0e  |.......+........|
00000060  2c 80 07 00 01 00 01 01  00 00 01 01 a0 80 01 03  |,...............|
00000070  00 02 0e 2b 00 02 0e 2c  00 02 0e 2d 01 02 c0 01  |...+...,...-....|
00000080  82 21 83 70 38 4f d8 04  10 15 a0 5f fd 5b 99 aa  |.!.p8O....._.[..|
00000090  67 6a db ee 61 cb 77 b1  c0 d2 52 09 3c 87 35 bf  |gj..a.w...R.<.5.|
000000a0  46 63 e6 80 84 21 83 9f  da 6d 5b a8 a6 5e d7 c7  |Fc...!...m[..^..|
000000b0  f4 ca 4c f1 ea 54 51 78  11 bf 18 fb 58 b0 0e bc  |..L..TQx....X...|
000000c0  de b7 81 09 27 dd 62 84  40 ea 0b 6f e7 34 ee c5  |....'.b.@..o.4..|
000000d0  4b 47 6d 4b 46 0a 68 f1  0a 27 6f 7b 0b f9 5b 8c  |KGmKF.h..'o{..[.|
000000e0  d2 14 97 bc 6f b0 25 c9  1c 36 3a 59 54 8c 42 3b  |....o.%..6:YT.B;|
000000f0  b6 88 22 0c b8 2c 05 f4  76 e2 c2 05 17 8c c1 82  |.."..,..v.......|
00000100  e9 94 d5 f4 77 62 58 60  0b 80 03 00 83 08 56 e9  |....wbX`......V.|
00000110  52 03 b2 14 99 38 79 81  15 70 63 61 2e 76 32 78  |R....8y..pca.v2x|
00000120  63 61 2e 63 61 74 61 72  63 2e 69 6e 66 6f 00 00  |ca.catarc.info..|
00000130  00 00 00 1f 78 e3 cb 86  00 14 83 01 01 80 00 9c  |....x...........|
00000140  03 01 02 80 02 0e 2b 80  03 87 00 01 80 02 0e 2c  |......+........,|
00000150  80 07 00 01 00 01 01 00  00 01 01 80 80 01 08 00  |................|
00000160  01 6f 00 01 70 00 01 71  00 01 72 00 02 0e 28 00  |.o..p..q..r...(.|
00000170  02 0e 2b 00 02 0e 2c 00  02 0e 2d 01 02 01 82 21  |..+...,...-....!|
00000180  82 20 27 49 ad 5d 8e a3  3f a8 51 7e 78 76 0f 0b  |. 'I.]..?.Q~xv..|
00000190  f5 0a cd fa d6 40 57 1b  0e ad f8 90 88 0d e8 6e  |.....@W........n|
000001a0  fc 80 84 21 83 0a 04 a2  9a 9f db 55 81 67 cb 0c  |...!.......U.g..|
000001b0  a3 63 bd c7 d9 18 a5 d6  5a 29 b5 84 66 70 ee f3  |.c......Z)..fp..|
000001c0  42 7d bc 44 2c 84 40 1d  ae 8a 7c 94 fa 69 25 13  |B}.D,.@...|..i%.|
000001d0  fe 66 ec 36 6c 9c f5 8d  7f 74 34 24 4f 48 6c f2  |.f.6l....t4$OHl.|
000001e0  05 17 7e a0 87 7b 56 c5  1c a6 56 20 11 a4 7a 42  |..~..{V...V ..zB|
000001f0  9b 81 cb 51 f7 1a f8 ab  04 4b be e1 fd 72 22 02  |...Q.....K...r".|
00000200  63 93 c1 26 1c 23 3e 00  00 c0 01 02 80 03 00 83  |c..&.#>.........|
00000210  08 0b 89 cb 67 a9 3c a5  8c 79 81 15 69 63 61 2e  |....g.<..y..ica.|
00000220  76 32 78 63 61 2e 63 61  74 61 72 63 2e 69 6e 66  |v2xca.catarc.inf|
00000230  6f 00 00 00 00 00 1f 78  b4 a4 86 00 19 83 01 01  |o......x........|
00000240  80 00 9c 03 01 02 80 02  0e 2b 80 03 83 00 01 80  |.........+......|
00000250  02 0e 2c 80 07 00 01 00  01 01 00 00 01 01 a0 80  |..,.............|
00000260  01 03 00 02 0e 2b 00 02  0e 2c 00 02 0e 2d 01 02  |.....+...,...-..|
00000270  c0 01 82 21 83 70 38 4f  d8 04 10 15 a0 5f fd 5b  |...!.p8O....._.[|
00000280  99 aa 67 6a db ee 61 cb  77 b1 c0 d2 52 09 3c 87  |..gj..a.w...R.<.|
00000290  35 bf 46 63 e6 80 84 21  83 9f da 6d 5b a8 a6 5e  |5.Fc...!...m[..^|
000002a0  d7 c7 f4 ca 4c f1 ea 54  51 78 11 bf 18 fb 58 b0  |....L..TQx....X.|
000002b0  0e bc de b7 81 09 27 dd  62 84 40 ea 0b 6f e7 34  |......'.b.@..o.4|
000002c0  ee c5 4b 47 6d 4b 46 0a  68 f1 0a 27 6f 7b 0b f9  |..KGmKF.h..'o{..|
000002d0  5b 8c d2 14 97 bc 6f b0  25 c9 1c 36 3a 59 54 8c  |[.....o.%..6:YT.|
000002e0  42 3b b6 88 22 0c b8 2c  05 f4 76 e2 c2 05 17 8c  |B;.."..,..v.....|
000002f0  c1 82 e9 94 d5 f4 77 62  58 60 0b 80 03 00 83 08  |......wbX`......|
00000300  56 e9 52 03 b2 14 99 38  79 81 15 65 63 61 2e 76  |V.R....8y..eca.v|
00000310  32 78 63 61 2e 63 61 74  61 72 63 2e 69 6e 66 6f  |2xca.catarc.info|
00000320  00 00 00 00 00 1f 78 da  3a 86 00 14 83 01 01 80  |......x.:.......|
00000330  00 9c 03 01 02 80 02 0e  2b 80 03 84 00 01 80 02  |........+.......|
00000340  0e 2c 80 07 00 01 00 01  01 00 00 01 01 a0 80 01  |.,..............|
00000350  03 00 02 0e 2b 00 02 0e  2c 00 02 0e 2d 01 02 40  |....+...,...-..@|
00000360  01 82 21 82 95 62 51 c1  23 14 c5 60 c2 f6 0c 25  |..!..bQ.#..`...%|
00000370  21 86 64 72 a6 91 f7 bd  40 b3 2b c4 64 da 1b 45  |!.dr....@.+.d..E|
00000380  3b d0 74 4d 80 84 21 83  2a a8 83 46 7d 24 77 39  |;.tM..!.*..F}$w9|
00000390  5c 09 ad 5f 20 d4 9b 7b  e1 b9 f3 49 2d 22 aa 9b  |\.._ ..{...I-"..|
000003a0  3f 80 f1 58 6e 17 e3 65  84 40 19 4f b3 25 1b 0d  |?..Xn..e.@.O.%..|
000003b0  ab 01 f4 8b bf 99 03 f1  8c f4 97 e2 57 07 7f 8f  |............W...|
000003c0  2f 28 d0 58 ca 92 ae 5a  4a 0c 0e 39 24 88 69 09  |/(.X...ZJ..9$.i.|
000003d0  34 95 c6 e6 a2 9a f0 ed  7c 7c d5 42 59 81 49 e4  |4.......||.BY.I.|
000003e0  48 f4 02 f1 0f 87 eb 07  6e fe 00 00 84 40 31 51  |H.......n....@1Q|
000003f0  be 75 da 09 df 23 49 39  82 f0 5f 9f 8c 40 10 da  |.u...#I9.._..@..|
00000400  59 2c fa db 37 ca aa ce  eb 45 71 d7 66 47 88 85  |Y,..7....Eq.fG..|
00000410  4c 6b 23 49 8c fb c0 ea  e5 6c 00 be 35 3e 2e 2b  |Lk#I.....l..5>.+|
00000420  3b 42 47 6e ed cf 74 07  8c d7 a1 56 26 f6        |;BGn..t....V&.|
0000042e

0B89CB67A93CA58C.tdcl XML 格式内容

<?xml version="1.0"?>
<PkiCtl>
    <toBeSignedPkiCtl>
        <version>1</version>
        <issuer>
            <sm3AndDigest>DD D7 E5 63 6C EB 16 D0</sm3AndDigest>
        </issuer>
        <series>2</series>
        <issueDate>528017934</issueDate>
        <nextPkiCtl>528021534</nextPkiCtl>
        <pkiCertInfoList>
            <PkiCertInfo>
                <certificate>
                    <Certificate>
                        <version>3</version>
                        <type>
                            <explicit/>
                        </type>
                        <issuer>
                            <sm3AndDigest>0B 89 CB 67 A9 3C A5 8C</sm3AndDigest>
                        </issuer>
                        <toBeSigned>
                            <id>
                                <name>ica.v2xca.catarc.info</name>
                            </id>
                            <cracaId>00 00 00</cracaId>
                            <crlSeries>0</crlSeries>
                            <validityPeriod>
                                <start>528004260</start>
                                <duration>
                                    <years>25</years>
                                </duration>
                            </validityPeriod>
                            <region>
                                <identifiedRegion>
                                    <countryOnly>156</countryOnly>
                                </identifiedRegion>
                            </region>
                            <assuranceLevel>03</assuranceLevel>
                            <appPermissions>
                                <AidSsp>
                                    <aid>3627</aid>
                                    <ssp>
                                        <opaque>83 00 01</opaque>
                                    </ssp>
                                </AidSsp>
                                <AidSsp>
                                    <aid>3628</aid>
                                    <ssp>
                                        <opaque>00 01 00 01 01 00 00</opaque>
                                    </ssp>
                                </AidSsp>
                            </appPermissions>
                            <certIssuePermissions>
                                <AidGroupPermissions>
                                    <subjectPermissions>
                                        <explicit>
                                            <AidSspRange>
                                                <aid>3627</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>3628</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>3629</aid>
                                            </AidSspRange>
                                        </explicit>
                                    </subjectPermissions>
                                    <minChainLength>2</minChainLength>
                                    <chainLengthRange>0</chainLengthRange>
                                    <eeType>
                                        11000000
                                    </eeType>
                                </AidGroupPermissions>
                            </certIssuePermissions>
                            <encryptionKey>
                                <supportedSymmAlg>
                                    <sm4Ccm/>
                                </supportedSymmAlg>
                                <publicKey>
                                    <ecencSm2>
                                        <compressed-y-1>
                                            70 38 4F D8 04 10 15 A0 5F FD 5B 99 AA 67 6A DB 
                                            EE 61 CB 77 B1 C0 D2 52 09 3C 87 35 BF 46 63 E6
                                        </compressed-y-1>
                                    </ecencSm2>
                                </publicKey>
                            </encryptionKey>
                            <verifyKeyIndicator>
                                <verificationKey>
                                    <ecsigSm2>
                                        <compressed-y-1>
                                            9F DA 6D 5B A8 A6 5E D7 C7 F4 CA 4C F1 EA 54 51 
                                            78 11 BF 18 FB 58 B0 0E BC DE B7 81 09 27 DD 62
                                        </compressed-y-1>
                                    </ecsigSm2>
                                </verificationKey>
                            </verifyKeyIndicator>
                        </toBeSigned>
                        <signature>
                            <sm2Signature>
                                <rSig>
                                    EA 0B 6F E7 34 EE C5 4B 47 6D 4B 46 0A 68 F1 0A 
                                    27 6F 7B 0B F9 5B 8C D2 14 97 BC 6F B0 25 C9 1C
                                </rSig>
                                <sSig>
                                    36 3A 59 54 8C 42 3B B6 88 22 0C B8 2C 05 F4 76 
                                    E2 C2 05 17 8C C1 82 E9 94 D5 F4 77 62 58 60 0B
                                </sSig>
                            </sm2Signature>
                        </signature>
                    </Certificate>
                    <Certificate>
                        <version>3</version>
                        <type>
                            <explicit/>
                        </type>
                        <issuer>
                            <sm3AndDigest>56 E9 52 03 B2 14 99 38</sm3AndDigest>
                        </issuer>
                        <toBeSigned>
                            <id>
                                <name>pca.v2xca.catarc.info</name>
                            </id>
                            <cracaId>00 00 00</cracaId>
                            <crlSeries>0</crlSeries>
                            <validityPeriod>
                                <start>528016331</start>
                                <duration>
                                    <years>20</years>
                                </duration>
                            </validityPeriod>
                            <region>
                                <identifiedRegion>
                                    <countryOnly>156</countryOnly>
                                </identifiedRegion>
                            </region>
                            <assuranceLevel>03</assuranceLevel>
                            <appPermissions>
                                <AidSsp>
                                    <aid>3627</aid>
                                    <ssp>
                                        <opaque>87 00 01</opaque>
                                    </ssp>
                                </AidSsp>
                                <AidSsp>
                                    <aid>3628</aid>
                                    <ssp>
                                        <opaque>00 01 00 01 01 00 00</opaque>
                                    </ssp>
                                </AidSsp>
                            </appPermissions>
                            <certIssuePermissions>
                                <AidGroupPermissions>
                                    <subjectPermissions>
                                        <explicit>
                                            <AidSspRange>
                                                <aid>111</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>112</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>113</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>114</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>3624</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>3627</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>3628</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>3629</aid>
                                            </AidSspRange>
                                        </explicit>
                                    </subjectPermissions>
                                    <minChainLength>2</minChainLength>
                                    <chainLengthRange>0</chainLengthRange>
                                </AidGroupPermissions>
                            </certIssuePermissions>
                            <encryptionKey>
                                <supportedSymmAlg>
                                    <sm4Ccm/>
                                </supportedSymmAlg>
                                <publicKey>
                                    <ecencSm2>
                                        <compressed-y-0>
                                            20 27 49 AD 5D 8E A3 3F A8 51 7E 78 76 0F 0B F5 
                                            0A CD FA D6 40 57 1B 0E AD F8 90 88 0D E8 6E FC
                                        </compressed-y-0>
                                    </ecencSm2>
                                </publicKey>
                            </encryptionKey>
                            <verifyKeyIndicator>
                                <verificationKey>
                                    <ecsigSm2>
                                        <compressed-y-1>
                                            0A 04 A2 9A 9F DB 55 81 67 CB 0C A3 63 BD C7 D9 
                                            18 A5 D6 5A 29 B5 84 66 70 EE F3 42 7D BC 44 2C
                                        </compressed-y-1>
                                    </ecsigSm2>
                                </verificationKey>
                            </verifyKeyIndicator>
                        </toBeSigned>
                        <signature>
                            <sm2Signature>
                                <rSig>
                                    1D AE 8A 7C 94 FA 69 25 13 FE 66 EC 36 6C 9C F5 
                                    8D 7F 74 34 24 4F 48 6C F2 05 17 7E A0 87 7B 56
                                </rSig>
                                <sSig>
                                    C5 1C A6 56 20 11 A4 7A 42 9B 81 CB 51 F7 1A F8 
                                    AB 04 4B BE E1 FD 72 22 02 63 93 C1 26 1C 23 3E
                                </sSig>
                            </sm2Signature>
                        </signature>
                    </Certificate>
                </certificate>
                <crlUrl/>
                <maUrl/>
            </PkiCertInfo>
            <PkiCertInfo>
                <certificate>
                    <Certificate>
                        <version>3</version>
                        <type>
                            <explicit/>
                        </type>
                        <issuer>
                            <sm3AndDigest>0B 89 CB 67 A9 3C A5 8C</sm3AndDigest>
                        </issuer>
                        <toBeSigned>
                            <id>
                                <name>ica.v2xca.catarc.info</name>
                            </id>
                            <cracaId>00 00 00</cracaId>
                            <crlSeries>0</crlSeries>
                            <validityPeriod>
                                <start>528004260</start>
                                <duration>
                                    <years>25</years>
                                </duration>
                            </validityPeriod>
                            <region>
                                <identifiedRegion>
                                    <countryOnly>156</countryOnly>
                                </identifiedRegion>
                            </region>
                            <assuranceLevel>03</assuranceLevel>
                            <appPermissions>
                                <AidSsp>
                                    <aid>3627</aid>
                                    <ssp>
                                        <opaque>83 00 01</opaque>
                                    </ssp>
                                </AidSsp>
                                <AidSsp>
                                    <aid>3628</aid>
                                    <ssp>
                                        <opaque>00 01 00 01 01 00 00</opaque>
                                    </ssp>
                                </AidSsp>
                            </appPermissions>
                            <certIssuePermissions>
                                <AidGroupPermissions>
                                    <subjectPermissions>
                                        <explicit>
                                            <AidSspRange>
                                                <aid>3627</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>3628</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>3629</aid>
                                            </AidSspRange>
                                        </explicit>
                                    </subjectPermissions>
                                    <minChainLength>2</minChainLength>
                                    <chainLengthRange>0</chainLengthRange>
                                    <eeType>
                                        11000000
                                    </eeType>
                                </AidGroupPermissions>
                            </certIssuePermissions>
                            <encryptionKey>
                                <supportedSymmAlg>
                                    <sm4Ccm/>
                                </supportedSymmAlg>
                                <publicKey>
                                    <ecencSm2>
                                        <compressed-y-1>
                                            70 38 4F D8 04 10 15 A0 5F FD 5B 99 AA 67 6A DB 
                                            EE 61 CB 77 B1 C0 D2 52 09 3C 87 35 BF 46 63 E6
                                        </compressed-y-1>
                                    </ecencSm2>
                                </publicKey>
                            </encryptionKey>
                            <verifyKeyIndicator>
                                <verificationKey>
                                    <ecsigSm2>
                                        <compressed-y-1>
                                            9F DA 6D 5B A8 A6 5E D7 C7 F4 CA 4C F1 EA 54 51 
                                            78 11 BF 18 FB 58 B0 0E BC DE B7 81 09 27 DD 62
                                        </compressed-y-1>
                                    </ecsigSm2>
                                </verificationKey>
                            </verifyKeyIndicator>
                        </toBeSigned>
                        <signature>
                            <sm2Signature>
                                <rSig>
                                    EA 0B 6F E7 34 EE C5 4B 47 6D 4B 46 0A 68 F1 0A 
                                    27 6F 7B 0B F9 5B 8C D2 14 97 BC 6F B0 25 C9 1C
                                </rSig>
                                <sSig>
                                    36 3A 59 54 8C 42 3B B6 88 22 0C B8 2C 05 F4 76 
                                    E2 C2 05 17 8C C1 82 E9 94 D5 F4 77 62 58 60 0B
                                </sSig>
                            </sm2Signature>
                        </signature>
                    </Certificate>
                    <Certificate>
                        <version>3</version>
                        <type>
                            <explicit/>
                        </type>
                        <issuer>
                            <sm3AndDigest>56 E9 52 03 B2 14 99 38</sm3AndDigest>
                        </issuer>
                        <toBeSigned>
                            <id>
                                <name>eca.v2xca.catarc.info</name>
                            </id>
                            <cracaId>00 00 00</cracaId>
                            <crlSeries>0</crlSeries>
                            <validityPeriod>
                                <start>528013882</start>
                                <duration>
                                    <years>20</years>
                                </duration>
                            </validityPeriod>
                            <region>
                                <identifiedRegion>
                                    <countryOnly>156</countryOnly>
                                </identifiedRegion>
                            </region>
                            <assuranceLevel>03</assuranceLevel>
                            <appPermissions>
                                <AidSsp>
                                    <aid>3627</aid>
                                    <ssp>
                                        <opaque>84 00 01</opaque>
                                    </ssp>
                                </AidSsp>
                                <AidSsp>
                                    <aid>3628</aid>
                                    <ssp>
                                        <opaque>00 01 00 01 01 00 00</opaque>
                                    </ssp>
                                </AidSsp>
                            </appPermissions>
                            <certIssuePermissions>
                                <AidGroupPermissions>
                                    <subjectPermissions>
                                        <explicit>
                                            <AidSspRange>
                                                <aid>3627</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>3628</aid>
                                            </AidSspRange>
                                            <AidSspRange>
                                                <aid>3629</aid>
                                            </AidSspRange>
                                        </explicit>
                                    </subjectPermissions>
                                    <minChainLength>2</minChainLength>
                                    <chainLengthRange>0</chainLengthRange>
                                    <eeType>
                                        01000000
                                    </eeType>
                                </AidGroupPermissions>
                            </certIssuePermissions>
                            <encryptionKey>
                                <supportedSymmAlg>
                                    <sm4Ccm/>
                                </supportedSymmAlg>
                                <publicKey>
                                    <ecencSm2>
                                        <compressed-y-0>
                                            95 62 51 C1 23 14 C5 60 C2 F6 0C 25 21 86 64 72 
                                            A6 91 F7 BD 40 B3 2B C4 64 DA 1B 45 3B D0 74 4D
                                        </compressed-y-0>
                                    </ecencSm2>
                                </publicKey>
                            </encryptionKey>
                            <verifyKeyIndicator>
                                <verificationKey>
                                    <ecsigSm2>
                                        <compressed-y-1>
                                            2A A8 83 46 7D 24 77 39 5C 09 AD 5F 20 D4 9B 7B 
                                            E1 B9 F3 49 2D 22 AA 9B 3F 80 F1 58 6E 17 E3 65
                                        </compressed-y-1>
                                    </ecsigSm2>
                                </verificationKey>
                            </verifyKeyIndicator>
                        </toBeSigned>
                        <signature>
                            <sm2Signature>
                                <rSig>
                                    19 4F B3 25 1B 0D AB 01 F4 8B BF 99 03 F1 8C F4 
                                    97 E2 57 07 7F 8F 2F 28 D0 58 CA 92 AE 5A 4A 0C
                                </rSig>
                                <sSig>
                                    0E 39 24 88 69 09 34 95 C6 E6 A2 9A F0 ED 7C 7C 
                                    D5 42 59 81 49 E4 48 F4 02 F1 0F 87 EB 07 6E FE
                                </sSig>
                            </sm2Signature>
                        </signature>
                    </Certificate>
                </certificate>
                <crlUrl/>
                <maUrl/>
            </PkiCertInfo>
        </pkiCertInfoList>
    </toBeSignedPkiCtl>
    <signature>
        <sm2Signature>
            <rSig>
                31 51 BE 75 DA 09 DF 23 49 39 82 F0 5F 9F 8C 40 
                10 DA 59 2C FA DB 37 CA AA CE EB 45 71 D7 66 47
            </rSig>
            <sSig>
                88 85 4C 6B 23 49 8C FB C0 EA E5 6C 00 BE 35 3E 
                2E 2B 3B 42 47 6E ED CF 74 07 8C D7 A1 56 26 F6
            </sSig>
        </sm2Signature>
    </signature>
</PkiCtl>

根据XML内容,初步解读,该TDCL包含二条证书链rca->ica->pca以及rca->ica->eca,共以下三种证书:
<name>ica.v2xca.catarc.info</name>
<name>pca.v2xca.catarc.info</name>
<name>eca.v2xca.catarc.info</name>
将证书解析出来
四个证书xml如下
ica.v2xca.catarc.info

<Certificate>
    <version>3</version>
    <type><explicit/></type>
    <issuer>
        <sm3AndDigest>0B 89 CB 67 A9 3C A5 8C</sm3AndDigest>
    </issuer>
    <toBeSigned>
        <id>
            <name>ica.v2xca.catarc.info</name>
        </id>
        <cracaId>00 00 00</cracaId>
        <crlSeries>0</crlSeries>
        <validityPeriod>
            <start>528004260</start>
            <duration>
                <years>25</years>
            </duration>
        </validityPeriod>
        <region>
            <identifiedRegion>
                    <countryOnly>156</countryOnly>
                
            </identifiedRegion>
        </region>
        <assuranceLevel>03</assuranceLevel>
        <appPermissions>
            <AidSsp>
                <aid>3627</aid>
                <ssp>
                    <opaque>83 00 01</opaque>
                </ssp>
            </AidSsp>
            <AidSsp>
                <aid>3628</aid>
                <ssp>
                    <opaque>00 01 00 01 01 00 00</opaque>
                </ssp>
            </AidSsp>
        </appPermissions>
        <certIssuePermissions>
            <AidGroupPermissions>
                <subjectPermissions>
                    <explicit>
                        <AidSspRange>
                            <aid>3627</aid>
                        </AidSspRange>
                        <AidSspRange>
                            <aid>3628</aid>
                        </AidSspRange>
                        <AidSspRange>
                            <aid>3629</aid>
                        </AidSspRange>
                    </explicit>
                </subjectPermissions>
                <minChainLength>2</minChainLength>
                <chainLengthRange>0</chainLengthRange>
                <eeType>
                    11000000
                </eeType>
            </AidGroupPermissions>
        </certIssuePermissions>
        <encryptionKey>
            <supportedSymmAlg><sm4Ccm/></supportedSymmAlg>
            <publicKey>
                <ecencSm2>
                    <compressed-y-1>
                        70 38 4F D8 04 10 15 A0 5F FD 5B 99 AA 67 6A DB 
                        EE 61 CB 77 B1 C0 D2 52 09 3C 87 35 BF 46 63 E6
                    </compressed-y-1>
                </ecencSm2>
            </publicKey>
        </encryptionKey>
        <verifyKeyIndicator>
            <verificationKey>
                <ecsigSm2>
                    <compressed-y-1>
                        9F DA 6D 5B A8 A6 5E D7 C7 F4 CA 4C F1 EA 54 51 
                        78 11 BF 18 FB 58 B0 0E BC DE B7 81 09 27 DD 62
                    </compressed-y-1>
                </ecsigSm2>
            </verificationKey>
        </verifyKeyIndicator>
    </toBeSigned>
    <signature>
        <sm2Signature>
            <rSig>
                EA 0B 6F E7 34 EE C5 4B 47 6D 4B 46 0A 68 F1 0A 
                27 6F 7B 0B F9 5B 8C D2 14 97 BC 6F B0 25 C9 1C
            </rSig>
            <sSig>
                36 3A 59 54 8C 42 3B B6 88 22 0C B8 2C 05 F4 76 
                E2 C2 05 17 8C C1 82 E9 94 D5 F4 77 62 58 60 0B
            </sSig>
        </sm2Signature>
    </signature>
</Certificate>

可以看到证书的签发者为:0B 89 CB 67 A9 3C A5 8C,这个是根证书的hashid8,可以知道这个ica是rca签发的。我们计算一下ica证书的hashid值
81 aa 4d 94 ed 82 73 ef 46 ca eb 9d 3e c6 92 ed 75 06 d0 16 50 ed b7 9f 56 e9 52 03 b2 14 99 38
接下来第二个证书 pca.v2xca.catarc.info

<Certificate>
    <version>3</version>
    <type><explicit/></type>
    <issuer>
        <sm3AndDigest>56 E9 52 03 B2 14 99 38</sm3AndDigest>
    </issuer>
    <toBeSigned>
        <id>
            <name>pca.v2xca.catarc.info</name>
        </id>
        <cracaId>00 00 00</cracaId>
        <crlSeries>0</crlSeries>
        <validityPeriod>
            <start>528016331</start>
            <duration>
                <years>20</years>
            </duration>
        </validityPeriod>
        <region>
            <identifiedRegion>
                    <countryOnly>156</countryOnly>
                
            </identifiedRegion>
        </region>
        <assuranceLevel>03</assuranceLevel>
        <appPermissions>
            <AidSsp>
                <aid>3627</aid>
                <ssp>
                    <opaque>87 00 01</opaque>
                </ssp>
            </AidSsp>
            <AidSsp>
                <aid>3628</aid>
                <ssp>
                    <opaque>00 01 00 01 01 00 00</opaque>
                </ssp>
            </AidSsp>
        </appPermissions>
        <certIssuePermissions>
            <AidGroupPermissions>
                <subjectPermissions>
                    <explicit>
                        <AidSspRange>
                            <aid>111</aid>
                        </AidSspRange>
                        <AidSspRange>
                            <aid>112</aid>
                        </AidSspRange>
                        <AidSspRange>
                            <aid>113</aid>
                        </AidSspRange>
                        <AidSspRange>
                            <aid>114</aid>
                        </AidSspRange>
                        <AidSspRange>
                            <aid>3624</aid>
                        </AidSspRange>
                        <AidSspRange>
                            <aid>3627</aid>
                        </AidSspRange>
                        <AidSspRange>
                            <aid>3628</aid>
                        </AidSspRange>
                        <AidSspRange>
                            <aid>3629</aid>
                        </AidSspRange>
                    </explicit>
                </subjectPermissions>
                <minChainLength>2</minChainLength>
                <chainLengthRange>0</chainLengthRange>
            </AidGroupPermissions>
        </certIssuePermissions>
        <encryptionKey>
            <supportedSymmAlg><sm4Ccm/></supportedSymmAlg>
            <publicKey>
                <ecencSm2>
                    <compressed-y-0>
                        20 27 49 AD 5D 8E A3 3F A8 51 7E 78 76 0F 0B F5 
                        0A CD FA D6 40 57 1B 0E AD F8 90 88 0D E8 6E FC
                    </compressed-y-0>
                </ecencSm2>
            </publicKey>
        </encryptionKey>
        <verifyKeyIndicator>
            <verificationKey>
                <ecsigSm2>
                    <compressed-y-1>
                        0A 04 A2 9A 9F DB 55 81 67 CB 0C A3 63 BD C7 D9 
                        18 A5 D6 5A 29 B5 84 66 70 EE F3 42 7D BC 44 2C
                    </compressed-y-1>
                </ecsigSm2>
            </verificationKey>
        </verifyKeyIndicator>
    </toBeSigned>
    <signature>
        <sm2Signature>
            <rSig>
                1D AE 8A 7C 94 FA 69 25 13 FE 66 EC 36 6C 9C F5 
                8D 7F 74 34 24 4F 48 6C F2 05 17 7E A0 87 7B 56
            </rSig>
            <sSig>
                C5 1C A6 56 20 11 A4 7A 42 9B 81 CB 51 F7 1A F8 
                AB 04 4B BE E1 FD 72 22 02 63 93 C1 26 1C 23 3E
            </sSig>
        </sm2Signature>
    </signature>
</Certificate>

计算pca的hashid为 a2 2b ad 7b 3b 6d 56 65 a6 4f ab 01 b4 69 85 68 24 ef 55 09 70 21 68 c1 aa 87 40 65 7b 89 17 3b

第三个证书 eca.v2xca.catarc.info

<Certificate>
    <version>3</version>
    <type><explicit/></type>
    <issuer>
        <sm3AndDigest>56 E9 52 03 B2 14 99 38</sm3AndDigest>
    </issuer>
    <toBeSigned>
        <id>
            <name>eca.v2xca.catarc.info</name>
        </id>
        <cracaId>00 00 00</cracaId>
        <crlSeries>0</crlSeries>
        <validityPeriod>
            <start>528013882</start>
            <duration>
                <years>20</years>
            </duration>
        </validityPeriod>
        <region>
            <identifiedRegion>
                    <countryOnly>156</countryOnly>
                
            </identifiedRegion>
        </region>
        <assuranceLevel>03</assuranceLevel>
        <appPermissions>
            <AidSsp>
                <aid>3627</aid>
                <ssp>
                    <opaque>84 00 01</opaque>
                </ssp>
            </AidSsp>
            <AidSsp>
                <aid>3628</aid>
                <ssp>
                    <opaque>00 01 00 01 01 00 00</opaque>
                </ssp>
            </AidSsp>
        </appPermissions>
        <certIssuePermissions>
            <AidGroupPermissions>
                <subjectPermissions>
                    <explicit>
                        <AidSspRange>
                            <aid>3627</aid>
                        </AidSspRange>
                        <AidSspRange>
                            <aid>3628</aid>
                        </AidSspRange>
                        <AidSspRange>
                            <aid>3629</aid>
                        </AidSspRange>
                    </explicit>
                </subjectPermissions>
                <minChainLength>2</minChainLength>
                <chainLengthRange>0</chainLengthRange>
                <eeType>
                    01000000
                </eeType>
            </AidGroupPermissions>
        </certIssuePermissions>
        <encryptionKey>
            <supportedSymmAlg><sm4Ccm/></supportedSymmAlg>
            <publicKey>
                <ecencSm2>
                    <compressed-y-0>
                        95 62 51 C1 23 14 C5 60 C2 F6 0C 25 21 86 64 72 
                        A6 91 F7 BD 40 B3 2B C4 64 DA 1B 45 3B D0 74 4D
                    </compressed-y-0>
                </ecencSm2>
            </publicKey>
        </encryptionKey>
        <verifyKeyIndicator>
            <verificationKey>
                <ecsigSm2>
                    <compressed-y-1>
                        2A A8 83 46 7D 24 77 39 5C 09 AD 5F 20 D4 9B 7B 
                        E1 B9 F3 49 2D 22 AA 9B 3F 80 F1 58 6E 17 E3 65
                    </compressed-y-1>
                </ecsigSm2>
            </verificationKey>
        </verifyKeyIndicator>
    </toBeSigned>
    <signature>
        <sm2Signature>
            <rSig>
                19 4F B3 25 1B 0D AB 01 F4 8B BF 99 03 F1 8C F4 
                97 E2 57 07 7F 8F 2F 28 D0 58 CA 92 AE 5A 4A 0C
            </rSig>
            <sSig>
                0E 39 24 88 69 09 34 95 C6 E6 A2 9A F0 ED 7C 7C 
                D5 42 59 81 49 E4 48 F4 02 F1 0F 87 EB 07 6E FE
            </sSig>
        </sm2Signature>
    </signature>
</Certificate>

SM3 hashid = 48 56 0b 75 07 ec 6a 4d 7a 3d c9 fb cd 28 23 c9 32 8d a4 35 7c f8 e9 d4 9e ff 0c c5 da 67 90 64

catarc的证书链如下所示

rca
    └── ica
        ├── eca
        └── pca 

通过分析,我们得到一条完整的证书链信息,当接收到OBU使用PC签发的安全信息时,可以使用上面的PCA证书进行验证。

将所有证书汇总,我们得到下面四个证书

├── catarc_eca.oer
├── catarc_ica.oer
├── catarc_pca.oer
├── catarc_rca.oer

其他的tdcl.oer文件,都是类似原理,只是各个CA厂商实现的证书体系可能不同。
26DEEC8EEB3F5FFB.tdcl 是一个混合了多个厂家的列表,这应该只是一个混乱过程阶段的产物。看各家的CA实现,看他们签发者与命名就可以了。
解析如下:

PkiCertInfo count = 7
PkiCertInfo 0:
Certificate 0.0:
name = eca.datang.v2x.xdja.com
issuer = de c7 78 b2 09 56 03 03 
0.0.hash = b7 a9 5d bb f4 22 76 86 5e 6b 32 e9 f8 05 6b bd 34 c7 1f c0 b5 69 3a 9f 7d 62 d8 f4 9a 68 b9 e4 
Certificate 0.1:
name = ica.datang.v2x.xdja.com
issuer = 26 de ec 8e eb 3f 5f fb 
0.1.hash = c8 36 41 8d c1 9b 24 58 23 ff 3c f8 62 26 9a 3b c7 00 58 fa dd b8 eb dd de c7 78 b2 09 56 03 03 
Certificate 0.2:
name = pca.datang.v2x.xdja.com
issuer = de c7 78 b2 09 56 03 03 
0.2.hash = d4 23 87 82 92 68 c6 a2 88 fc ba 7d c0 f0 72 47 0a f9 eb a3 68 20 e1 63 4b fa 0e 90 c0 30 51 79 
Certificate 0.3:
name = pra.datang.v2x.xdja.com
issuer = de c7 78 b2 09 56 03 03 
0.3.hash = d5 5d 8d e2 05 28 fe b0 5c 2f ac 4d a0 40 2f 14 b6 f2 8d 5c 29 49 c5 df 0d 7e 9f 69 04 0c 47 fa 
PkiCertInfo 1:
Certificate 1.0:
name = www.aca.infosec.com.cn
issuer = 24 b0 a5 e9 d0 b7 6a 85 
1.0.hash = 42 28 2d a1 0d 8b 05 5d 4f 12 c3 ef 1f 2c 88 9d a8 44 57 ce 62 bb 1f 6e ba 22 27 9d a4 f9 b0 a8 
Certificate 1.1:
name = www.eca.infosec.com.cn
issuer = 24 b0 a5 e9 d0 b7 6a 85 
1.1.hash = 20 b6 3f 80 30 3a cc ed d8 4d 5f 4a 2a 69 7d da 55 49 62 f0 33 49 a2 e3 af 7d ce 55 a4 78 b2 23 
Certificate 1.2:
name = www.ica.infosec.com.cn
issuer = 26 de ec 8e eb 3f 5f fb 
1.2.hash = 3f 4a 40 bb 0c 1f 6d ff f4 78 2a 14 ad 71 d1 8b b4 5b b5 c5 be e0 99 7e 24 b0 a5 e9 d0 b7 6a 85 
Certificate 1.3:
name = www.pca.infosec.com.cn
issuer = 24 b0 a5 e9 d0 b7 6a 85 
1.3.hash = 37 a4 bf c5 36 3b 08 b3 fa c9 0d 7e 26 a2 74 39 02 e6 40 06 41 e0 e5 6a 36 c3 04 21 b7 35 35 6a 
Certificate 1.4:
name = www.pra.infosec.com.cn
issuer = 24 b0 a5 e9 d0 b7 6a 85 
1.4.hash = 7d e4 b0 5d ba f9 60 ce e8 44 01 05 f9 e2 26 ef a3 bd 91 58 ee db 38 28 b4 63 0c 73 28 12 87 0b 
PkiCertInfo 2:
Certificate 2.0:
name = aca.i-wall.cn
issuer = ca a9 ea 81 eb 77 b7 b1 
2.0.hash = 30 94 18 88 fe e4 38 eb 7b da 85 f4 11 7f 1b c4 8e 27 61 b4 0d 82 9f b6 97 31 54 2c 33 de 2a 6a 
Certificate 2.1:
name = ara.i-wall.cn
issuer = ca a9 ea 81 eb 77 b7 b1 
2.1.hash = a9 bd 17 f1 a0 2e 8b 4a 0e 76 46 cd 93 28 ce 4a 5f d1 49 07 bc 1e 36 ec 0b 7d 62 48 49 c1 3d 2e 
Certificate 2.2:
name = eca.i-wall.cn
issuer = ca a9 ea 81 eb 77 b7 b1 
2.2.hash = 28 93 98 d5 5a 36 ba 5a f8 96 23 53 5f 0c 0c b3 7c 1e 74 ae 44 6f b0 06 e5 c3 e3 6f 0c e5 a3 58 
Certificate 2.3:
name = www.i-wall.cn
issuer = 26 de ec 8e eb 3f 5f fb 
2.3.hash = a2 c1 7e 1d c5 8c 20 fa 86 0f 1f b3 28 f7 63 f8 6f 58 01 55 3b 90 7b 4e ca a9 ea 81 eb 77 b7 b1 
Certificate 2.4:
name = pca.i-wall.cn
issuer = ca a9 ea 81 eb 77 b7 b1 
2.4.hash = 5d 73 ef 63 d7 96 37 38 88 c7 89 51 57 42 36 81 ff c4 a2 cb 3d 24 28 89 f9 e2 39 40 ef 99 53 3f 
Certificate 2.5:
name = pra.i-wall.cn
issuer = ca a9 ea 81 eb 77 b7 b1 
2.5.hash = 95 29 d0 d4 d3 25 4e 60 60 cb a8 65 5a 0b 62 4c 2f 16 b0 b3 2b 68 42 89 2e b9 0c 52 ad 4d 0a 80 
PkiCertInfo 3:
Certificate 3.0:
name = rootca.datangmobile.cn
issuer = self
3.0.hash = f2 55 82 a5 5a a2 51 b1 a4 01 0c 38 7b e5 13 15 14 0e bb df 27 97 e7 0d 26 de ec 8e eb 3f 5f fb 
Certificate 3.1:
name = 
issuer = self
3.1.hash = 9e 6d c6 9a 3b 58 f7 70 a6 6d b6 0f 9f 70 f6 a0 81 58 b8 f6 9f 7a ae 58 fc 41 a6 19 66 e0 29 fb 
Certificate 3.2:
name = www.westone.cn.eca
issuer = 26 de ec 8e eb 3f 5f fb 
3.2.hash = 02 d6 cc f6 c7 2a 31 98 cb 78 fe ed 2c e8 47 8c 5e 78 8c 4a 7a 31 52 a6 c9 69 ea 6b f9 a1 0f bf 
Certificate 3.3:
name = www.westone.cn.pca
issuer = 26 de ec 8e eb 3f 5f fb 
3.3.hash = a2 01 ee 7b f5 0c 25 b5 67 3d 62 61 0d 45 d7 43 96 25 08 fb 12 03 1e 75 8f a8 be ff 25 12 be d7 
PkiCertInfo 4:
Certificate 4.0:
name = aca.datangmobile.cn
issuer = 26 de ec 8e eb 3f 5f fb 
4.0.hash = 63 11 20 c3 93 78 dc 64 bd 63 0d 1c a7 b5 67 21 00 7d c8 30 1c e2 c0 22 cb 8d 4c 01 ed a5 bc 7e 
Certificate 4.1:
name = eca.datangmobile.cn
issuer = 26 de ec 8e eb 3f 5f fb 
4.1.hash = 2b 82 17 11 63 40 62 98 89 90 bd bd e7 35 43 fb 47 43 91 d7 f0 d0 4f a7 82 7f ac e3 c1 b2 33 ab 
Certificate 4.2:
name = pca.datangmobile.cn
issuer = 26 de ec 8e eb 3f 5f fb 
4.2.hash = 67 15 f3 0a ae 19 86 01 d3 03 45 c0 6c b2 a1 ff 0c a9 6b c1 fe f6 4c 8d 6e 7a 54 68 41 df 5e 3d 
Certificate 4.3:
name = pra.datangmobile.cn
issuer = 26 de ec 8e eb 3f 5f fb 
4.3.hash = 90 00 0b 55 a4 52 b0 ff db 55 7d 91 11 c7 50 52 af 25 10 71 dd 8f b0 c2 07 18 a6 19 3e 44 7d 69 
Certificate 4.4:
name = rootca.datangmobile.cn
issuer = self
4.4.hash = f2 55 82 a5 5a a2 51 b1 a4 01 0c 38 7b e5 13 15 14 0e bb df 27 97 e7 0d 26 de ec 8e eb 3f 5f fb 
PkiCertInfo 5:
Certificate 5.0:
name = www.aca.koal.com
issuer = 51 43 61 94 1f 12 11 ae 
5.0.hash = 03 06 d1 62 4c 9e 5c a7 9a 13 96 cf b0 98 63 1d 95 7d 5a 50 d6 d5 36 cf 60 7f 9c 10 9a 5a 77 8a 
Certificate 5.1:
name = www.cra.koal.com
issuer = 51 43 61 94 1f 12 11 ae 
5.1.hash = d4 50 66 60 3c a2 52 a7 50 46 d6 50 7d 03 25 f3 f0 a7 8f 9a 19 b9 a5 18 e8 5c 6d e4 47 80 cc fe 
Certificate 5.2:
name = www.eca.koal.com
issuer = 51 43 61 94 1f 12 11 ae 
5.2.hash = 4c 05 f8 36 ee bc 57 42 be 95 5d d8 55 8d 89 f9 20 5b c4 19 48 e0 11 b3 e4 5d 1d 4f 47 82 7b 4d 
Certificate 5.3:
name = www.ica.koal.com
issuer = 26 de ec 8e eb 3f 5f fb 
5.3.hash = a9 90 a3 46 21 ac e7 da 9a 44 32 63 e8 70 e7 bc bf c8 d2 b7 d4 38 76 47 51 43 61 94 1f 12 11 ae 
Certificate 5.4:
name = www.la.koal.com
issuer = 51 43 61 94 1f 12 11 ae 
5.4.hash = b4 84 fa 25 8b 6c 94 7b bc f8 18 ff c5 e8 3d 53 0a 01 10 55 ba d9 46 7d 9e 09 05 fb d7 c8 22 c3 
Certificate 5.5:
name = www.ma.koal.com
issuer = 51 43 61 94 1f 12 11 ae 
5.5.hash = 5b f0 e0 27 36 d6 f2 72 5f cd 83 af 73 ed 15 8b 39 61 3a 4f 4d c7 3e 83 cf 26 b9 96 ad 5c 61 48 
Certificate 5.6:
name = www.pca.koal.com
issuer = 51 43 61 94 1f 12 11 ae 
5.6.hash = 81 97 95 f1 7c b7 04 a1 78 11 8e 8d 8b 26 7b 4b 19 a2 af 93 44 e9 62 04 25 18 fa 6f 5f 48 2d 03 
Certificate 5.7:
name = www.pg.koal.com
issuer = 51 43 61 94 1f 12 11 ae 
5.7.hash = a4 ff e0 5c 4d 9c 01 8a 7b 12 8d 30 c4 e2 22 52 5c 77 17 a9 df ec 90 d5 f2 cf b7 38 7a 59 c6 72 
Certificate 5.8:
name = www.ra.koal.com
issuer = 51 43 61 94 1f 12 11 ae 
5.8.hash = 6f 74 63 9a 3b b8 92 df 22 ff a0 9b 5a e3 1e 21 c6 4a 41 be 34 dc a4 e4 79 8a 45 51 9f db 33 91 
PkiCertInfo 6:
Certificate 6.0:
name = eca.ccit.com.cn
issuer = 26 de ec 8e eb 3f 5f fb 
6.0.hash = 84 1c 7a d9 57 54 ee 7d 04 24 35 9c 44 de 0f 78 43 74 26 0e 7e 17 b4 f4 62 0e cc f0 59 de f6 93 
Certificate 6.1:
name = pca.ccit.com.cn
issuer = 26 de ec 8e eb 3f 5f fb 
6.1.hash = 30 6f ed 21 8a e2 5d 67 50 44 60 50 19 39 c5 b6 60 49 98 54 df d9 0b c6 91 07 a8 79 0b a3 33 7f 
Certificate 6.2:
name = rootca.datangmobile.cn
issuer = self
6.2.hash = f2 55 82 a5 5a a2 51 b1 a4 01 0c 38 7b e5 13 15 14 0e bb df 27 97 e7 0d 26 de ec 8e eb 3f 5f fb 

566BED42325C48A7.tdcl
这是两家CA,基于同一个根证书的实现,二家看名字是jsits[江苏智能交通及智能驾驶研究院]与itsac[国家ITS中心智能驾驶及智能交通产业研究院]
PkiCertInfo count = 2
PkiCertInfo 0:
Certificate 0.0:
name = ica.v2x.jsits.org.cn
issuer = 56 6b ed 42 32 5c 48 a7
0.0.hash = 9c c8 2d b8 2e 90 56 a3 c4 a7 9b 9e fb 77 28 2f db bd a8 37 6f 8e 04 47 a4 66 29 9a bf 62 08 a8
Certificate 0.1:
name = eca.v2x.jsits.org.cn
issuer = a4 66 29 9a bf 62 08 a8
0.1.hash = c2 78 58 3f e9 7c 59 fc fb 27 57 ed 0d 0f a3 b8 98 de 19 85 47 16 06 1e 76 de da fe b6 28 d5 7f
Certificate 0.2:
name = aca.v2x.jsits.org.cn
issuer = a4 66 29 9a bf 62 08 a8
0.2.hash = 59 a4 92 29 93 14 52 15 e5 95 a3 0a 63 4a a6 ed b8 dc e8 73 0a b1 05 53 42 cf 2f b2 84 b1 5d cf
Certificate 0.3:
name = pca.v2x.jsits.org.cn
issuer = a4 66 29 9a bf 62 08 a8
0.3.hash = 6f a7 52 d9 0b 93 a3 46 53 dd c1 46 6d e4 1d 17 e8 b8 3d 5d 35 64 0b 59 e0 a2 2a d1 ce f1 7e ed
Certificate 0.4:
name = la.v2x.jsits.org.cn
issuer = a4 66 29 9a bf 62 08 a8
0.4.hash = 7c 54 92 35 72 1b 47 7f 36 f3 4f 0a 30 68 49 84 88 75 af 44 0f ad 96 15 1e 41 4e de a5 89 0d b1
Certificate 0.5:
name = pra.v2x.jsits.org.cn
issuer = a4 66 29 9a bf 62 08 a8
0.5.hash = ff 37 4a 85 2f 72 51 98 c8 f9 b0 fd 8b b7 e4 e8 4c a9 fa 41 88 85 f1 ce ad 74 77 7d 8a b5 bf 3d
Certificate 0.6:
name = ma.v2x.jsits.org.cn
issuer = 56 6b ed 42 32 5c 48 a7
0.6.hash = ff 00 a7 e0 b1 8d d9 3e 74 68 02 1a 24 7c de 41 66 ef 45 ca a3 6d 62 82 ef 71 ed 52 0b 6a c8 c6
PkiCertInfo 1:
Certificate 1.0:
name = ica.v2x.itsac.cn
issuer = 56 6b ed 42 32 5c 48 a7
1.0.hash = 51 29 0d 33 f6 b1 19 a6 96 0a 98 92 56 fa f3 e9 4f 12 2d 5f 6c a3 80 16 d7 20 85 5f c0 e8 0e ca
Certificate 1.1:
name = eca.v2x.itsac.cn
issuer = d7 20 85 5f c0 e8 0e ca
1.1.hash = 3b 3d c5 41 02 18 05 da 27 1d 45 59 34 2d e2 c3 49 a3 1f bf ed d1 32 44 92 b8 f2 c5 f3 e9 1d 52
Certificate 1.2:
name = aca.v2x.itsac.cn
issuer = d7 20 85 5f c0 e8 0e ca
1.2.hash = 2c 3a cc 45 d1 0d 0c c8 a6 62 e4 b2 5a 4f 35 63 c0 01 f3 4b fe 2f 20 38 59 7b 29 e4 b8 96 d6 4e
Certificate 1.3:
name = ara.v2x.itsac.cn
issuer = d7 20 85 5f c0 e8 0e ca
1.3.hash = a7 8f e7 85 dd 9a 31 74 a8 cc f9 9c e0 7e 64 34 69 36 47 29 9f a5 7e 0c 46 01 f4 3a 20 8c a6 ba
Certificate 1.4:
name = pca.v2x.itsac.cn
issuer = d7 20 85 5f c0 e8 0e ca
1.4.hash = bb fd 78 bb 0b 35 14 30 19 fc f9 5c d4 41 97 7a cf dc 60 df 81 fa 16 e9 06 6d 16 b0 19 a1 b0 b6
Certificate 1.5:
name = pra.v2x.itsac.cn
issuer = d7 20 85 5f c0 e8 0e ca
1.5.hash = 68 c4 95 e1 e8 7a 0b 9e 5d 1f bc 96 4f 2a e6 f4 50 88 9c 41 4a d8 54 b2 63 37 16 63 22 b3 65 f3
Certificate 1.6:
name = cra.v2x.itsac.cn
issuer = d7 20 85 5f c0 e8 0e ca
1.6.hash = f2 45 8b 28 6e b3 72 26 19 ed f4 33 31 87 66 37 f6 65 c1 a2 b1 1f c5 ca 9d b6 50 14 2a 23 d8 44

468280669CA1F54E.tdcl
这个里面内容就更多了,有15条证书链信息,15个CA厂家证书数据

PkiCertInfo count = 15
PkiCertInfo 0:
Certificate 0.0:
name = rootca.china-icv.cn
issuer = self
0.0.hash = 80 0a 70 9a fa bf 11 bb 27 36 7c b5 a4 eb 4d 5f 7c 7f dd 89 79 7b 50 f5 46 82 80 66 9c a1 f5 4e 
Certificate 0.1:
name = ica.china-icv.cn
issuer = 46 82 80 66 9c a1 f5 4e 
0.1.hash = 9b 4d 2b 4d 3f 5f 53 88 90 47 27 25 bd 0c b0 e8 81 00 5a 4c 72 88 45 b8 fc 79 ba c7 de d6 fa 02 
Certificate 0.2:
name = eca.china-icv.cn
issuer = fc 79 ba c7 de d6 fa 02 
0.2.hash = 17 17 48 bd b8 bb a7 9f 7c 79 f1 15 68 78 90 11 26 0c 6a 78 3c f4 92 aa a3 51 da 7c 1d 40 43 54 
Certificate 0.3:
name = pca.china-icv.cn
issuer = fc 79 ba c7 de d6 fa 02 
0.3.hash = c2 2c 43 f3 2d 3e 04 76 15 46 f7 64 c8 5a 52 df 85 c9 ab 36 c3 c0 9b a9 17 cf c7 61 ec 98 ce 44 
Certificate 0.4:
name = pra.china-icv.cn
issuer = fc 79 ba c7 de d6 fa 02 
0.4.hash = 89 d1 de e5 15 b7 57 16 8e 0a 31 47 d1 e1 fd e9 b6 5b 41 9c 52 00 bd b9 1d 8f a6 2e a0 d3 f7 12 
Certificate 0.5:
name = aca.china-icv.cn
issuer = fc 79 ba c7 de d6 fa 02 
0.5.hash = 01 0b d1 d9 58 0e c8 f1 f4 d3 88 7f 2e 06 08 cc d7 cb a1 58 25 47 8b 2b 29 d5 a2 27 be d3 40 5c 
Certificate 0.6:
name = ara.china-icv.cn
issuer = fc 79 ba c7 de d6 fa 02 
0.6.hash = 91 32 ce 17 02 b7 6f da f2 ee c8 e5 78 b2 16 ee 30 c7 57 0e aa ad e7 00 6a f6 e5 8a 5e ac 5f 2c 
PkiCertInfo 1:
Certificate 1.0:
name = ica.v2x.batc.cn
issuer = 46 82 80 66 9c a1 f5 4e 
1.0.hash = 98 5f 91 7e 52 07 b5 54 04 5f 43 38 97 58 e1 0f 84 05 e7 45 3b 8b 63 39 8e fe 13 31 81 af fb 86 
Certificate 1.1:
name = eca.v2x.batc.cn
issuer = 8e fe 13 31 81 af fb 86 
1.1.hash = e2 01 3f 30 61 63 b9 da 73 96 c3 de 8e 09 87 ab 51 e9 b3 88 73 e3 78 c6 35 06 55 3b b2 4e 0e 3e 
Certificate 1.2:
name = pca.v2x.batc.cn
issuer = 8e fe 13 31 81 af fb 86 
1.2.hash = ca 4b 0d e3 99 9e 25 d6 72 16 ff e8 cb af 28 95 28 d3 36 90 b7 34 0b 19 a8 ab 03 27 57 13 8b f1 
PkiCertInfo 2:
Certificate 2.0:
name = ica.v2x.xdja.cn
issuer = 46 82 80 66 9c a1 f5 4e 
2.0.hash = 6c 86 52 e9 78 46 11 0e 54 87 c0 25 80 f8 f5 0c ae 9d 8c 0c a6 2a 4f c6 bb 27 7d 3c 2b 4e bb ba 
Certificate 2.1:
name = eca.v2x.xdja.cn
issuer = bb 27 7d 3c 2b 4e bb ba 
2.1.hash = 8e ce f7 94 88 af a6 e6 8e c2 71 c7 93 27 93 fc e6 08 60 53 25 84 2a 6e 99 b7 a8 37 22 13 96 f0 
Certificate 2.2:
name = pca.v2x.xdja.cn
issuer = bb 27 7d 3c 2b 4e bb ba 
2.2.hash = a3 a6 70 92 94 82 47 1b fd fb 78 8e c3 d6 16 0c 6f fc 18 c2 ff 92 49 7c f9 bb c9 c5 90 83 c9 6e 
Certificate 2.3:
name = pra.v2x.xdja.cn
issuer = bb 27 7d 3c 2b 4e bb ba 
2.3.hash = f8 3d 27 b8 50 f9 f0 6d 0e c2 46 4d 5a 4a ea 4a e9 d2 98 94 75 4b b0 aa 69 3e d1 14 47 7e 9f 5f 
Certificate 2.4:
name = aca.v2x.xdja.cn
issuer = bb 27 7d 3c 2b 4e bb ba 
2.4.hash = e9 97 81 50 e7 cc 2a ba e2 55 ed 33 83 e9 1a cf 11 e6 8f 90 5d cf 1a e1 12 62 7f ac 04 d4 04 23 
PkiCertInfo 3:
Certificate 3.0:
name = ica.bjca.org.cn
issuer = 46 82 80 66 9c a1 f5 4e 
3.0.hash = 4c 9e cf 7c f5 92 93 8f 23 6a de 7b 26 3a cc 73 c6 86 45 bd 27 85 bb 5b 63 25 45 bb 00 be 6d aa 
Certificate 3.1:
name = eca.bjca.org.cn
issuer = 63 25 45 bb 00 be 6d aa 
3.1.hash = 8b af 54 6b 13 48 c1 16 a4 4f 85 d0 cf 5a 14 98 14 6d f8 a6 89 3a 4e 23 1a 8b 6c eb 09 74 37 72 
Certificate 3.2:
name = pca.bjca.org.cn
issuer = 63 25 45 bb 00 be 6d aa 
3.2.hash = e0 15 a4 42 6d 5f c2 44 e3 ba b1 9e 73 49 1a a5 e3 66 c4 88 a7 a6 57 09 8d 6f e3 c2 32 c4 43 08 
Certificate 3.3:
name = ra.bjca.org.cn
issuer = 63 25 45 bb 00 be 6d aa 
3.3.hash = 81 cf 3c de 08 cc d5 0c e6 30 67 c0 ee af 93 bb eb 77 5e c9 43 b1 d7 ce 1f d3 32 49 c5 33 cc 16 
PkiCertInfo 4:
Certificate 4.0:
name = ica.syan.com.cn
issuer = 46 82 80 66 9c a1 f5 4e 
4.0.hash = fe 64 cd ee 5f a5 16 2d be 63 09 4e 74 81 ad 21 28 93 9a 0b 6c 5e 2b d0 c2 18 63 09 cf 1a 16 68 
Certificate 4.1:
name = eca.syan.com.cn
issuer = c2 18 63 09 cf 1a 16 68 
4.1.hash = 5f a9 1f ca fb 40 01 f5 55 f2 73 c4 8d 7f 12 94 20 64 37 32 74 1f 5f 30 9e 56 07 a8 63 c0 3a 13 
Certificate 4.2:
name = pca.syan.com.cn
issuer = c2 18 63 09 cf 1a 16 68 
4.2.hash = f9 5f ed f1 8b cb 75 1b b6 de 23 a9 d6 1b b0 78 25 fc d2 16 a9 cc 64 ca 4d d2 be 1c 3f 09 66 4e 
Certificate 4.3:
name = ra
issuer = c2 18 63 09 cf 1a 16 68 
4.3.hash = bd 3e 10 f4 41 ab 53 56 08 52 c5 06 83 1d 6a f9 67 1b fe 0c 4e a4 d7 95 6b 0c 1b bb 69 00 a4 53 
Certificate 4.4:
name = aca.syan.com.cn
issuer = c2 18 63 09 cf 1a 16 68 
4.4.hash = 03 9e f8 5b 48 87 ce 7e c5 d2 d6 36 70 24 91 9c c9 57 cd d2 7b ad cf 42 3d f0 0f a7 c8 84 4d 5d 
Certificate 4.5:
name = ara
issuer = c2 18 63 09 cf 1a 16 68 
4.5.hash = f5 c0 0e a8 47 cd b6 06 d5 6e 86 2f 7c 97 57 ce 8e f3 4a 77 58 5f 8d 3b c5 c0 9b 20 37 37 81 12 
PkiCertInfo 5:
Certificate 5.0:
name = ica.panqi.tech
issuer = 46 82 80 66 9c a1 f5 4e 
5.0.hash = f6 3f d4 9d c1 db ae bd 79 d8 88 8a 31 ff 4e a9 ab ce 80 e8 65 96 1a 01 30 fc 22 db 5e ad 80 a7 
Certificate 5.1:
name = eca.panqi.tech
issuer = 30 fc 22 db 5e ad 80 a7 
5.1.hash = 16 44 fb 5e 49 e2 00 a3 47 ef a0 a5 3e 97 e8 64 db 9d 18 2e ba de 3c e1 7e d7 2c 6a 2f f4 1c 0c 
Certificate 5.2:
name = pca.panqi.tech
issuer = 30 fc 22 db 5e ad 80 a7 
5.2.hash = 5a 74 39 f1 bb 61 7b 7c 29 b5 4f ff 22 e1 bf 92 4f 8b 82 ac ed 12 cd 90 0f b3 f5 1f c7 97 1c a4 
Certificate 5.3:
name = pra.panqi.tech
issuer = 30 fc 22 db 5e ad 80 a7 
5.3.hash = 84 9e 1b c3 1f da db 66 f8 e3 8f a3 59 bd 3a 3f 25 f3 f8 bb eb 28 90 bc 2b 9b 8a 34 be af 80 ad 
PkiCertInfo 6:
Certificate 6.0:
name = www.ica.saicmotor.com
issuer = 46 82 80 66 9c a1 f5 4e 
6.0.hash = ef 12 6c 13 09 5a e6 70 42 da 15 f0 30 6b 45 b1 d1 5e e2 b8 a4 5c 91 13 61 89 4a d2 f1 a9 87 eb 
Certificate 6.1:
name = www.pca.saicmotor.com
issuer = 61 89 4a d2 f1 a9 87 eb 
6.1.hash = 5f cd aa c3 ac c4 44 db cb 45 b3 df d6 6e d1 3a b8 db cb b9 1a ec 11 81 2e b3 6e 61 34 a3 3a 25 
PkiCertInfo 7:
Certificate 7.0:
name = www.ica.scms.koal.com
issuer = 46 82 80 66 9c a1 f5 4e 
7.0.hash = 96 56 76 cc ee d0 c9 9a ac 80 80 ef 1e 55 c9 d9 1e ac 98 11 7c e2 93 39 0b 65 d0 66 75 40 c4 2f 
Certificate 7.1:
name = www.eca.scms.koal.com
issuer = 0b 65 d0 66 75 40 c4 2f 
7.1.hash = ed 50 d7 18 71 a8 b0 68 3b 6b d5 92 d2 60 ce 10 6a 5f 72 e5 40 c7 60 9e e6 d1 31 6b e9 4b dd d4 
Certificate 7.2:
name = www.pca.scms.koal.com
issuer = 0b 65 d0 66 75 40 c4 2f 
7.2.hash = 93 91 01 18 1d 6f cd a9 55 45 bf a0 a5 55 f4 87 05 39 cf 2e 3e af 94 89 fc fa 29 fc 47 4b f9 1a 
Certificate 7.3:
name = www.ra.scms.koal.com
issuer = 0b 65 d0 66 75 40 c4 2f 
7.3.hash = 87 8a 46 83 a6 c2 4b 7a e5 23 b8 2a b0 b8 6f 9b 59 66 fa 17 81 d5 fa 72 b6 fc ce 65 b0 a0 45 55 
Certificate 7.4:
name = www.aca.scms.koal.com
issuer = 0b 65 d0 66 75 40 c4 2f 
7.4.hash = 28 67 67 68 98 4a 72 e7 e2 7f 7d 61 c9 52 d9 8a 52 0f 0b 79 71 9a a2 4d 70 88 e4 f4 de 97 dc 59 
PkiCertInfo 8:
Certificate 8.0:
name = ica.saic-gm.com
issuer = 46 82 80 66 9c a1 f5 4e 
8.0.hash = b4 85 1f 6b d2 ce 4e 48 4e 8b b8 f2 48 21 ca 37 91 78 18 fc 58 bf a7 1a 61 dd db da c0 ab ef 26 
Certificate 8.1:
name = eca.saic-gm.com
issuer = 61 dd db da c0 ab ef 26 
8.1.hash = bb c7 d6 0d e8 f7 d6 c7 a4 cc 6e 36 a1 aa 1f 14 81 06 f6 5e 59 67 e3 74 74 87 24 83 f3 ee 6a 7c 
Certificate 8.2:
name = pca.saic-gm.com
issuer = 61 dd db da c0 ab ef 26 
8.2.hash = 78 55 5b b3 78 b8 ca 00 ac 11 3a 80 d3 47 ef ee 59 af 36 1c ae af a8 e7 68 5a 03 68 54 da eb 35 
Certificate 8.3:
name = ra.saic-gm.com
issuer = 61 dd db da c0 ab ef 26 
8.3.hash = c9 a4 47 59 37 f6 28 65 6a e6 15 2b 66 04 fa f7 35 94 7c 43 17 b1 05 5c 1d c3 e0 f5 43 cb 04 85 
Certificate 8.4:
name = aca.saic-gm.com
issuer = 61 dd db da c0 ab ef 26 
8.4.hash = 17 79 46 a6 94 41 6e 1b a8 01 ba eb f6 54 90 06 9e eb 8e 7d 3d 82 ed 36 47 c2 cd 54 0c 3d 85 25 
PkiCertInfo 9:
Certificate 9.0:
name = ica.iov.jit.com.cn
issuer = 46 82 80 66 9c a1 f5 4e 
9.0.hash = 0d ff b7 42 2d 47 fa 89 8a d7 b6 ce 0b 2a eb 7c 0e 4f d0 27 35 17 d7 b4 ab 36 71 a4 75 aa d6 28 
Certificate 9.1:
name = eca.jit.com.cn
issuer = ab 36 71 a4 75 aa d6 28 
9.1.hash = 38 74 28 49 ae ad c8 66 ae 6e 8a 8c a6 2c 8b 4e f6 fa 90 c7 a4 1d 11 01 44 59 b1 b3 33 b5 fa 79 
Certificate 9.2:
name = pca.jit.com.cn
issuer = ab 36 71 a4 75 aa d6 28 
9.2.hash = 6c 3b 1a 31 5a 84 63 7e 81 63 45 d9 1b 81 cf 78 fb 5a f2 23 24 e9 05 dc 7b 57 a8 b2 b0 6e 3f e1 
Certificate 9.3:
name = pra.jit.com.cn
issuer = 7b 57 a8 b2 b0 6e 3f e1 
9.3.hash = 53 48 71 2c df c2 88 50 60 3f ac bf 98 43 d5 d0 d2 8a 3a 7c 74 06 fd fb 6c 8e 78 68 a5 cc f4 74 
Certificate 9.4:
name = aca.jit.com.cn
issuer = ab 36 71 a4 75 aa d6 28 
9.4.hash = 9e 57 ec f9 58 5a cc 05 0b 4a 2f d5 04 6f 4e ec 5a 82 ec b0 2b 5c d5 72 7e 63 a3 09 66 9a 9d 3f 
Certificate 9.5:
name = ara.jit.com.cn
issuer = 7e 63 a3 09 66 9a 9d 3f 
9.5.hash = d6 5d 49 10 f2 f7 06 b4 ae d1 48 44 38 77 25 53 b6 cf da 8e a4 ea b5 a1 e8 5d 4a e3 d6 02 80 93 
PkiCertInfo 10:
Certificate 10.0:
name = ica.Apollo.auto
issuer = 46 82 80 66 9c a1 f5 4e 
10.0.hash = a9 06 5e 4c 78 a8 24 5f b3 8c 69 44 af 1e 6c b4 a6 7b 9a b7 2f a1 8d 23 9c 6c 48 d3 e7 00 70 4e 
Certificate 10.1:
name = eca.Apollo.auto
issuer = 9c 6c 48 d3 e7 00 70 4e 
10.1.hash = ff 2e 73 3e 7d f4 e9 75 0a 0e d4 4f 70 dd 2c dc 1d a3 7b 89 48 c6 56 f5 9f cc d5 08 89 d0 17 fb 
Certificate 10.2:
name = pca.Apollo.auto
issuer = 9c 6c 48 d3 e7 00 70 4e 
10.2.hash = a4 19 3e ba 0c 2f 16 ba 5b 44 a1 97 7a f4 fb 2f 66 0c 80 b9 30 60 e7 9f af 4d 7b 65 14 b9 c1 3e 
Certificate 10.3:
name = pra.Apollo.auto
issuer = 9c 6c 48 d3 e7 00 70 4e 
10.3.hash = 31 34 02 a5 bf 66 f1 48 52 fb 60 ce 09 52 74 a1 58 32 39 4b ee 00 0a 4f cb 09 29 32 81 c0 7e eb 
Certificate 10.4:
name = aca.Apollo.auto
issuer = 9c 6c 48 d3 e7 00 70 4e 
10.4.hash = 06 01 51 06 2b cc 64 fd 79 8e 0b d4 15 35 2f 3e a2 d7 e1 4b 05 bd 2b 04 65 a3 13 38 2c 16 12 8d 
Certificate 10.5:
name = ara.Apollo.auto
issuer = 9c 6c 48 d3 e7 00 70 4e 
10.5.hash = 0e e6 5b 90 8c a8 35 13 66 d4 83 24 ed fb 07 99 59 88 2b ea 52 69 c3 ad 67 7b 57 b4 16 50 23 9e 
PkiCertInfo 11:
Certificate 11.0:
name = ica.itrus.com.cn
issuer = 46 82 80 66 9c a1 f5 4e 
11.0.hash = 50 fe 89 a2 74 cd 2a 30 b2 69 6d 0f 22 b5 5b 39 9e 59 09 e5 82 47 94 e4 34 c0 cd 99 7e a5 ef 7f 
Certificate 11.1:
name = eca.itrus.com.cn
issuer = 34 c0 cd 99 7e a5 ef 7f 
11.1.hash = aa 64 3c 0b 8f 15 0b 4e ec 28 b7 f6 bd 57 17 c5 95 e9 a5 a3 df 53 2e 0e 7d 3f cd 36 09 c6 6f f7 
Certificate 11.2:
name = pca.itrus.com.cn
issuer = 34 c0 cd 99 7e a5 ef 7f 
11.2.hash = 8c c0 0c 3b b0 eb 2f 33 85 a3 37 91 44 4c 92 b8 eb 6e e4 13 43 5d e7 87 84 50 ed 18 1d a1 3c c1 
Certificate 11.3:
name = pra.itrus.com.cn
issuer = 34 c0 cd 99 7e a5 ef 7f 
11.3.hash = d3 0b d1 4a 2a 2a 27 34 d9 d0 26 d5 1c db 11 eb 9a 94 13 5d 98 a1 b7 6e 64 79 5a 74 c2 9a 74 29 
PkiCertInfo 12:
Certificate 12.0:
name = ica.v2x.caeri.beijing
issuer = 46 82 80 66 9c a1 f5 4e 
12.0.hash = 77 3c 75 c8 f2 73 34 25 e6 9e 3f 2a 61 ea f2 ee 69 48 79 de 7f 2b a8 2f c5 4c 28 39 5a 2a 9d d1 
Certificate 12.1:
name = eca.v2x.caeri.beijing
issuer = c5 4c 28 39 5a 2a 9d d1 
12.1.hash = 32 e0 16 e1 74 64 3d 76 69 a6 55 8a 26 11 39 2b 12 4f f6 5b cb ae 64 0f 6c a4 30 d9 ce 9e 56 49 
Certificate 12.2:
name = pca.v2x.caeri.beijing
issuer = c5 4c 28 39 5a 2a 9d d1 
12.2.hash = 8a 64 5a 53 d4 3d f3 e9 69 35 eb d4 f5 8a 8d d0 48 a3 dd d9 36 d6 58 16 c1 81 c4 ad 96 7e a1 3e 
Certificate 12.3:
name = pra.v2x.caeri.beijing
issuer = c5 4c 28 39 5a 2a 9d d1 
12.3.hash = 1e 55 bb f4 bb 40 c4 61 f5 07 15 a1 55 d5 9f 32 37 a1 7d 9b 18 15 62 69 37 32 e0 f3 87 ef 88 0f 
PkiCertInfo 13:
Certificate 13.0:
name = ica.v2xsec.cn
issuer = 46 82 80 66 9c a1 f5 4e 
13.0.hash = 31 d2 ff be a9 f9 85 d2 e7 51 13 24 36 69 4c 2b 23 29 29 df 2e 90 57 01 af 46 02 12 9e fe 82 95 
Certificate 13.1:
name = eca.v2xsec.cn
issuer = af 46 02 12 9e fe 82 95 
13.1.hash = f5 94 3a e0 b0 e3 4c 33 9d 04 f2 9d 4a 66 9f db 84 91 7c 25 f5 41 d5 df 9c 4b 0e e0 34 1e 4e 95 
Certificate 13.2:
name = pca.v2xsec.cn
issuer = af 46 02 12 9e fe 82 95 
13.2.hash = 15 12 48 7d 9d 2b df 70 2d 8a 36 ac 57 28 94 5f e7 a8 70 bc 1c fe a5 70 4e 50 fd 1a a7 6e 3c 87 
Certificate 13.3:
name = pra.v2xsec.cn
issuer = af 46 02 12 9e fe 82 95 
13.3.hash = 97 a2 3d eb fb 60 eb 9c 78 c6 69 a3 84 79 95 90 bd fa 29 f9 e0 f0 51 a3 79 5b ce cc 1a 77 1d ea 
Certificate 13.4:
name = aca.v2xsec.cn
issuer = af 46 02 12 9e fe 82 95 
13.4.hash = a3 41 3e 83 30 9d 36 ff f5 21 d5 4b 45 69 c7 74 f7 50 69 c6 66 59 12 72 87 97 a0 3f 44 9f 5a 96 
Certificate 13.5:
name = ara.v2xsec.cn
issuer = af 46 02 12 9e fe 82 95 
13.5.hash = 13 48 76 18 f9 59 22 1d 6f dc bd 28 7e 43 f9 0a 42 90 34 66 ff 02 cd cc 14 93 ab b9 8c fd 4f 7a 
PkiCertInfo 14:
Certificate 14.0:
name = ica.easysec.com.cn
issuer = 46 82 80 66 9c a1 f5 4e 
14.0.hash = 8e 39 a5 26 0a 7f 90 53 16 9d 81 aa 4a 8c cc 0c 91 6b 6b 5f e7 9b f1 7a 20 a3 7f 33 d1 32 a3 13 
Certificate 14.1:
name = eca.easysec.com.cn
issuer = 20 a3 7f 33 d1 32 a3 13 
14.1.hash = 5f 61 d7 64 0b b5 cc ce 9b 74 a9 83 9f e9 f6 7d 49 b2 40 34 a2 05 7f 41 7f a8 00 6b f2 2a 07 2d 
Certificate 14.2:
name = pca.easysec.com.cn
issuer = 20 a3 7f 33 d1 32 a3 13 
14.2.hash = f5 bc a8 3e 21 6a 01 d6 fe 7d f6 7a 1d 2c 11 21 59 95 6c dd df 7f d4 32 fe 3a 54 be 7b 3f 59 0b 
Certificate 14.3:
name = pra.easysec.com.cn
issuer = 20 a3 7f 33 d1 32 a3 13 
14.3.hash = 3e 9d af b6 fd 58 8a df 76 3b 73 8e 28 e3 85 a1 13 f2 b1 70 ef 92 76 40 e3 3c 18 25 49 77 5a da 
Certificate 14.4:
name = aca.easysec.com.cn
issuer = 20 a3 7f 33 d1 32 a3 13 
14.4.hash = d7 4c 58 fd 1a a2 c1 8b b4 dd a3 b2 d6 4e 45 a1 7a 6b f2 57 d3 0e 3a 35 af fa a2 77 5b b1 56 96 
Certificate 14.5:
name = ara.easysec.com.cn
issuer = 20 a3 7f 33 d1 32 a3 13 
14.5.hash = 04 73 ad 68 ea bf 99 e9 a4 88 cb ed 15 0a b6 33 7b 54 e6 45 53 6e e4 6b 92 5c 41 62 57 47 93 a1 
Certificate 14.6:
name = la.easysec.com.cn
issuer = 20 a3 7f 33 d1 32 a3 13 
14.6.hash = 8d 87 8d 49 7c c3 bf f0 38 4c ba 87 97 1d 29 52 f6 21 de 91 b6 77 e9 b3 71 2c 88 d7 ec 40 13 8d 

EB0352F89CE69F39.tdcl
这个只有一个厂商的数据,看tkca应该是 北京中交国通智能交通

PkiCertInfo count = 1
PkiCertInfo 0:
Certificate 0.0:
name = ica.test.v2x.tkca.cn
issuer = eb 03 52 f8 9c e6 9f 39 
0.0.hash = 24 b6 28 9b 10 e4 7b 78 2b 3e 6d 35 39 e3 47 9a 71 0a f1 bd fe fe 39 73 79 0b 50 97 44 3e 2a e4 
Certificate 0.1:
name = ma.test.v2x.tkca.cn
issuer = 79 0b 50 97 44 3e 2a e4 
0.1.hash = ba 20 ef 05 50 fc bb 22 9a fc 9a 0e 99 96 80 ba 45 f2 58 c2 4e 50 51 41 36 d9 70 7b 7e bd 5a 7d 
Certificate 0.2:
name = eca.test.v2x.tkca.cn
issuer = 79 0b 50 97 44 3e 2a e4 
0.2.hash = ac 34 da 00 f3 5d e5 fa e2 d9 65 d3 93 69 c2 56 8f 43 14 6e a7 2f 1b 64 df 54 8e 27 49 30 2a 0d 
Certificate 0.3:
name = pca.test.v2x.tkca.cn
issuer = 79 0b 50 97 44 3e 2a e4 
0.3.hash = 05 a4 23 05 17 4b 53 2a bc 22 2e 98 aa d3 c8 f1 f6 b6 d7 f6 b5 59 62 2d d2 16 a8 88 86 59 32 cf 
Certificate 0.4:
name = pra.test.v2x.tkca.cn
issuer = 79 0b 50 97 44 3e 2a e4 
0.4.hash = 2a 3f 12 75 82 7a 7a df 88 08 08 1f 41 c0 db 23 31 b0 50 4b f8 06 6f 3a 48 4e dd 8f b1 21 26 00 
Certificate 0.5:
name = la.test.v2x.tkca.cn
issuer = 79 0b 50 97 44 3e 2a e4 
0.5.hash = 3d c2 64 72 14 78 4c a7 27 44 2f 2e 96 2b 4e f1 df e9 72 e1 c9 1a be f2 76 e0 03 23 30 11 eb 02 
Certificate 0.6:
name = aca.test.v2x.tkca.cn
issuer = 79 0b 50 97 44 3e 2a e4 
0.6.hash = 30 df 8e 4a e2 80 84 56 84 40 43 53 e0 8e e1 45 36 fd 3e 6c ff 36 9a 58 a3 93 0d ad 64 09 c9 f8 

万洲国际再回应万洪建指控:公司并无将资金从双汇转移至境外 | 路透 update:2021-8-23 8月23日 -
全球最大猪肉加工企业--万洲国际0288.HK周一再次发出公告,回应被免职的前董事万洪建此前所作指控;公司表示,其并无将资金从双汇发展000895.SZ转移至境外市场;而万洪建对公司主席万隆2013年完成收购史密斯菲尔德食品公司后从上市公司获得超过50亿港元的奖金亦不实。

万洲国际公告
(here)称作出五点回应,首先,公司间接非全资附属公司双汇发展及其附属公司一直按照中国有关资金及外汇管制的相关规则及法规以及程序营运。除一般经营业务及投资需要(包括股息分派、贸易应付款项结算及出售于双汇发展附属公司的股权)外,公司并无将资金从双汇发展转移至境外市场。

第二,有关万洪建指控万隆2013年完成收购史密斯菲尔德(现为万洲的间接全资附属公司)后从公司获得了超过50亿港元的奖金。万洲澄清,公司2013年10月23日向万隆及杨挚君等进行了以股份为基础的付款交易,以表彰及奖励他们对该项收购的贡献;二人分别获发行约5.73亿及2.456亿股股(当时价值约为4.18亿美元及1.79亿美元)。其后,根据董事会于2013年采纳的股份奖励计划,于2017年向万隆授出逾3.5亿股股份。

公告并对万洪建对万隆及郭丽军指示双汇发展以高于市价从美国进口猪肉令公司蒙受损失、其认为郭丽军不具备晋升万洲行政总裁的资格,及其指万隆在双汇发展重组过程获益但未有申报或缴纳税款的指控逐一作出回应。

Referenced from:https://cn.reuters.com/article/china-wh-group-fund-0823-mon-idCNKBS2FO09V?il=0

综述:猪肉加工巨头万洲父子内斗 “废太子”一通笔伐逾百亿市值蒸发 | 路透 update:2021-8-19
万洲国际前“太子爷”的一篇炮轰父亲万隆的文章,再度将这家全球最大猪肉加工企业推上风口浪尖,“宫斗”阴霾挥之不去,一天之内万洲系近150亿元人民币市值蒸发。

在港上市的万洲国际0288.HK周三暴跌逾11%,当日跌去112亿港元市值,创近五个月以来最大单日跌幅;其在深圳上市的子公司双汇发展000895.SZ亦收挫5.5%,市值蒸发超50亿元。

8月17日夜间万洪建通过自媒体发布题为《万洪建:我眼中的父亲和万隆》的文章,文中提到2007年双汇的国企改制进入尾声,参与国企改制的鼎晖公司私下无偿授予万隆5%的双汇股份,这5%的股份转卖给了香港一家公司,而万隆私下获得了2亿美元的对价款项。该文署名为万隆长子万洪建。

Referenced from:https://cn.reuters.com/article/wh-internal-wrapup-impact-0818-wedn-idCNKBS2FK05Q?il=0

万洲国际称前董事万洪建指控不真实且具误导性 保留采取法律行动权利 | 路透 update:2021-8-18
8月17日夜间公众号“新肉业”发布题为《万洪建:我眼中的父亲和万隆》的文章,文中提到“2007年,双汇的国企改制进入尾声,参与国企改制的鼎晖公司不知何故,私下无偿授予万隆先生5%的双汇股份,由于双方无法或不愿公开此项交易,于是这5%的股份就直接转卖给了香港一家公司,而万隆先生私下获得了2亿美元的对价款项”。该文署名者为万洪建。

万洲国际6月中宣布免去万洪建董事职务,理由是他对本公司的财物作出不当的攻击行为,使本公司认为他无法履行其作为董事的才能、审慎及勤勉行事的职责。

上周万洲国际宣布委任万隆次子万宏伟为执行董事兼董事会副主席;至于万隆则辞任行政总裁,由郭丽军接替其职务。

Referenced from:https://cn.reuters.com/article/wh-group-0818-wedn-idCNKBS2FJ0HD?il=0

作者:万洪建
万隆曾是我眼中神明一般的父亲。
我从小在漯河肉联厂长大,亲历双汇的长大,见证了反复歌颂几十年的“砸三铁”、“两分钱”等传说。
你们都年轻,听到的不过是故事,而我作为亲历者,更知道老强人一步一步走来的艰难困苦,步步荆棘。
老强人一手谛造了两个上市企业,其中一个,是他在漯河与上千位漯河精英,在一起奋斗中创立的双汇,另一家千亿企业,它叫万洲,是万隆先生在香港与杨挚君精心设计,大律师李署峰出谋划策所造出来的套钱工具而已。
01
万洲没有实际的生产运营,它实际上就是双汇与史密斯菲尔德的拼盘,它的作用,就是通过各种眼花缭乱的财务手段,复杂的架构,将国内双汇的钱不露痕迹转出境外,从来没有逆向回流过。
“咱没做过坏事,咱不怕!”
慈祥而伟大的老爷爷对小姑娘这么说。他当然不觉得是坏事,对他而言,能多挣钱的都是好事。
利用自己雄厚的势力,在员工处于一盘散沙的弱势背景下,巧取豪夺,从员工持股的兴泰公司,强行用一半的低价交易,万隆先生自己获利50多亿港币,这种损人利己的事情还不是坏事?
迫不及待,以收购(史密斯菲尔德)成功为借口,联同自己秘书自我奖励50多亿港币仍不满足,再把原来承诺授予管理团队的3.5亿股万洲奖励股票,在2017年,也全部抓入他一个人的口袋。这种化公为私的行为,如果不能称为坏事,难道还是好事吗?
今年2月26号,万老板携郭丽军一起签发“关于调整美国六分体价格建议”,不理会国内双汇管理人员的强烈反对,继续大量进口美国六分体,2月底进口六分体的市场平均价格只有21500元,你们却强行将美国产品进口结算价格从21000元/吨大幅提高到25800元/吨,进口量接近10万吨。
目前这批从美国史密斯出口到中国的六分体,给中国双汇造成的损失多达8亿人民币以上。这种肥美损中的行为,还不算坏事吗?
02
“咱没做过坏事,咱不怕!”
显然在万老板的眼里,无论巧取豪夺也好,还是化公为私也罢,这些行为在万老板的世界观里,都不算坏事,那这个道德底线也太低了吧!
或许他觉得,双汇与万洲所有一切,都是他个人的,其他人的份额,都是他的赏赐,他愿意给多少,其它人根本无权置喙。
于家来讲,你和沈瑞芳姘居时间近20年,每个家人出于各种原因,保持了对你的沉默与宽容。
这种宽容却被误解为我们这些家伙太软弱——像你对兴泰的小股东的评语一样,无情把母亲一个人孤零零抛弃在漯河,也不允许别人把她接到香港。
这种冷血的行为不是坏事是什么?
从公司到家庭,你后期所做的坏事与前期做的好事一样多。
03
郭丽军是个好同志,他精通财务,忠心体贴。有的人,放在合适的位置就是好人,放在不合适的位置就是个坏人。
郭丽军作为万洲的CFO是尽职尽责的,每天准时陪老板走路,贴身防护到晚上九点才离开,老板在香港的每一天均如是,仿佛杨挚君的身影再现。
从私人感情上说,老板非常喜欢他,老人总喜欢有人陪伴。
虽然精通财务,郭丽军同志并不懂双汇的产、供、销、研,连自己本身主导的万洲外汇对冲,这两年给万洲带来的累计亏损,超过千万美元。
今年为了迎合老板的重美战略,不顾双汇的强烈反对,强行将进口美国六分体价格提高5000元/吨。
如今,这些昂贵的冻肉正躺在双汇的仓库里,成为双汇的巨大潜亏,大把钞票,又从太平洋上空飘到了美利坚合众国。
04
五年前,郭丽军同志开始每日津津有味地观看youtube,并引导万洲的高管一起观看。
他特别喜欢听一些海外人士的政经言论,如文昭、陈破空等人的视频讲话,并将其部分言论作为万洲国际外汇对冲与战略规划的依据。
作为五百强企业的CEO,这种制定规划的依据来源实在荒谬。
我与父亲曾经交流过对郭丽军水平的看法。
2018年,父亲谈到郭丽军不懂英文,尽管没有经商头脑,没有肉制品和屠宰业的业务综合运营能力,但是他听话、老实,最容易被驯服,更便于被驾驭。
郭丽军同志与万老板制定的双汇十四五规划,是我们之间的一个分歧点,其中空洞地指出双汇肉制品的销量在2021年应达到170万吨。
时间已近在咫尺,数据在验证规划的荒谬。
05
我这次与万隆先生的冲突,导火索在于CEO的人选问题。
我希望在后万隆尾期,CEO的人选要有德,可以服众;有可以驾驭双汇各项业务的综合能力,最好可以稳定跨越十几年,实现万洲国际的平稳过渡。
我还没有开口,强人就开始暴怒,谈话变为怒骂。
8月12日,万洲发出人员任免公告,在目前郭丽军操作的进口业务巨亏过8亿多人民币背景下,万老板却仍冒天下大不韪,任性般擢升郭丽军做万洲CEO,这种深厚的私人感情真令人嫉妒啊!
再把郭丽军同志派往双汇董事会任董事,万洲国际的CEO在职位上远高于双汇总裁一职,外行指挥内行,对于双汇,又将是一重灾难。
昔日睿智的万隆先生,现在步步昏招,这是咋了?
06
“咱没做过坏事,咱不怕!”
今年2月26号,你与郭丽军同志一起签发“关于调整美国六分体价格建议”,以香港万洲国际为据点,高价进口10万吨美国冻肉,给中国双汇造成的损失多达8亿人民币以上。
这样的关联交易明显违规,且事涉大股东利益输送,虽然大家知道你神通广大,但是我还真替你害怕!
2007年,双汇的国企改制进入尾声,参与国企改制的鼎晖公司不知何故,私下无偿授予万隆先生5%的双汇股份,由于双方无法或不愿公开此项交易,于是这5%的股份就直接转卖给了香港一家公司,而万隆先生私下获得了2亿美元的对价款项,之后你兴奋地将这笔巨款存放在香港DBS银行。
2007年已经过了15年,这笔巨额收入至今没有申报,至今没有纳税,你难道不怕相关部门向你追缴税款吗?这种坏事,如果你不怕,恐怕杨挚君的股票不可能在港交所自由交易。
杨挚君的股票得以全流通的事实曾令大家大跌眼镜,这个结果相当于老板向自己的秘书低头,和万隆先生强悍的人设形象大相径庭,只有一个可能:杨挚君手里有你私下收受上述2亿美元的证据,才迫使万老板不得不向杨挚君屈服。你还敢说你真不怕吗?
昔日的辉煌,不可能成为现在贪婪与昏庸的挡箭牌。我相信,在一片万岁声中,总有清醒而明白的人看清这事情。

Referenced from:https://mp.weixin.qq.com/s?src=11×tamp=1629270101&ver=3259&signature=aufb7Y3u1iGD5F31RyADiZySKf19Yv74jEJ3BhnZhvlm1gRfIbyftg-4mF9bCbjoCegqxmFVbeJpsf4k-qD1MDIRWqXy-SNuWmDzOTC-A2rvad8JNIxjvRkAFSdUH9Ui&new=1

大瓜!双汇废太子万洪建曝光亲父万隆转移百亿出境及姘居丑闻-股票频道-和讯网 update:2021-8-18
双汇“废太子”万洪建通过自媒体发表题为《我眼中的父亲和万隆》,文章首次公开曝光多处惊天大瓜。如万隆在双汇改制期间获得2亿美金“不便公开”的收入、强人万隆巧取豪夺双汇普通员工和管理层股权获利超过50亿元,父亲万隆与人姘居20年家人保持沉默,进口美国猪肉业务导致中国双汇损失惨重等等,不一而足。

万洪建在文中写到,(标黑字体部分,为万洪建原文摘引,下同)

2007年,双汇的国企改制进入尾声,参与国企改制的鼎晖公司不知何故,私下无偿授予万隆先生5%的双汇股份,由于双方无法或不愿公开此项交易,于是这5%的股份就直接转卖给了香港一家公司,而万隆先生私下获得了2亿美元的对价款项,之后你兴奋地将这笔巨款存放在香港DBS银行。

2007年已经过了15年,这笔巨额收入至今没有申报,至今没有纳税。

对于双汇旗下的香港上市公司香港万洲,万洪建评价为父亲万隆的套钱工具,通过财务手段和复杂的架构,将双汇的钱不露痕迹地转到境外,从不回流。

老强人一手谛造了两个上市企业,其中一个,是他在漯河与上千位漯河精英,在一起奋斗中创立的双汇,另一家千亿企业,它叫万洲,是万隆先生在香港与杨挚君精心设计,大律师李署峰出谋划策所造出来的套钱工具而已。

Referenced from:http://stock.hexun.com/2021-08-18/204180417.html?from=rss

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <signal.h>
#include <fcntl.h>
#include <ctype.h>
#include <termios.h>
#include <sys/types.h>
#include <sys/mman.h>
  
#define FATAL do { fprintf(stderr, "Error at line %d, file %s (%d) [%s]\n", \
  __LINE__, __FILE__, errno, strerror(errno)); exit(1); } while(0)
 
#define MAP_SIZE 4096UL
#define MAP_MASK (MAP_SIZE - 1)

int main(int argc, char **argv) {
    int fd;
    void *map_base, *virt_addr; 
    unsigned long read_result, writeval;
    off_t target;
    int access_type = 'w';
    
    if(argc < 2) {
        fprintf(stderr, "\nUsage:\t%s { address } [ type [ data ] ]\n"
            "\taddress : memory address to act upon\n"
            "\ttype    : access operation type : [b]yte, [h]alfword, [w]ord\n"
            "\tdata    : data to be written\n\n",
            argv[0]);
        exit(1);
    }
    target = strtoul(argv[1], 0, 0);

    if(argc > 2)
        access_type = tolower(argv[2][0]);


    if((fd = open("/dev/mem", O_RDWR | O_SYNC)) == -1) FATAL;
    printf("/dev/mem opened.\n"); 
    fflush(stdout);
    
    /* Map one page */
    map_base = mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, target & ~MAP_MASK);
    if(map_base == (void *) -1) FATAL;
    printf("Memory mapped at address %p.\n", map_base); 
    fflush(stdout);
    
    virt_addr = map_base + (target & MAP_MASK);
    switch(access_type) {
        case 'b':
            read_result = *((unsigned char *) virt_addr);
            break;
        case 'h':
            read_result = *((unsigned short *) virt_addr);
            break;
        case 'w':
            read_result = *((unsigned long *) virt_addr);
            break;
        default:
            fprintf(stderr, "Illegal data type '%c'.\n", access_type);
            exit(2);
    }
    printf("Value at address 0x%X (%p): 0x%X\n", target, virt_addr, read_result); 
    fflush(stdout);

    if(argc > 3) {
        writeval = strtoul(argv[3], 0, 0);
        switch(access_type) {
            case 'b':
                *((unsigned char *) virt_addr) = writeval;
                read_result = *((unsigned char *) virt_addr);
                break;
            case 'h':
                *((unsigned short *) virt_addr) = writeval;
                read_result = *((unsigned short *) virt_addr);
                break;
            case 'w':
                *((unsigned long *) virt_addr) = writeval;
                read_result = *((unsigned long *) virt_addr);
                break;
        }
        printf("Written 0x%X; readback 0x%X\n", writeval, read_result); 
        fflush(stdout);
    }
    
    if(munmap(map_base, MAP_SIZE) == -1) FATAL;
    close(fd);
    return 0;
}