1 个不稳定版本
0.1.0 | 2019年7月21日 |
---|
#25 in #whisper
1.5MB
31K SLoC
libsignal-protocol-rs
(API 文档)
Rust 语言对 Signal 协议 的接口。
示例
使用这个库最简单的事情是生成一个私钥身份。这通常只在第一次启动时进行一次(有时称为 安装时间)。
// create our global context (for things like crypto and locking)
let ctx = Context::default();
let identity = libsignal_protocol::generate_identity_key_pair(&ctx)?;
接下来,您通常会生成一些未签名的预密钥,供人们在联系您时使用,以及一个已签名的预密钥。
let ctx = Context::default();
let identity = libsignal_protocol::generate_identity_key_pair(&ctx)?;
let signed_pre_key = libsignal_protocol::generate_signed_pre_key(
&ctx,
&identity,
5,
SystemTime::now(),
)?;
let start = 123;
let count = 20;
let pre_keys = libsignal_protocol::generate_pre_keys(&ctx, start, count)?
.collect::<Vec<PreKey>>();
安装时还应创建一个注册 ID。
let ctx = Context::default();
let extended_range = 42;
let registration_id = libsignal_protocol::generate_registration_id(&ctx, extended_range)?;
法律事项
密码学通知
本分发包含密码学软件。您目前居住的国家可能对加密软件的进口、拥有、使用和/或重新出口到另一个国家的限制。在使用任何加密软件之前,请检查您所在国家的法律、法规和政策,了解有关加密软件的进口、拥有或使用以及重新出口的规定,以查看是否允许。更多信息请见 http://www.wassenaar.org/。
美国商务部工业和安全局(BIS)将此软件分类为出口商品控制编号(ECCN)5D002.C.1,该编号包括使用或执行非对称算法的加密功能的信息安全软件。本分发形式和方式使其符合许可例外ENC技术软件不受限制(TSU)例外(参见BIS出口管理法规第740.13节),适用于目标代码和源代码。
许可
版权所有 2015-2019 Open Whisper Systems
根据GPLv3许可: http://www.gnu.org/licenses/gpl-3.0.html
向Apple App Store提交的附加权限:前提是您已遵守GPLv3的每个受保护作品的传输(包括但不限于根据GPLv3第6节提供相应的源代码),Open Whisper Systems还授予您将非源代码的可执行版本传输到Apple App Store的附加权限,作为每个适用受保护作品的可执行版本,仅限于Mozilla Public License版本2.0(https://www.mozilla.org/en-US/MPL/2.0/)。