1 个不稳定版本

0.1.0 2019年5月28日

#2191 in 密码学

MIT/Apache

13KB
187

signit

一个使用您的 ed25519 SSH 密钥签署和验证消息签名的工具。

如果您将您的 ed25519 公钥添加到您的 github 账户中,任何人都可以验证您的消息,而无需手动提供您的公钥!

先决条件:生成 ed25519 SSH 密钥

运行以下命令,并按照说明操作。如果您已经有了 ed25519 SSH 密钥,则不需要这样做。

ssh-keygen -t ed25519

往返示例

这使用我的 $HOME/.ssh/id_ed25519 密钥进行签名,并使用我在 github 上的公钥 keys 进行验证。

signit sign -p -m "Hello, world" -g jamesmunns | tee msg.json | signit verify -g && cat ./msg.json

Verified!
{
  "message": "Hello, world",
  "signature": "JruolFnpOE6uQy0gqSE2VfrHPYr2De7cDdiIOAhDLIkIN5MmK+oT4HRNpB2Y0QSY1XGVMODHG1fWOeFwdl+YDg==",
  "github_user": "jamesmunns"
}

签署消息

signit sign --help

signit-sign 0.1.0
James Munns <james.munns@ferrous-systems.com>
Sign a message using an ed25519 private key

USAGE:
    signit sign [FLAGS] [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -p               Pretty Print the JSON output
    -V, --version    Prints version information

OPTIONS:
    -g <github>             Github username to couple with json output
    -i <input>              File to sign, defaults to stdin if no file is specified or -m is not used
    -m <message>            Message to sign (overrides -i flag or stdin)
    -o <output>             Output of signature, defaults to stdout if no file is specified
    -k <private_key>        Path to ed25519 private key, defaults to "$HOME/.ssh/id_ed25519"

验证消息

signit verify --help

signit-verify 0.1.0
James Munns <james.munns@ferrous-systems.com>
Verify a message using an ed25519 public key

USAGE:
    signit verify [FLAGS] [OPTIONS]

FLAGS:
    -g               Pull public keys from github
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -i <input>             File to sign, defaults to stdin if no file is specified or -m is not used
    -m <message>           Message to verify (overrides -i flag or stdin)
    -k <public_key>        Path to ed25519 public key, defaults to "$HOME/.ssh/id_ed25519.pub", overrides -g

安装

cargo install signit

升级

cargo install -f signit

许可证

本项目的许可证条款为 MIT 许可证和 Apache 许可证 v2.0。

本项目中使用的许可证副本也可以在此找到

贡献

除非您明确声明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证的定义,应按上述方式许可,无需任何额外的条款或条件。

依赖关系

~24MB
~511K SLoC