Popularity
0.6
Growing
Activity
1.6
Growing
4
1
0

Programming language: Go
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

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