summaryrefslogtreecommitdiffstats
path: root/packages/meshbay-common/src/meshbay_common
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-common/src/meshbay_common')
-rw-r--r--packages/meshbay-common/src/meshbay_common/__init__.py7
-rw-r--r--packages/meshbay-common/src/meshbay_common/protocol.py3
2 files changed, 9 insertions, 1 deletions
diff --git a/packages/meshbay-common/src/meshbay_common/__init__.py b/packages/meshbay-common/src/meshbay_common/__init__.py
index d1e7f6c..1265586 100644
--- a/packages/meshbay-common/src/meshbay_common/__init__.py
+++ b/packages/meshbay-common/src/meshbay_common/__init__.py
@@ -56,5 +56,10 @@ __version__ = "0.9.0"
# file's cached TMDB match so it re-resolves with the current matcher
# (§10.1/V13). Additive: an older node logs "unknown type", the client's
# button just does nothing.
-MNP_VERSION = "0.13"
+# 0.14: added an optional `bundle_enc_recovery` field on `keypair_bundle_store`
+# and `keypair_bundle_resp` — a second copy of the identity bundle wrapped
+# under the account's recovery key, so a forgotten passphrase does not strand
+# the identity (docs/auth-confirm.md §4.3). Additive: an older node ignores the
+# field on store and never returns one; an older client never sends it.
+MNP_VERSION = "0.14"
MHP_VERSION = "0.1"
diff --git a/packages/meshbay-common/src/meshbay_common/protocol.py b/packages/meshbay-common/src/meshbay_common/protocol.py
index ff951e7..c789287 100644
--- a/packages/meshbay-common/src/meshbay_common/protocol.py
+++ b/packages/meshbay-common/src/meshbay_common/protocol.py
@@ -79,8 +79,11 @@ class MNP:
GEK_BUNDLE_FETCH = "gek_bundle_fetch" # client → node: request own wrapped GEK
GEK_BUNDLE_RESP = "gek_bundle_resp" # node → client: wrapped GEK bundle
KEYPAIR_BUNDLE_STORE = "keypair_bundle_store" # client → node: store encrypted keypair bundle
+ # optional `bundle_enc_recovery` (MNP 0.14): a second copy wrapped under the
+ # account's recovery key (docs/auth-confirm.md §4.3)
KEYPAIR_BUNDLE_FETCH = "keypair_bundle_fetch" # client → node: request own keypair bundle
KEYPAIR_BUNDLE_RESP = "keypair_bundle_resp" # node → client: encrypted keypair bundle
+ # carries `bundle_enc_recovery` too when the node has one stored
KEYPAIR_BUNDLE_DELETE = "keypair_bundle_delete" # client → node: withdraw own backup
JOIN_REQUEST = "join_request" # client → node: pair/recognise this identity
JOIN_RESULT = "join_result" # node → client: outcome + wrapped GEK