Skip to content
Snippets Groups Projects
Commit fdd6d4d8 authored by Jean-Paul Calderone's avatar Jean-Paul Calderone
Browse files

Refactor the zkapauthz configuration strategy to remove some duplication

This will make it easier to add the new allowed-public-keys item which must be
present regardless of chosen redeemer.
parent e25e4e61
No related branches found
No related tags found
1 merge request!212Close the trust loop
...@@ -230,27 +230,59 @@ def server_configurations(signing_key_path): ...@@ -230,27 +230,59 @@ def server_configurations(signing_key_path):
) )
def zkapauthz_configuration(
extra_configurations,
allowed_public_keys=sets(dummy_ristretto_keys(), min_size=1, max_size=5),
):
"""
Build ZKAPAuthorizer client plugin configuration dictionaries.
:param extra_configurations: A strategy to build any of the optional /
alternative sections of the configuration.
:param allowed_public_keys: A strategy to build sets of allowed public
keys for the configuration.
:return: A strategy that builds the basic, required part of the client
plugin configuration plus an extra values built by
``extra_configurations``.
"""
def merge(extra_configuration, allowed_public_keys):
config = {
u"default-token-count": u"32",
}
config.update(extra_configuration)
return config
return builds(
merge,
extra_configurations,
allowed_public_keys,
)
def client_ristrettoredeemer_configurations(): def client_ristrettoredeemer_configurations():
""" """
Build Ristretto-using configuration values for the client-side plugin. Build Ristretto-using configuration values for the client-side plugin.
""" """
return just({ return zkapauthz_configuration(just({
u"ristretto-issuer-root-url": u"https://issuer.example.invalid/", u"ristretto-issuer-root-url": u"https://issuer.example.invalid/",
u"redeemer": u"ristretto", u"redeemer": u"ristretto",
u"default-token-count": u"32", }))
})
def client_dummyredeemer_configurations(): def client_dummyredeemer_configurations():
""" """
Build DummyRedeemer-using configuration values for the client-side plugin. Build DummyRedeemer-using configuration values for the client-side plugin.
""" """
return dummy_ristretto_keys().map( return zkapauthz_configuration(
dummy_ristretto_keys().map(
lambda key: { lambda key: {
u"redeemer": u"dummy", u"redeemer": u"dummy",
u"issuer-public-key": key, u"issuer-public-key": key,
u"default-token-count": u"32", }),
}) )
def token_counts(): def token_counts():
...@@ -265,41 +297,37 @@ def client_doublespendredeemer_configurations(default_token_counts=token_counts( ...@@ -265,41 +297,37 @@ def client_doublespendredeemer_configurations(default_token_counts=token_counts(
""" """
Build DoubleSpendRedeemer-using configuration values for the client-side plugin. Build DoubleSpendRedeemer-using configuration values for the client-side plugin.
""" """
return fixed_dictionaries({ return zkapauthz_configuration(just({
u"redeemer": just(u"double-spend"), u"redeemer": u"double-spend",
u"default-token-count": default_token_counts.map(str), }))
})
def client_unpaidredeemer_configurations(): def client_unpaidredeemer_configurations():
""" """
Build UnpaidRedeemer-using configuration values for the client-side plugin. Build UnpaidRedeemer-using configuration values for the client-side plugin.
""" """
return just({ return zkapauthz_configuration(just({
u"redeemer": u"unpaid", u"redeemer": u"unpaid",
u"default-token-count": u"32", }))
})
def client_nonredeemer_configurations(): def client_nonredeemer_configurations():
""" """
Build NonRedeemer-using configuration values for the client-side plugin. Build NonRedeemer-using configuration values for the client-side plugin.
""" """
return just({ return zkapauthz_configuration(just({
u"redeemer": u"non", u"redeemer": u"non",
u"default-token-count": u"32", }))
})
def client_errorredeemer_configurations(details): def client_errorredeemer_configurations(details):
""" """
Build ErrorRedeemer-using configuration values for the client-side plugin. Build ErrorRedeemer-using configuration values for the client-side plugin.
""" """
return just({ return zkapauthz_configuration(just({
u"redeemer": u"error", u"redeemer": u"error",
u"details": details, u"details": details,
u"default-token-count": u"32", }))
})
def direct_tahoe_configs( def direct_tahoe_configs(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment