chore: repoint remaining links at git.swaits.com
Rewrites lingering github.com / *.sr.ht references to this Gitea instance, translating GitHub and Sourcehut URL shapes to Gitea's (/blob/<ref>/ and sr.ht /tree/<ref>/item/ -> /src/branch/<ref>/, /tree/<tag> -> /src/tag/<tag>, /actions/workflows/X -> /actions?workflow=X, /edit/ -> /_edit/). Left pointing at the old hosts on purpose: pull-request links (PRs were not migrated), forks that were never migrated, and GitHub-only surfaces Gitea lacks. OpenPGP identity proofs are untouched by design.
This commit is contained in:
39 files changed
+46
-46
No files matched your search
@@ -8,8 +8,8 @@ src = "src"
|
||||
[output.html]
|
||||
default-theme = "navy"
|
||||
preferred-dark-theme = "navy"
|
||||
git-repository-url = "https://github.com/swaits/meshcore-spec"
|
||||
edit-url-template = "https://github.com/swaits/meshcore-spec/edit/main/{path}"
|
||||
git-repository-url = "https://git.swaits.com/swaits/meshcore-spec"
|
||||
edit-url-template = "https://git.swaits.com/swaits/meshcore-spec/_edit/main/{path}"
|
||||
# CI overrides per-version with MDBOOK_OUTPUT__HTML__SITE_URL.
|
||||
# Default below targets the "latest" deploy from main.
|
||||
site-url = "/meshcore-spec/latest/"
|
||||
|
||||
+4
-4
@@ -23,7 +23,7 @@ The **upstream MeshCore C++ firmware is the source of truth** for all
|
||||
protocol behavior. This spec is downstream and derivative. Whenever the spec
|
||||
and the upstream C++ disagree, **upstream wins** — and a fix to this spec is
|
||||
filed against this repo, not against MeshCore. Each substantive change in
|
||||
[CHANGELOG.md](https://github.com/swaits/meshcore-spec/blob/main/CHANGELOG.md)
|
||||
[CHANGELOG.md](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/CHANGELOG.md)
|
||||
records the upstream commit hash it was validated against.
|
||||
|
||||
Refinements have also been driven in part by observations from building
|
||||
@@ -31,10 +31,10 @@ DongLoRa firmware and apps against live MeshCore deployments. Where DongLoRa
|
||||
behavior diverges from upstream, this spec follows upstream and treats the
|
||||
DongLoRa side as a follow-up bug, not a spec change.
|
||||
|
||||
Conformance against the [test corpus](https://github.com/swaits/meshcore-spec/tree/main/corpus)
|
||||
Conformance against the [test corpus](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus)
|
||||
is a useful signal but **not a substitute** for cross-checking against
|
||||
upstream firmware. If you find a divergence from upstream, please
|
||||
[file an issue](https://github.com/swaits/meshcore-spec/issues) — that is
|
||||
[file an issue](https://git.swaits.com/swaits/meshcore-spec/issues) — that is
|
||||
exactly the kind of report this project exists to catch.
|
||||
|
||||
### Spec Versions
|
||||
@@ -61,7 +61,7 @@ version; switching keeps you on the same chapter where it exists in the
|
||||
target version. Spec versions use semver and are **independent** of the
|
||||
upstream MeshCore firmware's own versioning — each release records the
|
||||
upstream commit hash it was validated against in
|
||||
[CHANGELOG.md](https://github.com/swaits/meshcore-spec/blob/main/CHANGELOG.md).
|
||||
[CHANGELOG.md](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/CHANGELOG.md).
|
||||
|
||||
### Scope
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ A conforming decoder MUST reject packets with any of the following:
|
||||
|
||||
- [Section 2: Header](02-header.md) — Header byte encoding details
|
||||
- [Section 3: Path](03-path.md) — Path length encoding and path field
|
||||
- Test vectors: [`corpus/wire-format/framing/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/wire-format/framing/), [`corpus/wire-format/invalid/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/wire-format/invalid/)
|
||||
- Test vectors: [`corpus/wire-format/framing/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/wire-format/framing/), [`corpus/wire-format/invalid/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/wire-format/invalid/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
+1
-1
@@ -113,7 +113,7 @@ is an in-memory sentinel only and MUST NOT appear on the wire. A header of
|
||||
|
||||
- [Section 1: Wire Format](01-wire-format.md) — Overall packet structure
|
||||
- [Section 3: Path](03-path.md) — Path encoding
|
||||
- Test vectors: [`corpus/wire-format/header/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/wire-format/header/)
|
||||
- Test vectors: [`corpus/wire-format/header/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/wire-format/header/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
+1
-1
@@ -143,7 +143,7 @@ this class of bug.
|
||||
- [Section 1: Wire Format](01-wire-format.md) — Overall packet structure
|
||||
- [Section 2: Header](02-header.md) — Header encoding
|
||||
- [Section 15: Identity](15-identity.md) — Hash derivation from public keys
|
||||
- Test vectors: [`corpus/wire-format/path/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/wire-format/path/)
|
||||
- Test vectors: [`corpus/wire-format/path/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/wire-format/path/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ sender attribute each received ACK to a specific transmission attempt. See
|
||||
|
||||
- [Section 1: Wire Format](01-wire-format.md) — Packet framing
|
||||
- [Section 11: Multipart](11-payload-multipart.md) — Multipart ACK encoding
|
||||
- Test vectors: [`corpus/payloads/ack/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/payloads/ack/)
|
||||
- Test vectors: [`corpus/payloads/ack/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/payloads/ack/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ preceding optional fields are present.
|
||||
|
||||
- [Section 15: Identity](15-identity.md) — Ed25519 key management
|
||||
- [Section 14: Cryptography](14-crypto.md) — Signature operations
|
||||
- Test vectors: [`corpus/payloads/advert/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/payloads/advert/)
|
||||
- Test vectors: [`corpus/payloads/advert/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/payloads/advert/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@ patterns include:
|
||||
|
||||
- [Section 14: Cryptography](14-crypto.md) — Encrypt-then-MAC details
|
||||
- [Section 15: Identity](15-identity.md) — ECDH shared secret computation
|
||||
- Test vectors: [`corpus/payloads/encrypted/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/payloads/encrypted/)
|
||||
- Test vectors: [`corpus/payloads/encrypted/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/payloads/encrypted/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ Header payload type field: `0x07` (ANON_REQ)
|
||||
- [Section 6: Encrypted Payloads](06-payload-encrypted.md) — Standard encrypted format
|
||||
- [Section 14: Cryptography](14-crypto.md) — Encrypt-then-MAC
|
||||
- [Section 15: Identity](15-identity.md) — ECDH key exchange
|
||||
- Test vectors: [`corpus/payloads/anon-req/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/payloads/anon-req/)
|
||||
- Test vectors: [`corpus/payloads/anon-req/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/payloads/anon-req/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ secret. Only a successful MAC verification confirms the correct channel.
|
||||
### Cross-References
|
||||
|
||||
- [Section 14: Cryptography](14-crypto.md) — Encrypt-then-MAC
|
||||
- Test vectors: [`corpus/payloads/group/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/payloads/group/)
|
||||
- Test vectors: [`corpus/payloads/group/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/payloads/group/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ hash is unique.
|
||||
- [Section 3: Path](03-path.md) — Path length encoding
|
||||
- [Section 6: Encrypted Payloads](06-payload-encrypted.md) — Outer envelope format
|
||||
- [Section 14: Cryptography](14-crypto.md) — Encrypt-then-MAC
|
||||
- Test vectors: [`corpus/payloads/path-return/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/payloads/path-return/)
|
||||
- Test vectors: [`corpus/payloads/path-return/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/payloads/path-return/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ At that point, `onTraceRecv` is called with:
|
||||
### Cross-References
|
||||
|
||||
- [Section 16: Packet Hash](16-packet-hash.md) — TRACE packets include path_len in hash
|
||||
- Test vectors: [`corpus/payloads/trace/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/payloads/trace/)
|
||||
- Test vectors: [`corpus/payloads/trace/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/payloads/trace/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ intends to emit, not a guarantee that they will arrive.
|
||||
### Cross-References
|
||||
|
||||
- [Section 4: ACK](04-payload-ack.md) — ACK CRC format
|
||||
- Test vectors: [`corpus/payloads/multipart/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/payloads/multipart/)
|
||||
- Test vectors: [`corpus/payloads/multipart/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/payloads/multipart/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ formats are application-defined, but typically include:
|
||||
### Cross-References
|
||||
|
||||
- [Section 17: Routing](17-routing.md) — Zero-hop delivery
|
||||
- Test vectors: [`corpus/payloads/control/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/payloads/control/)
|
||||
- Test vectors: [`corpus/payloads/control/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/payloads/control/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ when received via direct routing. They are NOT flood-routed.
|
||||
|
||||
### Cross-References
|
||||
|
||||
- Test vectors: [`corpus/payloads/raw-custom/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/payloads/raw-custom/)
|
||||
- Test vectors: [`corpus/payloads/raw-custom/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/payloads/raw-custom/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
+1
-1
@@ -110,7 +110,7 @@ Output format:
|
||||
|
||||
- [Section 6: Encrypted Payloads](06-payload-encrypted.md) — Usage in packet payloads
|
||||
- [Section 15: Identity](15-identity.md) — Shared secret computation via ECDH
|
||||
- Test vectors: [`corpus/crypto/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/crypto/)
|
||||
- Test vectors: [`corpus/crypto/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/crypto/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
+1
-1
@@ -81,7 +81,7 @@ Hex representation uses uppercase characters with 2 hex digits per byte.
|
||||
- [Section 3: Path](03-path.md) — Hash size in path encoding
|
||||
- [Section 5: Advertisement](05-payload-advert.md) — Signature usage
|
||||
- [Section 14: Cryptography](14-crypto.md) — Shared secret usage
|
||||
- Test vectors: [`corpus/crypto/ed25519/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/crypto/ed25519/), [`corpus/crypto/ecdh/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/crypto/ecdh/)
|
||||
- Test vectors: [`corpus/crypto/ed25519/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/crypto/ed25519/), [`corpus/crypto/ecdh/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/crypto/ecdh/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ function calculatePacketHash(packet):
|
||||
### Cross-References
|
||||
|
||||
- [Section 10: Trace](10-payload-trace.md) — TRACE packet special handling
|
||||
- Test vectors: [`corpus/crypto/sha256/packet-hash.json`](https://github.com/swaits/meshcore-spec/blob/main/corpus/crypto/sha256/packet-hash.json)
|
||||
- Test vectors: [`corpus/crypto/sha256/packet-hash.json`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/crypto/sha256/packet-hash.json)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ implementations SHOULD request a larger MTU (up to 512 bytes).
|
||||
### Cross-References
|
||||
|
||||
- [Section 1: Wire Format](01-wire-format.md) — Underlying packet format
|
||||
- Test vectors: [`corpus/companion/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/companion/)
|
||||
- Test vectors: [`corpus/companion/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/companion/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -173,7 +173,7 @@ Response codes: `response = command | 0x80`
|
||||
|
||||
- [Section 1: Wire Format](01-wire-format.md) — Packet format within data frames
|
||||
- [Section 14: Cryptography](14-crypto.md) — Crypto operations via SetHardware
|
||||
- Test vectors: [`corpus/kiss/`](https://github.com/swaits/meshcore-spec/tree/main/corpus/kiss/)
|
||||
- Test vectors: [`corpus/kiss/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/corpus/kiss/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ The **upstream MeshCore C++ firmware is the source of truth** for all
|
||||
protocol behavior. This spec is downstream and derivative. Whenever the spec
|
||||
and the upstream C++ disagree, **upstream wins** — and a fix to this spec is
|
||||
filed against this repo, not against MeshCore. Each substantive change in
|
||||
[CHANGELOG.md](https://github.com/swaits/meshcore-spec/blob/main/CHANGELOG.md)
|
||||
[CHANGELOG.md](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/CHANGELOG.md)
|
||||
records the upstream commit hash it was validated against.
|
||||
|
||||
Refinements have also been driven in part by observations from building
|
||||
@@ -31,10 +31,10 @@ DongLoRa firmware and apps against live MeshCore deployments. Where DongLoRa
|
||||
behavior diverges from upstream, this spec follows upstream and treats the
|
||||
DongLoRa side as a follow-up bug, not a spec change.
|
||||
|
||||
Conformance against the [test corpus](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus)
|
||||
Conformance against the [test corpus](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus)
|
||||
is a useful signal but **not a substitute** for cross-checking against
|
||||
upstream firmware. If you find a divergence from upstream, please
|
||||
[file an issue](https://github.com/swaits/meshcore-spec/issues) — that is
|
||||
[file an issue](https://git.swaits.com/swaits/meshcore-spec/issues) — that is
|
||||
exactly the kind of report this project exists to catch.
|
||||
|
||||
### Spec Versions
|
||||
@@ -61,7 +61,7 @@ version; switching keeps you on the same chapter where it exists in the
|
||||
target version. Spec versions use semver and are **independent** of the
|
||||
upstream MeshCore firmware's own versioning — each release records the
|
||||
upstream commit hash it was validated against in
|
||||
[CHANGELOG.md](https://github.com/swaits/meshcore-spec/blob/main/CHANGELOG.md).
|
||||
[CHANGELOG.md](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/CHANGELOG.md).
|
||||
|
||||
### Scope
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ A conforming decoder MUST reject packets with any of the following:
|
||||
|
||||
- [Section 2: Header](02-header.md) — Header byte encoding details
|
||||
- [Section 3: Path](03-path.md) — Path length encoding and path field
|
||||
- Test vectors: [`corpus/wire-format/framing/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/wire-format/framing/), [`corpus/wire-format/invalid/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/wire-format/invalid/)
|
||||
- Test vectors: [`corpus/wire-format/framing/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/wire-format/framing/), [`corpus/wire-format/invalid/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/wire-format/invalid/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ is an in-memory sentinel only and MUST NOT appear on the wire. A header of
|
||||
|
||||
- [Section 1: Wire Format](01-wire-format.md) — Overall packet structure
|
||||
- [Section 3: Path](03-path.md) — Path encoding
|
||||
- Test vectors: [`corpus/wire-format/header/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/wire-format/header/)
|
||||
- Test vectors: [`corpus/wire-format/header/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/wire-format/header/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -143,7 +143,7 @@ this class of bug.
|
||||
- [Section 1: Wire Format](01-wire-format.md) — Overall packet structure
|
||||
- [Section 2: Header](02-header.md) — Header encoding
|
||||
- [Section 15: Identity](15-identity.md) — Hash derivation from public keys
|
||||
- Test vectors: [`corpus/wire-format/path/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/wire-format/path/)
|
||||
- Test vectors: [`corpus/wire-format/path/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/wire-format/path/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ sender attribute each received ACK to a specific transmission attempt. See
|
||||
|
||||
- [Section 1: Wire Format](01-wire-format.md) — Packet framing
|
||||
- [Section 11: Multipart](11-payload-multipart.md) — Multipart ACK encoding
|
||||
- Test vectors: [`corpus/payloads/ack/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/payloads/ack/)
|
||||
- Test vectors: [`corpus/payloads/ack/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/payloads/ack/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ preceding optional fields are present.
|
||||
|
||||
- [Section 15: Identity](15-identity.md) — Ed25519 key management
|
||||
- [Section 14: Cryptography](14-crypto.md) — Signature operations
|
||||
- Test vectors: [`corpus/payloads/advert/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/payloads/advert/)
|
||||
- Test vectors: [`corpus/payloads/advert/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/payloads/advert/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@ patterns include:
|
||||
|
||||
- [Section 14: Cryptography](14-crypto.md) — Encrypt-then-MAC details
|
||||
- [Section 15: Identity](15-identity.md) — ECDH shared secret computation
|
||||
- Test vectors: [`corpus/payloads/encrypted/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/payloads/encrypted/)
|
||||
- Test vectors: [`corpus/payloads/encrypted/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/payloads/encrypted/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ Header payload type field: `0x07` (ANON_REQ)
|
||||
- [Section 6: Encrypted Payloads](06-payload-encrypted.md) — Standard encrypted format
|
||||
- [Section 14: Cryptography](14-crypto.md) — Encrypt-then-MAC
|
||||
- [Section 15: Identity](15-identity.md) — ECDH key exchange
|
||||
- Test vectors: [`corpus/payloads/anon-req/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/payloads/anon-req/)
|
||||
- Test vectors: [`corpus/payloads/anon-req/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/payloads/anon-req/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ secret. Only a successful MAC verification confirms the correct channel.
|
||||
### Cross-References
|
||||
|
||||
- [Section 14: Cryptography](14-crypto.md) — Encrypt-then-MAC
|
||||
- Test vectors: [`corpus/payloads/group/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/payloads/group/)
|
||||
- Test vectors: [`corpus/payloads/group/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/payloads/group/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ hash is unique.
|
||||
- [Section 3: Path](03-path.md) — Path length encoding
|
||||
- [Section 6: Encrypted Payloads](06-payload-encrypted.md) — Outer envelope format
|
||||
- [Section 14: Cryptography](14-crypto.md) — Encrypt-then-MAC
|
||||
- Test vectors: [`corpus/payloads/path-return/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/payloads/path-return/)
|
||||
- Test vectors: [`corpus/payloads/path-return/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/payloads/path-return/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ At that point, `onTraceRecv` is called with:
|
||||
### Cross-References
|
||||
|
||||
- [Section 16: Packet Hash](16-packet-hash.md) — TRACE packets include path_len in hash
|
||||
- Test vectors: [`corpus/payloads/trace/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/payloads/trace/)
|
||||
- Test vectors: [`corpus/payloads/trace/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/payloads/trace/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -112,7 +112,7 @@ intends to emit, not a guarantee that they will arrive.
|
||||
### Cross-References
|
||||
|
||||
- [Section 4: ACK](04-payload-ack.md) — ACK CRC format
|
||||
- Test vectors: [`corpus/payloads/multipart/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/payloads/multipart/)
|
||||
- Test vectors: [`corpus/payloads/multipart/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/payloads/multipart/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ formats are application-defined, but typically include:
|
||||
### Cross-References
|
||||
|
||||
- [Section 17: Routing](17-routing.md) — Zero-hop delivery
|
||||
- Test vectors: [`corpus/payloads/control/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/payloads/control/)
|
||||
- Test vectors: [`corpus/payloads/control/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/payloads/control/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ when received via direct routing. They are NOT flood-routed.
|
||||
|
||||
### Cross-References
|
||||
|
||||
- Test vectors: [`corpus/payloads/raw-custom/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/payloads/raw-custom/)
|
||||
- Test vectors: [`corpus/payloads/raw-custom/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/payloads/raw-custom/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ Output format:
|
||||
|
||||
- [Section 6: Encrypted Payloads](06-payload-encrypted.md) — Usage in packet payloads
|
||||
- [Section 15: Identity](15-identity.md) — Shared secret computation via ECDH
|
||||
- Test vectors: [`corpus/crypto/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/crypto/)
|
||||
- Test vectors: [`corpus/crypto/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/crypto/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ Hex representation uses uppercase characters with 2 hex digits per byte.
|
||||
- [Section 3: Path](03-path.md) — Hash size in path encoding
|
||||
- [Section 5: Advertisement](05-payload-advert.md) — Signature usage
|
||||
- [Section 14: Cryptography](14-crypto.md) — Shared secret usage
|
||||
- Test vectors: [`corpus/crypto/ed25519/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/crypto/ed25519/), [`corpus/crypto/ecdh/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/crypto/ecdh/)
|
||||
- Test vectors: [`corpus/crypto/ed25519/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/crypto/ed25519/), [`corpus/crypto/ecdh/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/crypto/ecdh/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ function calculatePacketHash(packet):
|
||||
### Cross-References
|
||||
|
||||
- [Section 10: Trace](10-payload-trace.md) — TRACE packet special handling
|
||||
- Test vectors: [`corpus/crypto/sha256/packet-hash.json`](https://github.com/swaits/meshcore-spec/blob/main/versions/v0.1.0/corpus/crypto/sha256/packet-hash.json)
|
||||
- Test vectors: [`corpus/crypto/sha256/packet-hash.json`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/crypto/sha256/packet-hash.json)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ implementations SHOULD request a larger MTU (up to 512 bytes).
|
||||
### Cross-References
|
||||
|
||||
- [Section 1: Wire Format](01-wire-format.md) — Underlying packet format
|
||||
- Test vectors: [`corpus/companion/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/companion/)
|
||||
- Test vectors: [`corpus/companion/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/companion/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
@@ -173,7 +173,7 @@ Response codes: `response = command | 0x80`
|
||||
|
||||
- [Section 1: Wire Format](01-wire-format.md) — Packet format within data frames
|
||||
- [Section 14: Cryptography](14-crypto.md) — Crypto operations via SetHardware
|
||||
- Test vectors: [`corpus/kiss/`](https://github.com/swaits/meshcore-spec/tree/main/versions/v0.1.0/corpus/kiss/)
|
||||
- Test vectors: [`corpus/kiss/`](https://git.swaits.com/swaits/meshcore-spec/src/branch/main/versions/v0.1.0/corpus/kiss/)
|
||||
|
||||
### Reference Implementation
|
||||
|
||||
|
||||
Reference in new issue
Block a user