deislabs / bindle

Bindle: Object Storage for Collections
Apache License 2.0
263 stars 37 forks source link

Fix for crate consumers not finding Signature trait methods #287

Closed itowlson closed 2 years ago

itowlson commented 2 years ago

This addresses an issue when consuming the bindle crate in WAGI (and, no doubt, other applications): the ed25519_dalek::Signature::from_bytes, used in invoice/signature.rs and invoice/verification.rs, method is actually on the signature::Signature trait which is not in scope in those files. I don't yet understand why those files would compile in the Bindle client and server, but they don't compile in WAGI. And adding the trait to the files makes them give an "unused import" warning in Bindle!

The fix is to instead use Signature's TryFrom implementation, which is documented in the Signature examples, doesn't need to be brought into scope, and delegates directly to from_bytes so shouldn't change any behaviour #famouslastwords.

@vdice would be great if you could give this a test please - I'm not sure how to exercise the signature stuff. Thanks!

vdice commented 2 years ago

Tested and looking good! Signing and server refresh (re-verification of invoices) all appear as expected.