All Projects → VirgilSecurity → virgil-crypto

VirgilSecurity / virgil-crypto

Licence: other
Virgil Crypto is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant. Crypto Library is written in C++, suitable for mobile and server platforms and supports bindings with: Swift, Obj-C, Java (Android), С#/.NET, …

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
SWIG
194 projects
shell
77523 projects
c
50402 projects - #5 most used programming language
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to virgil-crypto

virgil-crypto-javascript
Virgil JavaScript Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.
Stars: ✭ 31 (-58.11%)
Mutual labels:  hipaa, e2ee, gdpr, end-to-end-encryption
virgil-sdk-x
Virgil Core SDK allows developers to get up and running with Virgil Cards Service API quickly and add end-to-end security to their new or existing digital solutions to become HIPAA and GDPR compliant and more.
Stars: ✭ 27 (-63.51%)
Mutual labels:  hipaa, gdpr, end-to-end-encryption
Virgil Crypto Php
Virgil PHP Crypto Library is a high-level cryptographic library that allows you to perform all necessary operations for secure storing and transferring data and everything required to become HIPAA and GDPR compliant.
Stars: ✭ 22 (-70.27%)
Mutual labels:  crypto, gdpr, end-to-end-encryption
virgil-sdk-cpp
Virgil Core SDK allows developers to get up and running with Virgil Cards Service API quickly and add end-to-end security to their new or existing digital solutions to become HIPAA and GDPR compliant and more.
Stars: ✭ 18 (-75.68%)
Mutual labels:  hipaa, gdpr, end-to-end-encryption
onepile
Playground for the future of private notes and document management
Stars: ✭ 41 (-44.59%)
Mutual labels:  crypto, e2ee, end-to-end-encryption
Capillary
Capillary is a library to simplify the sending of end-to-end encrypted push messages from Java-based application servers to Android clients.
Stars: ✭ 445 (+501.35%)
Mutual labels:  crypto, end-to-end-encryption
Kbfs
Keybase Filesystem (KBFS)
Stars: ✭ 1,218 (+1545.95%)
Mutual labels:  crypto, end-to-end-encryption
Demo Twilio Backend Nodejs
A sample backend that demonstrates how to generate a Virgil JWT and Twilio token used for authentication with the Virgil and Twilio services
Stars: ✭ 128 (+72.97%)
Mutual labels:  crypto, end-to-end-encryption
open-pryv.io
open source version of Pryv.io
Stars: ✭ 106 (+43.24%)
Mutual labels:  hipaa, gdpr
TeleType
Stream or share terminals over the web. Show off mad cli-fu, help a colleague, teach, or troubleshoot. end-to-end encrypted 🛡
Stars: ✭ 83 (+12.16%)
Mutual labels:  e2ee, end-to-end-encryption
parse-hipaa
HIPAA & GDPR compliant ready parse-server with postgres/mongo, parse-hipaa-dashboard. Compatible with ParseCareKit
Stars: ✭ 74 (+0%)
Mutual labels:  hipaa, gdpr
Lynis
Lynis - Security auditing tool for Linux, macOS, and UNIX-based systems. Assists with compliance testing (HIPAA/ISO27001/PCI DSS) and system hardening. Agentless, and installation optional.
Stars: ✭ 9,137 (+12247.3%)
Mutual labels:  hipaa, gdpr
Prowler
Prowler is a security tool to perform AWS security best practices assessments, audits, incident response, continuous monitoring, hardening and forensics readiness. It contains more than 200 controls covering CIS, ISO27001, GDPR, HIPAA, SOC2, ENS and other security frameworks.
Stars: ✭ 4,561 (+6063.51%)
Mutual labels:  hipaa, gdpr
piping-chat-web
💬 Chat via Piping Server with End-to-End Encryption
Stars: ✭ 22 (-70.27%)
Mutual labels:  e2ee, end-to-end-encryption
demo-firebase-ios
[DEPRECATED] See https://github.com/VirgilSecurity/demo-e3kit-ios and https://github.com/VirgilSecurity/virgil-e3kit-firebase-func for up-to-date code. -- A simple iOS application that demonstrates how the end-to-end encryption works. The application uses firebase as a backend service for authentication and chat messaging.
Stars: ✭ 39 (-47.3%)
Mutual labels:  e2ee, end-to-end-encryption
piping-vnc-web
VNC over pure HTTPS via Piping Server on Web browser
Stars: ✭ 57 (-22.97%)
Mutual labels:  e2ee, end-to-end-encryption
Awesome Virgil
Key Management and Crypto Building Block for your App or Device.
Stars: ✭ 146 (+97.3%)
Mutual labels:  gdpr, end-to-end-encryption
termpair
View and control terminals from your browser with end-to-end encryption 🔒
Stars: ✭ 1,390 (+1778.38%)
Mutual labels:  e2ee, end-to-end-encryption
havengrc
☁️Haven GRC - easier governance, risk, and compliance 👨‍⚕️👮‍♀️🦸‍♀️🕵️‍♀️👩‍🔬
Stars: ✭ 83 (+12.16%)
Mutual labels:  hipaa, gdpr
bloom-legacy
End-to-end encrypted Notes, Files, Calendar, Contacts... for Android, IOS, Linux & MacOS - DEPRECATED
Stars: ✭ 44 (-40.54%)
Mutual labels:  e2ee, end-to-end-encryption

Build Status GitHub license Documentation Developers

Library: Virgil Crypto

Library features | Supported algorithms | Build | Benchmark | Docs | Support

Introduction

Welcome to Virgil Security!

Virgil Security guides software developers into the forthcoming security world in which everything will be encrypted (and passwords will be eliminated). In this world, the days of developers having to raise millions of dollars to build a secure chat, secure email, secure file-sharing, or a secure anything have come to an end. Now developers can instead focus on building features that give them a competitive market advantage while end-users can enjoy the privacy and security they increasingly demand.

Virgil Security offers this security via a stack of security libraries (ECIES with Crypto Agility wrapped in Virgil Cryptogram) and all the necessary infrastructure to enable seamless, end-to-end encryption for any application, platform or device. End-to-end encryption can be used for a variety of important reasons: compliance with regulations like HIPAA and GDPR, the transfer and storage of PII, general user privacy as a feature, breach risk mitigation and more. Virgil Crypto also has all required cryptographic functions and primitives to perform an implementation of Pythia technology.

See below for currently available languages and platforms. Get in touch with us to get beta access to our Key infrastructure.

Library Features

Supported crypto operations

  • Generate keys;
  • Encrypt data;
  • Decrypt data;
  • Sign data;
  • Verify data;
  • Pythia protocol.

Supported platforms

Crypto Library is suitable for the following platforms:

  • Desktop (Windows, Linux, MacOS);
  • Mobile (iOS, Android, watchOS, tvOS);
  • Web (WebAssembly, AsmJS)

Supported languages

Crypto Library is written in C++ [CDN] and supports bindings for the following programming languages:

Swift/Objective_C language can use the Virgil Crypto Library directly, without any bind.

Available Wrappers

Virgil also has special wrappers for simplifying Crypto Library implementation in your digital solutions. We support wrappers for the following programming languages:

Supported algorithms

Purpose Algorithm, Source
Key Generation, PRNG NIST SP 800-90A
Key Derivation KDF2*,
HKDF
Key Exchange X25519*,
ECDH,
RSA
Hashing SHA-2 (256/384*/512),
Blake2
Digital Signature Ed25519*,
ECDSA,
RSASSA-PSS
Entropy Source Linux /dev/urandom,
Windows CryptGenRandom()
Symmetric Algorithms AES GCM*,
AES CBC
Elliptic Curves X25519,
Ed25519*,
Koblitz (secp192k1, secp224k1, secp256k1),
Brainpool (bp256r1, bp384r1, bp512r1),
NIST (secp256r1, secp192r1, secp224r1, secp384r1, secp521r1)

* - used by default.

Build

Prerequisites

The page lists the prerequisite packages which need to be installed on the different platforms to be able to configure and to build Virgil Crypto Library.

  • Compiler:
    • g++ (version >= 4.9), or
    • clang++ (version >= 3.6), or
    • msvc++ (version >= 14.0)
  • Build tools:
    • cmake (version >= 3.10)
    • make
  • Other tools:
    • git
    • swig (version >= 3.0.12), optional for C++ build
    • doxygen (optional)

Build the Library

This section describes how to build Virgil Crypto Library for а particular OS.

Step 1 - Get source code

  • Open Terminal.
  • Get the source code:
> git clone https://github.com/VirgilSecurity/virgil-crypto.git

Step 2 - Run a build Script

Unix-like OS:

> cd virgil-crypto
> ./utils/build.sh

Windows OS:

> cd virgil-crypto
> ./utils/build.bat

Run the build script with the option -h to get help on how to build a library for a necessary OS, Platforms or languages.

Build command has the following syntax:

 ./utils/build.sh [--target=<target>] [--feature=<feature>] [--src=<src_dir>] [--build=<build_dir>] [--install=<install_dir>]

where the command options are:

  • <target> - (default = cpp) target to build which contains two parts <name>[-<version>], where <name>:
<name> build information
cpp build C++ library
macos build framework for Apple macOSX, requirements: OS X, Xcode
ios build framework for Apple iOS, requirements: OS X, Xcode
watchos build framework for Apple WatchOS, requirements: OS X, Xcode
tvos build framework for Apple TVOS, requirements: OS X, Xcode
php build PHP library, requirements: php-dev
python build Python library
ruby build Ruby library
java build Java library, requirements: $JAVA_HOME
java_android build Java library under Android platform, requirements: $ANDROID_NDK
net build .NET library, requirements: .NET or Mono
net_macos build .NET library under Apple macOSX platform, requirements: Mono, OS X, Xcode
net_ios build .NET library under Apple iOS platform, requirements: Mono, OS X, Xcode
net_applewatchos build .NET library under WatchOS platform, requirements: Mono, OS X, Xcode
net_appletvos build .NET library under TVOS platform, requirements: Mono, OS X, Xcode
net_android build .NET library under Android platform, requirements: Mono, $ANDROID_NDK
asmjs build AsmJS library, requirements: $EMSDK_HOME
webasm build WebAssembly library, requirements: $EMSDK_HOME
nodejs build NodeJS module
go build Golang library
  • <feature> - available features:
    • pythia - ask to enable feature Pythia. Some targets enable this feature by default.
  • <src_dir> - a path to the directory where a root CMakeLists.txt file is located (default = .).
  • <build_dir> - a path to the directory where temp files will be stored (default = build/<target>).
  • <install_dir> - a path to the directory where library files will be installed (default = install/<target>).

All available Crypto Library versions you can find here.

Benchmark

You can find out benchmark of the Crypto Library in the benchmark.md file.

Docs

We always try to make cryptography accessible for programmers, and the documentation below can get you started today.

Support

Our developer support team is here to help you. Find out more information on our Help Center.

You can find us on Twitter or send us email [email protected].

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

License

BSD 3-Clause. See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].