[Standards] OMEMO Key Agreement

Sam Whited sam at samwhited.com
Wed May 31 20:43:32 UTC 2017


On Wed, May 31, 2017 at 2:59 PM, Dave Cridland <dave at cridland.net> wrote:
> But you did copy, amongst possibly other things, a constant-time
> conditional-swap routine, along with the comments, from the
> "additional" directory of a GPL library, so I can only assume that
> copyright law works an entirely different way in this parallel
> universe. Is it like patents in my universe, where a defence is that
> the invention is obvious to one skilled in the art? We don't have that
> defence for copyright in my universe.


Yes, I copied their cmov implementation. This is a basic operation
that be found in other libraries and will always look roughly the
same; there are only so many ways to write a+b. In fact, an
implementation for a different data type was already in the Go library
(https://github.com/golang/crypto/blob/master/ed25519/internal/edwards25519/edwards25519.go#L61),
so I could have just as easily copied that and it would have come out
the same, or copied the ref10 implementation (which that function was
adapted from) for fieldelements which is the same thing (but for an
array over a struct), which is probably what OWS did. Or just gone on
wikipedia, I'm sure they have pseudocode for a conditional register
swap that I could have stuck in a loop. OWS did not invent or even
really implement this; it's just what the operation looks like.

—Sam


More information about the Standards mailing list