sean9999 / go-oracle

A package that provides basic high-level cryptographic functions using Curve25519

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Oracle

go oracle

Oracle is a go library that provides the following cryptographic functions:

  • generate key-pairs
  • encrypt messages
  • decrypt messages
  • sign messages
  • validate messages

Oracle is the basic object that can perform these functions. It also has the concept of a Peer, which is public key. Useful for validating and encrypting.

Keys are Curve25519.

Messages are encrypted using ChaCha20-Poly1305 AEAD. Perfect forward secrecy is assured by making use of one-time ephemeral keys.

This project is heavily inspired by age, especially with respect to cryptographic design.

However, I beleive that Oracle provides the following advantages, making it a better choice in some situations:

  • Simpler API, doing away with unesseary abstractions
  • A simple, standard format for messages (PEM)
  • Package first. Oracle is first and foremost a Go package with a sensible API
  • Do one thing and do it well. The companion binary goracle honours the Linux philosophy by accepting input from stdin and producing output to stdout, unlocking composability.

Oracle also provides a binary called goracle.

About

A package that provides basic high-level cryptographic functions using Curve25519

License:MIT License


Languages

Language:Go 98.0%Language:Makefile 1.8%Language:Shell 0.3%