使用encryption库在NodeJS中创buildPGP兼容签名

在看encryption库我看它有能力签署数据。

有没有人知道如果一个PGP兼容的签名就像encryptionencryption库的符号命令的输出一样简单?

我有一个应用程序,需要签署和使用PGP只签署数据。 我看了OpenGPGJS项目; 但是当我使用我的应用程序的时候会炸掉它 。

我一直在尝试使用kbgpg,但是他们的文档并不是那么好, 当我按照他们默认的签名数据的例子,当我试图使用Kleopatra来validation一切都是正确的时候,签名甚至不被识别为签名。 即使我将“GPG MESSAGE”块改为“PGP SIGNATURE”块,也是如此。

由于我不需要encryption,只是签名,我以为直接使用Crypto库可能是最简单的解决scheme,但我很难find文档来validation它可以轻松完成。

虽然OpenPGP使用特殊的encryption操作模式(OpenPGP CFB模式),但没有特殊的algorithm用于签名文件。 RFC 4880中,OpenPGP定义了如何组成OpenPGP消息 – 理论上讲,只需要知道以OpenPGP格式导出消息。 您甚至可以跳过很多特殊情况,特别是如果您还可以控制使用哪些密钥(及其技术细节)来签署信息。

但是你将不得不把自己的代码编写成OpenPGP消息格式,这几乎是OpenPGPJS和其他人正在做的事情。 但是做适当的密码学是非常复杂的,而且有许多方法可以做错事。 不要编写自己的密码 ,特别是不要作为一个侧面项目。

最后,看看代码,我确定kbpgp不会导出BEGIN GPG MESSAGE头文件。 它可能很好地打印BEGIN PGP MESSAGE标题,并且当签名与签名内容组合时,这是正确的标题。 将其更改为BEGIN PGP SIGNATURE将导致消息内容无效。