Popularity
0.5
Stable
Activity
0.0
Stable
4
1
0

Programming language: Go
License: MIT License
Tags: Math     Science And Data Analysis     Algorithms     RNG    
Latest version: v0.2.3

gobbs alternatives and similar packages

Based on the "Science and Data Analysis" category.
Alternatively, view gobbs alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of gobbs or a related project?

Add another 'Science and Data Analysis' Package

README

gobbs

Build Status Go Report Card Godoc

A Blum-Blum-Shub-Generator in Go.

Status

Testing

Usage

Create a new generator with default config:

import "github.com/tsdtsdtsd/gobbs"

g, err := gobbs.New()

New() will generate two random blum primes, a blum integer and a random seed. If you want to use your own numbers from an other source, you can use NewWithConfig():

g, err := gobbs.NewWithConfig(&gobbs.Config{
    PrimeP: myPrimeOne,
    PrimeQ: myPrimeTwo,
    Seed: mySeed,
    Bits: 1024,
})

The generator implements io.Reader:

buf := make([]byte, 1)

for {
    g.Read(buf)
    fmt.Printf("%02x.", buf)
}

Benchmarks

bits = 1024
readLength = 512

> go test -bench=. -benchmem -count 3
goos: windows
goarch: amd64
pkg: github.com/tsdtsdtsd/gobbs
BenchmarkInit-8               10         298040350 ns/op         2540071 B/op       8105 allocs/op
BenchmarkInit-8                3         399833433 ns/op         3571288 B/op      11109 allocs/op
BenchmarkInit-8                5         297086520 ns/op         2594611 B/op       8185 allocs/op
BenchmarkRead-8               50          37528676 ns/op         9440499 B/op      16393 allocs/op
BenchmarkRead-8               50          37291990 ns/op         9440641 B/op      16394 allocs/op
BenchmarkRead-8               50          38036620 ns/op         9440500 B/op      16393 allocs/op
PASS
ok      github.com/tsdtsdtsd/gobbs      13.857s

Credits

Heavily inspired by (basically a port of) https://github.com/foolean/blum-blum-shub