https://github.com/prongbang/lazynacl
End-to-End Encryption an wrapper for Nacl in golang.
https://github.com/prongbang/lazynacl
Last synced: 6 months ago
JSON representation
End-to-End Encryption an wrapper for Nacl in golang.
- Host: GitHub
- URL: https://github.com/prongbang/lazynacl
- Owner: prongbang
- License: mit
- Created: 2024-04-06T19:16:39.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-02T13:43:11.000Z (9 months ago)
- Last Synced: 2025-03-25T22:52:06.165Z (7 months ago)
- Language: Go
- Homepage:
- Size: 9.77 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lazynacl
End-to-End Encryption an wrapper for Nacl in golang.
[](https://goreportcard.com/report/github.com/prongbang/lazynacl)
[](https://www.buymeacoffee.com/prongbang)
### Algorithm details
- Key exchange: X25519
- Encryption: XSalsa20
- Authentication: Poly1305### Install
```
go get github.com/prongbang/lazynacl
```### Benchmark
```shell
BenchmarkLazyNacl_Encrypt-10 27480 42659 ns/op
BenchmarkLazyNacl_Decrypt-10 28411 42298 ns/op
BenchmarkLazyNacl_EncryptPrecompute-10 28120 42594 ns/op
BenchmarkLazyNacl_DecryptPrecompute-10 28603 42268 ns/op
```### How to use
- Create KeyPair
```go
keyPair := lazynacl.NewKeyPair()
```- Key Exchange
```go
clientKp := lazynacl.NewKeyPair()
serverKp := lazynacl.NewKeyPair()
clientSharedKey := lazynacl.KeyPair{
Pk: serverKeyPair.Pk,
Sk: clientKeyPair.Sk,
}
serverSharedKey := lazynacl.KeyPair{
Pk: clientKeyPair.Pk,
Sk: serverKeyPair.Sk,
}
```- Encrypt
```go
plaintext := `Plaintext`
ciphertext, err := lazynacl.EncryptPrecompute(plaintext, clientSharedKey)
```- Decrypt
```go
ciphertext := "ae76477791140129a083a09ff68d5b10460f125c9affdefff48d52d30d774a7c3f42f364ea581eb9b114a65cdbf535171a"
plaintext, err := lazyEzee.DecryptPrecompute(ciphertext, serverSharedKey)
```