All Projects → mirage → Mirage Crypto

mirage / Mirage Crypto

Licence: isc
Cryptographic primitives for MirageOS

Programming Languages

c
50402 projects - #5 most used programming language
ocaml
1615 projects

Projects that are alternatives of or similar to Mirage Crypto

Oscrypto
Compiler-free Python crypto library backed by the OS, supporting CPython and PyPy
Stars: ✭ 257 (+558.97%)
Mutual labels:  cryptography, aes, rsa
Low Latency Android Ios Linux Windows Tvos Macos Interactive Audio Platform
🇸Superpowered Audio, Networking and Cryptographics SDKs. High performance and cross platform on Android, iOS, macOS, tvOS, Linux, Windows and modern web browsers.
Stars: ✭ 1,121 (+2774.36%)
Mutual labels:  cryptography, aes, rsa
Encrypt
🔒 A set of high-level APIs over PointyCastle for two-way cryptography.
Stars: ✭ 199 (+410.26%)
Mutual labels:  cryptography, aes, rsa
Keyshuffling
Keyshuffling Attack for Persistent Early Code Execution in the Nintendo 3DS Secure Bootchain
Stars: ✭ 341 (+774.36%)
Mutual labels:  cryptography, aes
Aes Rsa Java
AES+RSA结合应用java示例
Stars: ✭ 295 (+656.41%)
Mutual labels:  aes, rsa
Goencrypt
go语言封装的各种对称加密和非对称加密,可以直接使用,包括3重DES,AES的CBC和CTR模式,还有RSA非对称加密,ECC椭圆曲线的加密和数字签名
Stars: ✭ 297 (+661.54%)
Mutual labels:  aes, rsa
dtls
Datagram Transport Layer Security (DTLS) client.
Stars: ✭ 72 (+84.62%)
Mutual labels:  aes, rsa
Forge
A native implementation of TLS in Javascript and tools to write crypto-based and network-heavy webapps
Stars: ✭ 4,204 (+10679.49%)
Mutual labels:  cryptography, aes
Gonnacry
A Linux Ransomware
Stars: ✭ 341 (+774.36%)
Mutual labels:  cryptography, aes
Phpseclib
PHP Secure Communications Library
Stars: ✭ 4,627 (+11764.1%)
Mutual labels:  aes, rsa
Swcrypt
RSA public/private key generation, RSA, AES encryption/decryption, RSA sign/verify in Swift with CommonCrypto in iOS and OS X
Stars: ✭ 632 (+1520.51%)
Mutual labels:  aes, rsa
Rsa And Lll Attacks
attacking RSA via lattice reductions (LLL)
Stars: ✭ 482 (+1135.9%)
Mutual labels:  cryptography, rsa
Siv Mode
RFC 5297 SIV mode of operation in Java
Stars: ✭ 22 (-43.59%)
Mutual labels:  cryptography, aes
encryptlab
🔑 Comprehensive (and free) list of encryption and decryption in Node.js.
Stars: ✭ 80 (+105.13%)
Mutual labels:  aes, rsa
Netcore.encrypt
NETCore encrypt and decrpty tool,Include aes,des,rsa,md5,sha1,sha256,sha384,sha512
Stars: ✭ 339 (+769.23%)
Mutual labels:  aes, rsa
dart crypto
[Flutter] 本项目基于flutter_macos_v0.5.8-dev版本采用Dart语言开发。`DYFCryptoProvider`集成了Base64, 32/16 Bits MD5, AES, RSA等算法。(This Flutter project is developed in Dart language based on flutter_macos_v0.5.8-dev. `DYFCryptoProvider` integrates Base64, 32/16 Bits MD5, AES and RSA algorithms.)
Stars: ✭ 30 (-23.08%)
Mutual labels:  aes, rsa
Heimdall
Heimdall is a wrapper around the Security framework for simple encryption/decryption operations.
Stars: ✭ 369 (+846.15%)
Mutual labels:  aes, rsa
Blog Src
Personal blog source.
Stars: ✭ 7 (-82.05%)
Mutual labels:  cryptography, aes
interesting-keys
Interesting collected (leaked) encryption/decryption keys
Stars: ✭ 33 (-15.38%)
Mutual labels:  aes, rsa
vue-apicloud-cli
基于vue的APICloud脚手架
Stars: ✭ 44 (+12.82%)
Mutual labels:  aes, rsa

mirage-crypto - Cryptographic primitives for MirageOS

%%VERSION%%

mirage-crypto is a small cryptographic library that puts emphasis on the applicative style and ease of use. It includes basic ciphers (AES, 3DES, RC4, ChaCha20/Poly1305), hashes (MD5, SHA1, SHA2 family), AEAD primitives (AES-GCM, AES-CCM), public-key primitives (RSA, DSA, DH) and a strong RNG (Fortuna).

RSA timing attacks are countered by blinding. AES timing attacks are avoided by delegating to AES-NI.

Mirage-crypto is a fork of the ocaml-nocrypto written by David Kaloper. It was forked with the permission of the original author in order to facilitate changes (e.g. build system) required by Mirage that the upstream didn't have time to keep up with.

Mirage-crypto-rng embeds the former mirage-entropy opam package, which implements various entropy sources:

  • non-deterministic execution time (used at initial seeding, see the whirlwind RNG paper)
  • a hook into the Lwt event loop that collects a timestamp of each event
  • rdseed and rdrand (x86/x86-64 only)

API documentation online

Build

dune build
dune runtest

FAQ

RNG seeding

If RNG fails with Fatal error: exception Unseeded_generator, you need to seed it.

Lwt:

let () = Mirage_crypto_rng_lwt.initialize ()

Unix:

let () = Mirage_crypto_rng_unix.initialize ()
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].