6个版本
0.2.0 | 2023年3月29日 |
---|---|
0.1.4 | 2023年3月27日 |
#2192 in 密码学
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