-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathdoc.go
More file actions
36 lines (34 loc) · 1.52 KB
/
doc.go
File metadata and controls
36 lines (34 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// doc.go -- Documentation for sign & encrypt
//
// (c) 2016 Sudhi Herle <sudhi@herle.net>
//
// Licensing Terms: GPLv2
//
// If you need a commercial license for this work, please contact
// the author.
//
// This software does not come with any express or implied
// warranty; it is provided "as is". No claim is made to its
// suitability for any purpose.
// Package sigtool implements Ed25519 signing, verification, encryption
// and decryption on files.
// It builds upon golang.org/x/crypto/ed25519 by adding methods
// for serializing and deserializing Ed25519 private & public keys.
//
// It can sign and verify very large files - it prehashes the files
// with SHA3 and then signs the SHA3 checksum. The keys and signatures
// are YAML files and so, human readable.
//
// It can encrypt files for multiple recipients - each of whom is identified
// by their Ed25519 public key or their SSH public key. The encryption-scheme
// generates ephmeral Curve25519 keys and creates pair-wise shared secret for
// each recipient of the encrypted file. During encryption, the caller can
// optionally provide their secret key. This has the benefit of authenticating
// the sender. A receiver that knows the sender's public key can verify the
// sender sent signatures.
//
// The sign, verify, encrypt, decrypt operations can use OpenSSH Ed25519 keys
// *or* the keys generated by sigtool. For OpenSSH keys, you can send encrypted
// files to any recipient identified by their comment in `~/.ssh/authorized_keys`.
package sigtool
//go:generate ./gen-proto.sh