Virgil Security C 密码库
分支 | 构建 |
---|---|
主分支 | |
开发分支 |
介绍
此库设计成一种小型、灵活且方便的包装器,用于各种加密算法。因此,它既可以用于小型微控制器,也可以用于高负载服务器应用程序。此外,它还提供了一些自定义的混合算法,通过结合不同的加密算法,以简单的方式解决常见的复杂密码学问题。这消除了开发者需要具备强大密码学技能的要求。
此库适用于不同的平台,并包含对其他语言的包装器。
功能
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
双向密钥算法 的实现。
平台和语言
库 | 平台 | 语言/二进制文件 |
---|---|---|
基础 | 全部 | C、Swift、Java、JS、Python、Go、PHP |
pythia | Linux、macOS | C、Swift、Java、JS、Python、Go、PHP |
phe | 全部 | C、PHP、Java、JS、Python、Go、PHP |
ratchet | 全部 | C、Swift、Java、JS、Python、Go |
从源代码构建
先决条件
- 编译器
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。