-
Notifications
You must be signed in to change notification settings - Fork 162
Implement Necessary LibSodium Primitives in Golang #210
Comments
The current primitives we know we need are equivalent to NaCl How we should regression-test these is an open question - do we introduce a testing-only dependency to GoKillers/libsodium-go? Do we accept that these functions are tested on a fork of another repo, and that they won't be broken someday once we begin using them? |
@troyronda assign me |
Looks like we'll need an equivalent to:
For python interop. The secret key conversion is done, but the public key conversion requires elliptic curve arithmetic, which is implemented in |
Found a way to avoid reimplementing ed25519 -> curve25519 key conversion - testing against ACA-Py is the only reason we're working with key conversions, and testcases and keys can be generated in Python, so no key conversion needs to be done in Go. |
Update: key conversion mentioned above was indeed necessary for ACA-Py interop - keys need to be transmitted as Ed255519 keys, and encryption (eg, of CEK) is done using their Curve25519 counterparts. |
Key conversion was implemented in #292 Closing for now, can reopen if we find more primitives are needed. |
For interoperability with related projects (eg, ACA-Py), we need to use or reimplement certain libsodium primitives (for example,
crypto_box_seal
), some of which are not available ingolang.org/x/crypto
(for example,golang.org/x/crypto/nacl/box.Seal
is equivalent to NaClcrypto_box_easy
, despite the name)The text was updated successfully, but these errors were encountered: