这是indexloc提供的服务,不要输入任何密码
Skip to content

This library is designed to be small, flexible and convenient wrapper for a variety crypto algorithms. So it can be used in a small micro controller as well as in a high load server application.

License

Notifications You must be signed in to change notification settings

VirgilSecurity/virgil-crypto-c

Repository files navigation

License

Virgil Security Crypto Library for C

branch build
master Build Status
develop Build Status

Introduction

This library is designed to be a small, flexible and convenient wrapper for a variety of crypto algorithms. So it can be used in a small microcontroller as well as in a high load server application. Also, it provides a bunch of custom hybrid algorithms that combine different crypto algorithms to solve common complex cryptographic problems in an easy way. That eliminates requirement for developers to have a strong cryptographic skills.

The library is available for different platforms and contains wrappers for other languages.

Features

Virgil Security Crypto C library is decomposed to small libraries with specific purposes, so a developer can freely choose a subset of them.

Library: Foundation

This library contains basic cryptographic algorithms and can be used as building blocks for complex solutions.

Algorithm Purpose Implementation details
Key Generation, PRNG CTR_DRBG NIST SP 800-90A
Key Derivation KDF1, KDF2, HKDF, PBKDF2
Key Exchange X25519, RSA, ECDH
Hashing SHA-2 (224/256/384/512)
Message Authentication Code HMAC
Digital Signature Ed25519, RSASSA-PSS, ECDSA
Entropy Source Linux, macOS /dev/urandom,
Windows CryptGenRandom()
Symmetric Algorithms AES-256-GCM, AES-256-CBC
Encryption schemes PBES2
Elliptic Curves Ed25519, Curve25519, secp256R1

Library: PHE

Cryptographic background for the Password-Hardened Encryption (PHE) protocol that provides developers with a technology to protect users passwords from offline attacks and make stolen passwords useless even if your database has been compromised. Service implementation can be found here.

Library: Pythia

Cryptographic background for the Pythia PRF Service.

Library: Ratchet

Implementation of the Double Ratchet Algorithm.

Platforms & languages

Library Platforms Languages / Binaries
foundation all C, Swift, Java
pythia linux, macOS C, Swift, Java
phe all C, PHP, Java
ratchet all C, Swift, Java

Build from sources

Prerequisites

  • Compiler:
    • gcc (version >= 4.8.2), or
    • clang (version >= 3.6), or
    • msvc (version >= 14.0)
  • Build tools:
    • cmake (version >= 3.11)
    • python (version >= 2.7)
    • python-protobuf

Build & Install

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

Support

Our developer support team is here to help you.

You can find us on Twitter or send us email support@VirgilSecurity.com.

Also, get extra help from our support team on Slack.

License

BSD 3-Clause. See LICENSE for details.

About

This library is designed to be small, flexible and convenient wrapper for a variety crypto algorithms. So it can be used in a small micro controller as well as in a high load server application.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 17