From e9f31fe4850d8d136a584a03fc7fe07c6ab0f3ae Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone <exarkun@twistedmatrix.com> Date: Thu, 3 Oct 2019 15:14:27 -0400 Subject: [PATCH] add missing interface method --- src/_zkapauthorizer/controller.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/_zkapauthorizer/controller.py b/src/_zkapauthorizer/controller.py index f6c38f2..5681bf0 100644 --- a/src/_zkapauthorizer/controller.py +++ b/src/_zkapauthorizer/controller.py @@ -114,6 +114,25 @@ class IRedeemer(Interface): final. """ + def tokens_to_passes(message, unblinded_tokens): + """ + Construct passes from unblinded tokens which are suitable for use with a + given message. + + :param bytes message: A valid utf-8-encoded byte sequence which serves + to protect the resulting passes from replay usage. It is + preferable if every use of passes is associated with a unique + message. + + :param list[UnblindedToken] unblinded_tokens: Unblinded tokens, + previously returned by a call to this implementation's ``redeem`` + method. + + :return list[Pass]: Passes constructed from the message and unblinded + tokens. There is one pass in the resulting list for each unblinded + token in ``unblinded_tokens``. + """ + @implementer(IRedeemer) class NonRedeemer(object): @@ -132,6 +151,11 @@ class NonRedeemer(object): # Don't try to redeem them. return Deferred() + def tokens_to_passes(self, message, unblinded_tokens): + raise Exception( + "Cannot be called because no unblinded tokens are ever returned." + ) + @implementer(IRedeemer) @attr.s -- GitLab