#binary #key #public-key #signed #expire #valid #license

bin+lib 授权

授权是一个库,可以将签名许可证添加到您的二进制文件中

2 个版本

使用旧的 Rust 2015

0.1.1 2018 年 6 月 10 日
0.1.0 2018 年 6 月 10 日

#10#许可证

MIT/Apache

15KB
220

授权

Build Status Coverage Status

授权是一个库,可以以简单、可扩展的方式为您的二进制项目添加数字签名许可证。除了提供用于您代码的库函数外,它还在包中提供密钥生成和许可证签名的二进制文件。

用法

要使用 授权,您需要生成用于签名的密钥。这些密钥应保密,因为它们用于证明许可证的有效性。

如果您想在示例目录中生成密钥,可以通过 gen_keys 命令执行,如下所示,通过 cargo run 命令

cargo run --bin=gen_keys -- examples

上述命令将在目标目录中生成两个文件

  1. 私钥.公钥
  2. 私钥.公钥

private.pks 实际上是密钥的完整密钥材料,但它还伴随着 public.pks 以便更容易将公钥材料包含到目标二进制文件中。

授权 预期其许可证文件具有某种格式,如下所示

{
    "features": [
        "string key",
        "another feature"
    ],
    "expires": "2014-11-28T12:00:09Z"
}

expires,如上所示,是一个可选字段,如果存在,将进行检查以确保许可证的有效性。

一旦将上述文件保存到,例如,license.json,您就可以运行

gen_license license.json $KEY_PATH/private.pks $OUTPUT_PATH

生成的文件位于 $OUTPUT_PATH 的样子,如上所示的 json,后面跟着一个空字节和签名。

在您的二进制文件中验证许可证就像

let filename = "path/to/license";
let license_file = read(filename)?;
let license = licensed::License::new(&license_file)
    .with_public_key(&PUBLIC_KEY)
    .build()?;
if license.valid() {
    println!("The providded license is valid");
} else {
    println!("The provided license is invalid");
}

依赖项

~7–16MB
~287K SLoC