VirgilCryptoRatchet 0.17.1

VirgilCryptoRatchet 0.17.1

Sergey SeroshtanSanjoDeundiakOleksandr DeundiakEvgenyEvgeny 维护。



 
依赖
VirgilCryptoFoundation= 0.17.1
VSCCrypto/Common= 0.17.1
VSCCrypto/Foundation= 0.17.1
VSCCrypto/Ratchet= 0.17.1
 

  • Virgil Security

License

Virgil Security C 密码库

分支 构建
主分支 Build Status
开发分支 Build Status

介绍

此库设计成一种小型、灵活且方便的包装器,用于各种加密算法。因此,它既可以用于小型微控制器,也可以用于高负载服务器应用程序。此外,它还提供了一些自定义的混合算法,通过结合不同的加密算法,以简单的方式解决常见的复杂密码学问题。这消除了开发者需要具备强大密码学技能的要求。

此库适用于不同的平台,并包含对其他语言的包装器。

功能

Virgil Security Crypto C 库被分解为具有特定目的的小型库。开发者可以自由地选择库的子集。

库:基础库

此库包含基本的加密算法,可以用作构建复杂解决方案的基石。

算法目的 实现细节
密钥生成,PRNG CTR_DRBG NIST SP 800-90A
密钥派生 KDF1, KDF2, HKDF, PBKDF2
密钥交换 X25519, RSA, ECDH
密钥封装机制 Round5, ECIES-KEM
哈希函数 SHA-2 (224/256/384/512)
消息认证码 HMAC
数字签名 Ed25519, RSASSA-PSS, ECDSA, Falcon
熵源 Linux, macOS /dev/urandom,
Windows CryptGenRandom()
对称算法 AES-256-GCM, AES-256-CBC
加密方案 PBES2
椭圆曲线 Ed25519, Curve25519, secp256R1
后量子密码学 Falcon, Round5

库:PHE

密码强化加密 (PHE) 协议 的密码学背景,该协议为开发者提供保护用户密码免受离线攻击的技术,即使您的数据库已遭入侵,被盗密码也将变得无用。该服务的实现可以在以下链接找到:这里

库:Pythia

Pythia PRF 服务 的密码学背景。

库:Ratchet

双向密钥算法 的实现。

平台和语言

平台 语言/二进制文件
基础 全部 CSwiftJavaJSPythonGoPHP
pythia Linux、macOS CSwiftJavaJSPythonGoPHP
phe 全部 CPHPJavaJSPythonGoPHP
ratchet 全部 CSwiftJavaJSPythonGo

从源代码构建

先决条件

  • 编译器
    • gcc(版本 >= 4.8.2),或
    • clang(版本 >= 3.6),或
    • msvc(版本 >= 14.0)
  • 构建工具
    • cmake(版本 >= 3.12)
    • python(版本 >= 3)
    • python-protobuf

构建和安装

git clone https://github.com/VirgilSecurity/virgil-crypto-c.git
cd virgil-crypto-c
cmake -Bbuild -H.
cmake --build build
cmake --build build --target install

运行基准测试

cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_BENCHMARKING=ON \
      -DED25519_AMD64_RADIX_64_24K=ON -DED25519_REF10=OFF \
      -Bbuild -H.

cmake --build build -- -j10

./build/benchmarks/foundation/bench

支持

我们的开发者支持团队在此为您提供帮助。

您可以在Twitter上找到我们,或发送电子邮件至[email protected]

此外,您还可以在我们的Slack社区获得支持团队的帮助。

许可

BSD 3-Clause。有关详细信息,请参阅LICENSE