2 个版本
使用旧的 Rust 2015
0.1.1 | 2018 年 6 月 10 日 |
---|---|
0.1.0 | 2018 年 6 月 10 日 |
#10 在 #许可证
15KB
220 行
授权
授权是一个库,可以以简单、可扩展的方式为您的二进制项目添加数字签名许可证。除了提供用于您代码的库函数外,它还在包中提供密钥生成和许可证签名的二进制文件。
用法
要使用 授权
,您需要生成用于签名的密钥。这些密钥应保密,因为它们用于证明许可证的有效性。
如果您想在示例目录中生成密钥,可以通过 gen_keys
命令执行,如下所示,通过 cargo run
命令
cargo run --bin=gen_keys -- examples
上述命令将在目标目录中生成两个文件
私钥.公钥
私钥.公钥
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