README.md 1.43 KB
Newer Older
1
[![Build Status](https://travis-ci.com/crylib/cry.svg?branch=master)](https://travis-ci.com/crylib/cry)
Davide Galassi's avatar
Davide Galassi committed
2
[![Coverage Status](https://coveralls.io/repos/github/crylib/cry/badge.svg?branch=master)](https://coveralls.io/github/crylib/cry?branch=master)
3

4 5
CRY(T_T)
========
davxy's avatar
davxy committed
6

davxy's avatar
davxy committed
7 8 9 10 11 12
A small crypto library.


Multiple precision integers
---------------------------

davxy's avatar
davxy committed
13
- Basic arithmentic (add,sub,mul,div,mod,abs,exp,sqr)
davxy's avatar
davxy committed
14 15 16 17 18
- Modular exponentiation
- Modular inverse (Euclidean)
- GCD and LCM
- Probabilistic prime numbers generator (Miller-Rabin)
- Random mpi generator
davxy's avatar
davxy committed
19

davxy's avatar
davxy committed
20

davxy's avatar
davxy committed
21 22 23 24
Symmetric ciphers
-----------------

### Block ciphers
25 26

- AES
davxy's avatar
davxy committed
27
- DES and Triple DES
28 29 30 31 32

### Block cipher mode of operation

- ECB
- CBC
davxy's avatar
davxy committed
33
- GCM
davxy's avatar
davxy committed
34
- CTR
35

davxy's avatar
davxy committed
36 37 38 39 40

Public key algorithms
---------------------

### Ciphers
davxy's avatar
davxy committed
41 42 43

- RSA (PKCS#1 v1.5)

davxy's avatar
davxy committed
44 45
### Secret exchange

davxy's avatar
davxy committed
46 47
- Diffie-Hellman (DH)
- ECDH
davxy's avatar
davxy committed
48

49 50 51 52 53 54
### Digital signature

- RSA (PKCS#1 v1.5)
- DSA
- ECDSA

davxy's avatar
davxy committed
55

davxy's avatar
davxy committed
56 57 58 59 60 61 62
Elliptic Curve
--------------

- Basic arithmetic (add,dbl,mul)
- Load of NIST-P256 EC parameters


davxy's avatar
davxy committed
63 64 65
Pseudo random numbers generators
--------------------------------

66
- OS agnostic CSPRNG with AES-CTR
davxy's avatar
davxy committed
67 68 69
- Weak portable PRNG
- Posix CSPRNG (using '/dev/urandom')
- Windows CSPRNG (using 'CryptGenRandom')
davxy's avatar
davxy committed
70

davxy's avatar
davxy committed
71 72 73 74
Message authentication code
---------------------------

- CMAC
davxy's avatar
davxy committed
75
- HMAC
davxy's avatar
davxy committed
76

davxy's avatar
davxy committed
77

davxy's avatar
davxy committed
78 79 80 81 82 83 84 85 86 87 88
Hash
----

### Cryptographic hash

- MD5
- SHA-256

### CRC

- CRC16-CCITT
89
- CRC16-IBM
davxy's avatar
davxy committed
90
- CRC32-Ethernet
davxy's avatar
davxy committed
91

davxy's avatar
davxy committed
92 93 94 95 96
### Checksums

- LRC
- 8-bit trivial checksum

davxy's avatar
davxy committed
97

98 99 100 101 102
Utilities
---------

- Base64 encoder/decoder