From 1b183b9a9ec92c16b5cc6fa6a0519e00d59bbf4e Mon Sep 17 00:00:00 2001 From: Zack Scholl Date: Tue, 12 Nov 2019 08:33:46 -0800 Subject: [PATCH] working on pake --- src/croc/croc.go | 2 +- src/webrtc/websend/index.html | 3 +-- src/webrtc/websend/main.go | 5 ++++- src/webrtc/websend/main.wasm | Bin 3799501 -> 3800635 bytes 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/croc/croc.go b/src/croc/croc.go index dd08fd2..878c5c1 100644 --- a/src/croc/croc.go +++ b/src/croc/croc.go @@ -297,7 +297,7 @@ func (c *Client) getPAKE(keepSending bool) (err error) { log.Error(err) return } - + log.Debugf("payload: %s", payload) err = c.Pake.Update(payload) if err != nil { log.Error(err) diff --git a/src/webrtc/websend/index.html b/src/webrtc/websend/index.html index bc9b4be..d757291 100644 --- a/src/webrtc/websend/index.html +++ b/src/webrtc/websend/index.html @@ -124,14 +124,12 @@ } const socketMessageListener = (event) => { - console.log(event.data); var data; if (event.data.includes("Message")) { data = JSON.parse(event.data); } else { data = JSON.parse(atob(event.data)); } - console.log(data); if (data.Message == "pake") { log("processing pake data"); // console.log(pakeData); @@ -142,6 +140,7 @@ "Payload": pakePublic(pakeData), }) } else if (data.Message == "offerer") { + log("i am the offerer") log("offering the first pake"); sendMessage({ "Message": "answerer", diff --git a/src/webrtc/websend/main.go b/src/webrtc/websend/main.go index f4951fb..d76f717 100644 --- a/src/webrtc/websend/main.go +++ b/src/webrtc/websend/main.go @@ -228,7 +228,10 @@ func pakeUpdate(this js.Value, inputs []js.Value) interface{} { if err != nil { return js.Global().Get("Error").New(err.Error()) } - P.Update(Q.Bytes()) + err = P.Update(Q.Bytes()) + if err != nil { + return js.Global().Get("Error").New(err.Error()) + } bJSON, _ := json.Marshal(P) return base64.StdEncoding.EncodeToString(bJSON) } diff --git a/src/webrtc/websend/main.wasm b/src/webrtc/websend/main.wasm index f4490243a1895084841e008cebe6497ff25bbcbe..177a44c5cdb49a26f669a67588bdf36ba7d1d0d3 100755 GIT binary patch delta 32756 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 F;~!eBI5GeL