Virgil Security Crypto Library for C
分支 | 构建 |
---|---|
master | |
开发 |
介绍
此库旨在为多种加密算法提供一个小巧、灵活且方便的包装。因此,它既可用于微控制器,也可用于高负载服务器应用程序。它还提供了几种自定义混合算法,将这些不同的加密算法结合起来,以简单的方式解决常见复杂的加密问题。这消除了开发者对强大加密技能的要求。
此库适用于不同的平台,并包含其他语言的包装器。
功能
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, Mac OS | 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。