greenart7c3 / Amber

MIT License
92 stars 4 forks source link

Is there a method to provide a basic sign string? #30

Closed water783 closed 1 month ago

water783 commented 1 month ago

hey, I would like to know if there is a method available to provide a basic sign string. This feature would be very useful for our ecash implementation.

something like this

String sign(String message) { String aux = generate64RandomHexChars(); return bip340.sign(private, message, aux); }

greenart7c3 commented 1 month ago

Not yet. Just sign events

water783 commented 1 month ago

Is it possible to add a sign string?

greenart7c3 commented 1 month ago

I think it is, I'll see if I can do it next week

greenart7c3 commented 1 month ago

Do you have some examples / test cases?

water783 commented 1 month ago

yeah, just write 2 test vectors:

{ private: a5ab474552c8f9c46c2eda5a0b68f27430ad81f96cb405e0cb4e34bf0c6494a2 aux: 319cc5596fdd6cd767e5a59d976e8e059c61306af90dff1e6ee1067b3a1fdbc0 test hex string 1: 8e58c8251bb406b6ded69e9eb14f55282a9a53bdab16fc49a3218c2ad3abc887 result1: 0f9be7e01ba53d5ee6874b9180c7956269fda7a5be424634c3d17b5cfcea6da001be89183876415ba08b7dafa6cff4555e393dc228fb8769b384344e9a27b77c test hex string 2: 186beb8c6cbf023df61dba0075c56062e4aebb8c77ca3373a16c1257aa8845cd result2: f68c2b8a949257700f3d86a67601b0977c3f14f801dc956f8b7fbad4ced0c421df3c558ee417f05cd1f81bbf6d265f24c7df736534969ca05a65d028b4fcab81 }, { private: 0d1216bf98e4f56a9ceb03eeb8919a89ea43a140ee477032080fa4bbeed0bfee aux: b008c3a759c1bff9b1e7fb740b59204ff6794009fc70c7c69d4173d1d00f2e9d test hex string 1: 8e58c8251bb406b6ded69e9eb14f55282a9a53bdab16fc49a3218c2ad3abc887 result1: e817ebd4c8cf970f30f3538134b5a1079f5fc266458006b0f3c56c177c34d26a102dfff8eeeeb67e6544a220c3fe36fbc29578478a52a487499d7f27d21af8b9 test hex string 2: 186beb8c6cbf023df61dba0075c56062e4aebb8c77ca3373a16c1257aa8845cd result2: c978def765e182e1290440033bb21415ae2876cc4fb44f29e7e4d1cc6582c3814ff278787bf6a79cbfb8651de19e0f7d42c1fb3769453025c7631d82950d18f7 }

and the sign function in dart:

String sign(String message) { String aux = generate64RandomHexChars(); return bip340.sign(private, message, aux); }

water783 commented 1 month ago

Hi @greenart7c3 how is it going?

greenart7c3 commented 1 month ago

I implemented in 92c400fd03ca8b372ba4e7274fc564a83a0f1aa7 I'll make a release later today them you can make some tests

water783 commented 1 month ago

Awesome, thx for your work @greenart7c3

greenart7c3 commented 1 month ago

Release is here The method is sign_message Let me know if it worked for you

water783 commented 1 month ago

Release is here The method is sign_message Let me know if it worked for you

it works :)