https://github.com/prongbang/lazyxsalsa
Lazy XSalsa20-Poly1305 in golang base on libsodium
https://github.com/prongbang/lazyxsalsa
Last synced: 3 months ago
JSON representation
Lazy XSalsa20-Poly1305 in golang base on libsodium
- Host: GitHub
- URL: https://github.com/prongbang/lazyxsalsa
- Owner: prongbang
- License: mit
- Created: 2023-09-22T17:55:14.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-09T14:23:31.000Z (over 1 year ago)
- Last Synced: 2025-07-01T02:48:06.984Z (3 months ago)
- Language: Go
- Homepage:
- Size: 9.77 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lazyxsalsa
Lazy XSalsa20-Poly1305 in golang base on libsodium.
[](https://goreportcard.com/report/github.com/prongbang/lazyxsalsa)
[](https://www.buymeacoffee.com/prongbang)
### Algorithm details
- Key exchange: X25519
- Encryption: XSalsa20
- Authentication: Poly1305### Install
```
go get github.com/prongbang/lazyxsalsa
```### Benchmark
```shell
BenchmarkEncrypt-10 35792 33285 ns/op
BenchmarkDecrypt-10 36526 32821 ns/op
```### How to use
- Create KeyPair
```go
keyPair := lazyxsalsa.NewKeyPair()
```- Key Exchange
```go
clientKp := lazyxsalsa.NewKeyPair()
serverKp := lazyxsalsa.NewKeyPair()
clientSharedKey := clientKp.Exchange(serverKp.Pk)
serverSharedKey := serverKp.Exchange(clientKp.Pk)
```- Encrypt
```go
lazyXsalsa := lazyxsalsa.New()plaintext := `Plaintext`
ciphertext, err := lazyXsalsa.Encrypt(plaintext, clientSharedKey)
```- Decrypt
```go
lazyXsalsa := lazyxsalsa.New()ciphertext := "ae76477791140129a083a09ff68d5b10460f125c9affdefff48d52d30d774a7c3f42f364ea581eb9b114a65cdbf535171a"
plaintext, err := lazyXsalsa.Decrypt(ciphertext, serverSharedKey)
```