summaryrefslogtreecommitdiff
path: root/design-documents/006-extensions.rst
diff options
context:
space:
mode:
authorÖzgür Kesim <oec-taler@kesim.org>2022-10-05 11:06:37 +0200
committerÖzgür Kesim <oec-taler@kesim.org>2022-10-05 11:06:37 +0200
commitb5dcdefc7cdc9c72f8da373eb794e1eb881aa716 (patch)
tree5a23511109515a65cc703f73f6b039bf2fa2eaa1 /design-documents/006-extensions.rst
parentca889e7ddeeedbae285a3795c2d74b73b61bf6e8 (diff)
downloaddocs-b5dcdefc7cdc9c72f8da373eb794e1eb881aa716.tar.gz
docs-b5dcdefc7cdc9c72f8da373eb794e1eb881aa716.tar.bz2
docs-b5dcdefc7cdc9c72f8da373eb794e1eb881aa716.zip
better terminology for extensions and more TODOs
Diffstat (limited to 'design-documents/006-extensions.rst')
-rw-r--r--design-documents/006-extensions.rst27
1 files changed, 18 insertions, 9 deletions
diff --git a/design-documents/006-extensions.rst b/design-documents/006-extensions.rst
index f70b8449..33213fd6 100644
--- a/design-documents/006-extensions.rst
+++ b/design-documents/006-extensions.rst
@@ -58,7 +58,7 @@ The necessary changes to ``ExchangeKeysResponse`` are highlighted here:
// Optional field with a dictionary of (name, object) pairs defining the
// supported and enabled extensions.
// The name MUST be non-empty and unique.
- extensions?: { name: Extension };
+ extensions?: { name: ExtensionManifest };
// Signature by the exchange master key of the SHA-256 hash of the
// normalized JSON-object of field ``extensions``, if it was set.
@@ -81,11 +81,11 @@ GANA_ along with a full description of the extension.
versions of the "same" feature in parallel, multiple unique names MUST be used,
f.e. ``age_restriction`` an ``age_restriction.v2``.)
-Extension object
-----------------
+ExtensionManifest object
+---------------------------
-The definition of ``Extension`` object itself is mostly up to the particular
-feature. **However**, it MUST have
+The definition of ``ExtensionManifest`` object itself is mostly up to the
+particular feature. **However**, it MUST have
#. the boolean field ``critical`` that has the same semantics as as "critical"
has for extensions in X.509_: if true, the client must "understand" the
@@ -99,10 +99,9 @@ feature. **However**, it MUST have
.. _`protocol version ranges notation`: https://docs.taler.net/core/api-common.html#protocol-version-ranges
+.. ts:def:: ExtensionManifest
-.. ts:def:: Extension
-
- interface Extension {
+ interface ExtensionManifest {
// The criticality of the extension MUST be provided. It has the same
// semantics as "critical" has for extensions in X.509:
// - if "true", the client must "understand" the extension before
@@ -181,7 +180,7 @@ this:
AGE_GROUPS = "8:10:12:14:16:18:21"
- [exchange-extension-policy_auction]
+ [exchange-extension-policy_brandt_vickery_auction]
ENABLED = true
REPLAY_PROGRAM = "/usr/local/bin/taler-exchange-auction_replay"
@@ -193,6 +192,16 @@ TODO:
* Needs to express support for particular extensions, too. F.e. age-restriction.
+Extension Plugins
+==================
+
+TODO:
+
+* describe ``struct TALER_Extension``
+* describe the plugin loading mechanism for extensions
+* describe the various handlers
+
+
Alternatives
============