simplified crypto module using go crypto library. We are not implementing any crypto algorithms on our own but taking it from NIST approved implementation and providing an easy interface to use them.
go get github.com/priyanshujain/crypto
- perform tests
make test
- produces coverage
make cover
- run go vet linter
make lint
-
cipher: It includes both symmetric(AES) and asymmetric(RSA) key encryption.
-
signature: It includes signature algorithms like HMAC, RSA etc.
-
hash: It has common hash functions including SHA1 and SHA256.
-
Keystore: It implements key store and key generation for common cryptographic algorithms.
It support the following modes of operations
- CBC (https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_block_chaining_(CBC))
- CTR (https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Counter_(CTR))
- CFB (https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher_feedback_(CFB))
and the following padding schemes
It supports the following encryption schemes
- PKCS1 (https://datatracker.ietf.org/doc/html/rfc3447)
- OAEP (https://en.wikipedia.org/wiki/Optimal_asymmetric_encryption_padding)
It supports the following signature schemes
- PKCS1 (https://en.wikipedia.org/wiki/PKCS_1)
- PSS (https://en.wikipedia.org/wiki/Probabilistic_signature_scheme)
- It uses pem format for all public key infrastructure.