Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rogercoll/rsignatures
Ring Signatures implementation in Go
https://github.com/rogercoll/rsignatures
golang ring-signatures rsa
Last synced: about 2 months ago
JSON representation
Ring Signatures implementation in Go
- Host: GitHub
- URL: https://github.com/rogercoll/rsignatures
- Owner: rogercoll
- Created: 2021-05-04T13:40:32.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-09-14T14:28:43.000Z (over 2 years ago)
- Last Synced: 2024-11-29T21:45:13.942Z (about 2 months ago)
- Topics: golang, ring-signatures, rsa
- Language: Go
- Homepage:
- Size: 15.6 KB
- Stars: 3
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![Test](https://github.com/rogercoll/rsignatures/actions/workflows/test.yml/badge.svg)](https://github.com/rogercoll/rsignatures/actions/workflows/test.yml)
# Ring Signatures**Experimental library: use it at your own risk**
*In cryptography, a ring signature is a type of digital signature that can be performed by any member of a group of users that each have keys. Therefore, a message signed with a ring signature is endorsed by someone in a particular group of people. One of the security properties of a ring signature is that it should be computationally infeasible to determine which of the group members' keys was used to produce the signature.* - [Moneropedia](https://www.getmonero.org/resources/moneropedia/ringsignatures.html)
## Status
- [x] RSA
- [ ] Elliptic curves => TODO(https://github.com/baro77/RingsCS)## Usage (example)
```go
...
//Create RSA ring
rsaRing := rsignatures.NewRSARing(partyKeys, signerKey)
seed, sig, err := rsaRing.Sign([]byte("hello"), signerRound)
if err != nil {
log.Fatal(err)
}//Verify signature
log.Println(rsaRing.Verify([]byte("hello"), seed, sig))
...
```Full [example](cmd/main.go).