shamirsecretsharing/wasm/shamirsecretsharing-wasm-wrapper.go
wasm/shamirsecretsharing-wasm-wrapper.goRaw
1package main
2
3import (
4 "math/big"
5 "syscall/js"
6
7 "github.com/arnaucube/shamirsecretsharing"
8)
9
10func main() {
11 c := make(chan struct{}, 0)
12
13 println("WASM Go Initialized")
14 // register functions
15 registerCallbacks()
16 <-c
17}
18
19func registerCallbacks() {
20 js.Global().Set("createShares", js.ValueOf(createShares))
21 js.Global().Set("lagrangeInterpolation", js.ValueOf(lagrangeInterpolation))
22}
23
24func createShares(i []js.Value) {
25 nNeededShares, ok := new(big.Int).SetString(i[0].String(), 10)
26 if !ok {
27 println("error parsing parameter in position 0")
28 }
29 nShares, ok := new(big.Int).SetString(i[1].String(), 10)
30 if !ok {
31 println("error parsing parameter in position 1")
32 }
33 p, ok := new(big.Int).SetString(i[2].String(), 10)
34 if !ok {
35 println("error parsing parameter in position 2")
36 }
37 k, ok := new(big.Int).SetString(i[3].String(), 10)
38 if !ok {
39 println("error parsing parameter in position 3")
40 }
41 shares, err := shamirsecretsharing.Create(nNeededShares, nShares, p, k)
42 if err != nil {
43 println("error generating the shares")
44 }
45 println(shares)
46}
47
48func lagrangeInterpolation(i []js.Value) {
49}