#openpgp #native #signing #chrome #signature

bin+lib bloss-native

OpenPGP智能卡签名原生的消息宿主

6个版本

0.2.0 2023年3月29日
0.1.4 2023年3月27日

#2192 in 密码学

MIT 许可证

21KB
440

bloss-native

Bloss(Web Library for Openpgp Smartcard Signing)允许Chrome扩展使用本地连接的OpenPGP智能卡为任意消息生成数字签名。

bloss-native 是一个本地消息宿主,作为浏览器代码和智能卡之间的中间件。它使用CCID连接(浏览器代码无法访问)与智能卡通信,并通过标准输入/输出流传递JSON消息与浏览器代码通信,遵循 chrome 本地消息API。

安装

提供的 install.sh 对macOS和Linux系统有效。

./install.sh <your Chrome extension ID>

它将从crates.io下载和安装 bloss-native 并将其注册为Chrome本地消息宿主。您的扩展将被列入宿主清单中的允许来源。

或者,您可以按照以下步骤手动完成同样的操作。

下载和安装 bloss-native 可执行文件

运行以下命令以从crates.io下载和安装

cargo install bloss-native

这将把 bloss-native 可执行文件安装到您预配置的Cargo安装根目录(详情)。如果您没有配置,默认安装位置是 $HOME/.cargo/bin/bloss-native

bloss-native 注册为本地消息宿主

将提供的 com.harrisluo.bloss_native.json 清单复制到本地消息宿主目录。请参阅 Chrome 文档 以了解您的浏览器和操作系统中的位置。

在清单中,将 HOST_NAME 替换为新安装的 bloss-native 可执行文件的绝对路径。将 EXTENSION_ID 替换为将使用本地消息宿主的Chrome扩展的ID。

API

浏览器扩展使用Chrome原生消息协议(详细信息)与bloss-native进行通信。消息使用JSON编码。

{"命令":"列出卡片"}

返回连接到本地计算机的OpenPGP智能卡列表。

{"命令":{"签名消息":{"aid":"<AID>","消息":[<消息>],"pin":[<pin>]}}}

使用应用程序标识符<AID>指定的OpenPGP智能卡的签名密钥签名消息。消息是范围[0, 255](消息的字节)的整数列表的JSON编码。对于PIN保护的卡,必须提供PIN,作为范围[0, 255](PIN字符串的ASCII编码)的整数列表。

依赖关系

~3–4.5MB
~84K SLoC