#1
hua
· 2026-07-17 02:54:16
stalltrix
我早就想说这个了,这里的逻辑设计很多都是想当然的设计,业内完全有现成的标准,但是感觉这里就喜欢自造一个。
就拿密钥来说吧,这里的实现就是直接把32 byte以binary形式写入硬盘。.pub以及.priv就是一个纯粹的二进制文件。
业内早已有PEM+PKCS+SPKI这种存储方案,这种解决的并不只是使用起来不方便的问题。也许普通人觉得只是拷贝文本比拷贝二进制方便的问题。但是对于其他程序来说却不是,直接存二进制让人不知所以,其他程序拿到后,必须靠约定俗成来使用(比如约定这32 byte就是Ed25519的密钥),经验之谈,项目搞大了很容易出错,并且时间久了人也有概率搞忘这个文件存的是啥。
PKCS+SPKI几乎是业内通用格式,很多程序都能直接解析使用,跨语言也十分方便。现在密钥的这种binary就是约定方法来使用。之前看了有坛友写的kep-worker就是由于二进制无法直接导入,而被迫使用base64表示。相当于也自造了另一种密钥格式。如果使用PKCS+SPKI统一密钥格式,就不会出现这么多不同语言的分裂问题。
二级签名结构不一定要使用X.509。但是PEM+PKCS#8+SPKI这种通用格式总是要考虑下吧,业内都在兼容openssl的PEM+PKCS#8+SPKI可不只是对程序以及对人来说的友好问题,对于项目复杂化后,统一密钥管理也是个问题。
就拿密钥来说吧,这里的实现就是直接把32 byte以binary形式写入硬盘。.pub以及.priv就是一个纯粹的二进制文件。
业内早已有PEM+PKCS+SPKI这种存储方案,这种解决的并不只是使用起来不方便的问题。也许普通人觉得只是拷贝文本比拷贝二进制方便的问题。但是对于其他程序来说却不是,直接存二进制让人不知所以,其他程序拿到后,必须靠约定俗成来使用(比如约定这32 byte就是Ed25519的密钥),经验之谈,项目搞大了很容易出错,并且时间久了人也有概率搞忘这个文件存的是啥。
PKCS+SPKI几乎是业内通用格式,很多程序都能直接解析使用,跨语言也十分方便。现在密钥的这种binary就是约定方法来使用。之前看了有坛友写的kep-worker就是由于二进制无法直接导入,而被迫使用base64表示。相当于也自造了另一种密钥格式。如果使用PKCS+SPKI统一密钥格式,就不会出现这么多不同语言的分裂问题。
二级签名结构不一定要使用X.509。但是PEM+PKCS#8+SPKI这种通用格式总是要考虑下吧,业内都在兼容openssl的PEM+PKCS#8+SPKI可不只是对程序以及对人来说的友好问题,对于项目复杂化后,统一密钥管理也是个问题。


,怎么只实现了一半。公钥SPKI封装变成了标准的了,私钥是自定义格式。这种感觉挺奇怪的啊,由于程序必须同时读取公钥与私钥才能运行。这种兼容一半与完全不兼容没有区别。相反程序还必须处理两套格式,这种新设计又是什么奇葩设计?