Skip to content

reshsix/libmaid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Cryptography Library for Maids

Status

Version: 1.4 alpha

Category Algorithms
Encoding schemes Base16, Base32, Base64
Block ciphers AES
Block cipher modes EBC, CTR
Stream ciphers Chacha20
Message authentication codes Poly1305, HMAC, BLAKE2
AEAD structures AES-GCM, Chacha20Poly1305
Random number generators CTR-DRBG-AES
Hash functions SHA-1, SHA-2, BLAKE2
Key derivation functions PBKDF2
Assymetric primitives RSA, ECC
Elliptic curves Edwards25519
Public-key encodings PEM, DER
Public key structures PKCS#1, SPKI, PKCS#8
Digital signatures RSA-PKCS#1 (v1.5), Ed25519
Key-exchange methods Diffie-Hellman

Warnings

  • AES is currently implemented using LUT, so it might be vulnerable to cache-timing attacks
  • RSA and ECC are currently implemented without a cswap, so they might be vulnerable to branch-prediction attacks

Instructions

Requirements

A C99 compiler

Build

Files are created in build

make
build/maid test

Installation

Files are placed in /usr/local

sudo make install
sudo ldconfig

Usage

The library can be linked with -lmaid, and a command-line tool maid is available

Reference

General Symmetric Asymmetric
Type aliases Block ciphers RSA algorithm
Memory utils Stream ciphers Elliptic curves
Multiprecision MACs PEM format
AEADs ASN1 format
CSPRNGs SPKI structure
Hash functions PKCS#8 structure
Password hashing Digital signatures
Key exchange