spec: incorporate MeshCore discussion #2538 review feedback

Incorporates two of the three corrections raised by msmuenchen on
discussion #2538:

- Identity: document that the 64-byte Ed25519 private key is the
  expanded `a || RH` (orlp) form, not a 32-byte seed, and that it
  cannot be consumed by standard Ed25519 libraries. Touches
  15-identity.md and 14-crypto.md.
- Group: document the GRP_TXT/GRP_DATA inner plaintext format
  (timestamp + flags + message) and the GRP_TXT length limits in
  08-payload-group.md.

The third correction (GRP_DATA vs RAW_CUSTOM app differentiation) is
deferred pending reviewer clarification.

Corpus: replace the unrealistic group vectors with valid inner-format
plaintexts; the ed25519 vectors now carry the 64-byte expanded key and
the seed; the schema and validator gain seed fields. Also corrects two
pre-existing wrong values found while verifying -- ed-001's public key
and ed-002's signature now match RFC 8032.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
swaitsandClaude Opus 4.7 committed 2026-05-20 19:11:19 -06:00
1 parent 9232c16f7c
commit 9d7b1c6281
8 files changed
+144 -32

No files matched your search

+3 -2
View File
@@ -216,8 +216,9 @@ def validate_vector_consistency(vector, file_path):
if "crypto_context" in vector:
ctx = vector["crypto_context"]
for field in ("shared_secret", "encryption_key", "plaintext",
"sender_private_key", "sender_public_key",
"recipient_private_key", "recipient_public_key"):
"sender_seed", "sender_private_key", "sender_public_key",
"recipient_seed", "recipient_private_key",
"recipient_public_key"):
if field in ctx:
errors.extend(validate_hex_string(
ctx[field], f"crypto_context.{field}", file_path, vid))