Sha256: 7359c01cd5cadec5249dbc08b90093a8ce0a832f8b3e48d885617d8a11494073

Contents?: true

Size: 648 Bytes

Versions: 177

Compression:

Stored size: 648 Bytes

Contents

package diffiehellman

import (
	"math/big"
	"math/rand"
	"time"
)

const testVersion = 1

var r = rand.New(rand.NewSource(time.Now().Unix()))
var two = big.NewInt(2)

func PrivateKey(p *big.Int) *big.Int {
	private := new(big.Int).Sub(p, two)
	return private.Add(two, private.Rand(r, private))
}

func PublicKey(private, p *big.Int, g int64) *big.Int {
	return new(big.Int).Exp(big.NewInt(g), private, p)
}

func NewPair(p *big.Int, g int64) (private, public *big.Int) {
	private = PrivateKey(p)
	return private, PublicKey(private, p, g)
}

func SecretKey(private1, public2, p *big.Int) *big.Int {
	return new(big.Int).Exp(public2, private1, p)
}

Version data entries

177 entries across 177 versions & 1 rubygems

Version Path
trackler-2.2.0.3 tracks/go/exercises/diffie-hellman/example.go
trackler-2.2.0.2 tracks/go/exercises/diffie-hellman/example.go
trackler-2.2.0.1 tracks/go/exercises/diffie-hellman/example.go
trackler-2.2.0.0 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.55 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.54 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.53 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.52 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.51 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.50 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.49 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.48 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.47 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.46 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.45 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.44 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.43 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.42 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.41 tracks/go/exercises/diffie-hellman/example.go
trackler-2.1.0.40 tracks/go/exercises/diffie-hellman/example.go