#signal #protocols #whisper #libsignal #sys

sys libsignal-protocol-sys

libsignal-protocol-c 库的 *-sys crate

1 个不稳定版本

0.1.0 2019年7月21日

#25 in #whisper


用于 libsignal-protocol

MIT/Apache

1.5MB
31K SLoC

C 28K SLoC // 0.1% comments Rust 3.5K SLoC

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许可: 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/)。

FOSSA Status

依赖项