123456789101112131415161718192021222324252627282930313233343536373839 |
- namespace Riddle {
- public class SolutionEnvelope {
- public string identifier { get; set; }
- public uint8[] signed_data { get; set; }
- public uint8[] signed_reply_key { get; set; }
- public SolutionEnvelope.from_message(Message message) {
-
- identifier = message.arguments[0];
-
- signed_data = Base64.decode (message.items[0]);
- signed_reply_key = Base64.decode (message.items[1]);
- }
- public bool verify(uint8[] verification_key) {
- var d1 = Sodium.Asymmetric.Signing.verify(signed_data, verification_key);
- var d2 = Sodium.Asymmetric.Signing.verify(signed_reply_key, verification_key);
- return d1 != null && d2 != null;
- }
- public Message to_message() {
- return new Message(MessageType.RIDDLE,
- new string[] {
- identifier
- },
- new string[] {
- identifier,
- Base64.encode(signed_data),
- Base64.encode(signed_reply_key)
- }
- );
- }
- }
- }
|