Update 'README.md'
This commit is contained in:
parent
5c91c496b4
commit
99d0ac7dea
24
README.md
24
README.md
@ -1,4 +1,22 @@
|
||||
# go_chacha20poly1305_openssh
|
||||
# cc20p1305ssh
|
||||
|
||||
A variant of ChaCha20-Poly1305 that OpenSSH uses
|
||||
("chacha20-poly1305@openssh.com").
|
||||
A Golang library variant of ChaCha20-Poly1305 that OpenSSH uses ("chacha20-poly1305@openssh.com").
|
||||
|
||||
Note that this module *only* supports the OpenSSH variant.
|
||||
|
||||
## Why is this necessary?
|
||||
|
||||
Because Golang.org/x/crypto [removes functionality](https://github.com/golang/go/issues/36646) (even for [very common tech](https://github.com/golang/go/issues/44226)) and thinks OpenSSH is a "weird" use case.
|
||||
|
||||
They have no decent support for OpenSSH keys or lower-level operations. And guess what -- sometimes you need lower-level functionality. Who knew?
|
||||
|
||||
## Why don't you expose the rest of ChaCha20/Poly1305/ChaCha20-Poly1305?
|
||||
|
||||
* To keep code light (and thus easier to debug, audit, etc.)
|
||||
* Because otherwise the module name is inaccurate
|
||||
* Because OpenSSH has their own specific variant
|
||||
* Which means we can handle SSH-specific functionality if needed
|
||||
* Because Golang/x/crypto has made it painfully clear that if you want something that deviates from what they think is "best practice", you need to do it yourself
|
||||
|
||||
|
||||
Based on [golang.org/x/crypto/chacha20poly1305](https://pkg.go.dev/golang.org/x/crypto/chacha20poly1305) (source specifically forked from [chacha20poly1305](https://cs.opensource.google/go/x/crypto/chacha20poly1305), [chacha20](https://cs.opensource.google/go/x/crypto/chacha20), and [poly1305](https://cs.opensource.google/go/x/crypto/internal/poly1305])), sliced, diced, and ripped to pieces.
|
||||
|
Loading…
Reference in New Issue
Block a user