Sha256: 8363142bbc3feaa32a04392fd9dafc2dd6b95a2ef438cc3bbcef73d404a4071f

Contents?: true

Size: 401 Bytes

Versions: 396

Compression:

Stored size: 401 Bytes

Contents

module DiffieHellman

open System
open System.Numerics

let random = new Random()

let privateKey (primeP: bigint) = random.Next(1, (int primeP) - 1) |> bigint

let publicKey (primeP: bigint) (primeG: bigint) (privateKey: bigint) = BigInteger.ModPow(primeG, privateKey, primeP)

let secret (primeP: bigint) (publicKey: bigint) (privateKey: bigint) = BigInteger.ModPow(publicKey, privateKey, primeP)

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.179 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.178 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.177 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.176 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.175 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.174 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.173 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.172 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.171 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.170 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.169 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.167 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.166 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.165 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.164 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.163 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.162 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.161 tracks/fsharp/exercises/diffie-hellman/Example.fs
trackler-2.2.1.160 tracks/fsharp/exercises/diffie-hellman/Example.fs