<div dir="auto"><br><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Tue, Apr 21, 2020, 12:40 AM John Ohno <<a href="mailto:john.ohno@gmail.com">john.ohno@gmail.com</a>> wrote:</div><div dir="ltr" class="gmail_attr"><...></div></div><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Fully independent implementations are under development, but they're difficult because the protocol as defined involves cryptographically signing sections of regular JSON -- which, of course, has no defined order for objects. This means that in practice, the SSB protocol is not standard JSON plus signatures, but the entire set of nodejs JSON serialization quirks. In order to implement it in another language, you have to duplicate exactly the ordering produced by nodejs, or else old messages will not be interpreted as valid by your implementation and the messages produced by your implementation will not be interpreted as valid by competing implementations. Ultimately, this means that if you want a full-featured SSB client, you're stuck with an electron app (with all the attendant bloat and memory leaks).</div></div></blockquote></div><div dir="auto"><br></div><div dir="auto">It sounds like the protocol is a little complicated under the hood?</div><div dir="auto"><br></div><div dir="auto">Do you know why the order of serialized content matters when it is only being signed and not encrypted?</div><div class="gmail_quote" dir="auto"></div></div>