VirgilCryptoFoundation 0.17.1

VirgilCryptoFoundation 0.17.1

Sergey SeroshtanSanjoDeundiakOleksandr DeundiakEvgenyEvgeny维护。



 
依赖关系
VSCCrypto/Common= 0.17.1
VSCCrypto/Foundation= 0.17.1
 

  • Virgil Security

License

Virgil Security Crypto Library for C

分支 构建
master Build Status
develop Build Status

简介

此库旨在为各种加密算法提供一个小型、灵活且方便的包装器。因此,它既可用于小型微控制器,也可用于高负载服务器应用程序。它还提供了几种自定义混合算法,将不同的加密算法结合起来,以简单的方式解决常见的复杂加密问题。这消除了开发者需要对加密技能有深厚理解的必要性。

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

功能

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

库:基础库

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

算法 Purpose 实现细节
密钥生成,伪随机数生成器(PRNG) Ctr_DRBG NIST SP 800-90A
密钥派生 KDF1, KDF2HKDFPBKDF2
密钥交换 X25519RSAECDH
密钥封装机制 Round5,ECIES-KEM
哈希函数 SHA-2 (224/256/384/512)
消息认证码(MAC) HMAC
数字签名 Ed25519RSASSA-PSSECDSAFalcon
熵源 Linux,macOS /dev/urandom
Windows CryptGenRandom()
对称算法 AES-256-GCMAES-256-CBC
加密方案 PBES2
椭圆曲线 Ed25519Curve25519secp256R1
后量子密码学 FalconRound5

库: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 了解详细信息。