#signal #protocols #whisper #libsignal #api-bindings

libsignal-protocol

libsignal-protocol-c crate 的高层接口的惯用接口

1 个不稳定发布

0.1.0 2019 年 7 月 21 日

#24#whisper

MIT/Apache

1.5MB
35K SLoC

C 28K SLoC // 0.1% comments Rust 7K SLoC // 0.0% comments

libsignal-protocol-rs

Codacy Badge Build Status FOSSA Status

(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 许可:https://gnu.ac.cn/licenses/gpl-3.0.html

提交到 Apple App Store 的附加权限:只要你在传递每个受覆盖作品时(包括但不限于使相应的源代码符合 GPLv3 第 6 节)遵守 GPLv3,Open Whisper Systems 还授予你通过 Apple App Store 传递程序的不可执行版本(仅作为执行版本)的附加权限,作为每个适用的受覆盖作品的一部分,根据 Mozilla 公共许可证版本 2.0(https://www.mozilla.org/en-US/MPL/2.0/)。

FOSSA Status

依赖项

~2.6–4MB
~79K SLoC