Virgil Security Crypto Library for C
分支 | 构建 |
---|---|
master | |
develop |
简介
此库旨在为各种加密算法提供一个小型、灵活且方便的包装器。因此,它既可用于小型微控制器,也可用于高负载服务器应用程序。它还提供了几种自定义混合算法,将不同的加密算法结合起来,以简单的方式解决常见的复杂加密问题。这消除了开发者需要对加密技能有深厚理解的必要性。
此库适用于不同平台,并包含其他语言的包装器。
功能
Virgil Security Crypto C 库被分解为具有特定目的的小型库。开发者可以自由选择库的子集。
库:基础库
此库包含基本的加密算法,可用作复杂解决方案的构建块。
算法 Purpose | 实现细节 |
---|---|
密钥生成,伪随机数生成器(PRNG) | Ctr_DRBG NIST SP 800-90A |
密钥派生 | KDF1, KDF2,HKDF,PBKDF2 |
密钥交换 | X25519,RSA,ECDH |
密钥封装机制 | Round5,ECIES-KEM |
哈希函数 | SHA-2 (224/256/384/512) |
消息认证码(MAC) | 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
双轮算法(Double Ratchet Algorithm)的实现。
平台和语言
库 | 平台 | 语言/二进制文件 |
---|---|---|
基础 | 全部 | 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 了解详细信息。