This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-08-29
Channels
- # admin-announcements (2)
- # beginners (20)
- # boot (139)
- # cider (6)
- # clara (1)
- # cljs-dev (7)
- # cljsrn (4)
- # clojure (160)
- # clojure-berlin (1)
- # clojure-canada (6)
- # clojure-gamedev (1)
- # clojure-japan (7)
- # clojure-russia (14)
- # clojure-spec (90)
- # clojure-uk (10)
- # clojurescript (73)
- # clojutre (1)
- # conf-proposals (8)
- # crypto (67)
- # cursive (9)
- # datomic (6)
- # editors-rus (1)
- # events (1)
- # figwheel (6)
- # funcool (2)
- # hoplon (19)
- # instaparse (37)
- # kekkonen (4)
- # lein-figwheel (2)
- # leiningen (5)
- # luminus (1)
- # off-topic (1)
- # om (10)
- # onyx (60)
- # protorepl (2)
- # re-frame (81)
- # reagent (10)
- # ring-swagger (15)
- # rum (6)
- # specter (17)
- # test-check (10)
- # uncomplicate (31)
- # untangled (12)
- # yada (6)
Yeah, I want my app to be somewhat decentralized. Users should be able to sign their state and pass it to a third party for processing without necessarily going through my server.
anyway; so I do https://github.com/lvh/caesium
I wonder if you could reasonably test the property you care about (determinism) with test.check
This is cool. Yeah, another reason to go with secp256k1 is that BitCoin already has a proper JNI interface to their library for that curve, which uses GMP to avoid timing attacks...
apropos: my “ECC for programmers” talk that I do (mostly internally) ends with breaking a secp256k1 impl that doesn’t check if points are on the curve correctly 🙂
yeah; sorry; for clarity; that wasn’t a criticism of any software you wrote, just why I don’t like secp256k1
Ah, I don't like it because it's not a safe curve - https://safecurves.cr.yp.to/
(The attack I mentioned is on https://safecurves.cr.yp.to/twist.html)
I want the client to be able to sign updates to their data when they make a delta, like
{:old-hash [245 0 10 ...], :delta <...>, :new-hash [123 23 0 ...]}
Without them necessarily remembering the hashes; so they can remember what they incidentally sent, rather than what they must have sent?
in my case, txns are signed; so I can just go use the actual signature as a reference; I don’t necessarily care about it being reconstitutable from just the data
(I dunno if it helps, but I’m using https://github.com/ptaoussanis/nippy)
test.check might already have something in its ecosystem to produce equal-but-different data structure
Not really, because I have to deal with stuff being in either Clojure or ClojureScript.
Yeah, I probably just need to do the silly canonical transformation thing. I probably could have something that doesn't load the stack up too high with clojure.walk
@lvh Since I'm hashing and flinging deltas around, compression isn't such a big deal...
@lvh One thing that sucks is that ClojureScript falls back on goog.math.Integer
s when deserializing java.math.BigInteger
s, but they aren't actually usable because mulitiplication is broken for them - https://github.com/google/closure-library/pull/741