#rsa-key #web-api #validation #verifying #activation #client #cryptolens

cryptolens-yc

Cryptolens 网页 API 客户端,适用于 Rust

2 个不稳定版本

0.2.0 2024年4月23日
0.1.0 2024年4月22日

#7 in #verifying

MIT 许可协议

21KB
308

Cryptolens Rust 客户端

Github top language Github language count Repository size

内容

关于

此包提供使用 Cryptolens 管理和验证许可证密钥的辅助函数。它简化了密钥激活、验证的过程,并提供用于处理数字签名的 RSA 密钥的实用工具。

为什么我要创建这个包?

在官方 Cryptolens GitHub 仓库中,已经存在一个 cryptolens-rust 包,但它的最后更新是在 5 年前(2019 年),并且看起来它的某些功能可能不再正常工作。由于没有针对 Rust 使用 Cryptolens 的最新替代方案,因此我创建了此包,为 Rust 社区提供一个维护良好且可用的解决方案。

2024年4月23日 更新 0.2.0 添加离线验证功能和示例

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
cryptolens_yc = "0.2.0"

使用方法

要开始使用 cryptolens_yc 包,您需要在您的 Rust 项目中包含它,并使用提供的函数激活和验证许可证密钥。

示例

基本使用示例

以下是一个基本示例,展示如何激活许可证密钥并验证其签名

use cryptolens_yc::{key_activate, KeyActivateArguments};

let public_key = "<RSAKeyValue><Modulus>...</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
let product_id = "3646";
let key = "MPDWY-PQAOW-FKSCH-SGAAU";
let token = "WyI0NjUiLCJBWTBGTlQwZm9WV0FyVnZzMEV1Mm9LOHJmRDZ1SjF0Vk52WTU0VzB2Il0=";

let license_key = key_activate(
    token,
    KeyActivateArguments {
        ProductId: product_id.parse().unwrap(),
        Key: key.to_string(),
        MachineCode: "289jf2afs3".to_string(),
        ..Default::default()
    },
).unwrap();

match license_key.has_valid_signature(public_key) {
    Ok(valid) => assert_eq!(valid, true),
    Err(e) => panic!("Error: {}", e),
}

此示例展示了如何激活许可证并检查返回的许可证是否具有使用给定公钥 RSA 密钥的有效签名。

离线验证示例

// get the license key from above code ...

// save the license key to a file
let path = "cached_license_key";
save_license_key_to_file(&license_key, path)?;

// you can also load the license key from a file
let loaded_license_key = cryptolens_yc::load_license_key_from_file(path)?;

// validate the loaded license key
match loaded_license_key.has_valid_signature(public_key) {
    Ok(valid) => assert_eq!(valid, true),
    Err(e) => panic!("Error: {}", e),
}

贡献

欢迎贡献!请fork 存储库并提交您的更改的拉取请求。

许可协议

本项目采用 MIT 许可协议。有关详细信息,请参阅 LICENSE 文件。

 

返回顶部

依赖项

~6–17MB
~255K SLoC