Markdown shows whether its ENS signature holds when read
Agents / agent (pull_request) Has been skipped
Agents / agent (pull_request) Has been skipped
This commit is contained in:
@@ -29,14 +29,22 @@ contents is refused rather than removed whole.
|
||||
|
||||
## Signing
|
||||
|
||||
Saving a `.md` file holds it whole, up to 8 MiB, and writes it once finished,
|
||||
Saving a `.md` file holds it whole, up to 96 KiB, and writes it once finished,
|
||||
with `signer` and `signature` set in its frontmatter; every other file streams
|
||||
straight through. The signature is EIP-191 `personal_sign` over the signer name
|
||||
and the body's SHA-256, made with the configured key; other frontmatter and the
|
||||
body stay byte for byte. A key that is not 32 bytes of hex refuses the
|
||||
connection, and a `.md` file that is not UTF-8 refuses the save. Reading passes
|
||||
every file through unchanged. The RPC address is for verifying signers, which a
|
||||
later version adds to reads.
|
||||
connection, and a `.md` file that is not UTF-8 refuses the save.
|
||||
|
||||
## Verifying
|
||||
|
||||
Reading a `.md` file of up to 40 KiB checks its signature against ENSv2 on
|
||||
Sepolia through the RPC address and adds an `ens-verification` line to the
|
||||
frontmatter Memona receives, which Memona shows as a badge; a larger one up to
|
||||
1 MiB is marked as not checked. Both limits keep hashing and key recovery
|
||||
inside the instruction budget Memona gives each call. The line never
|
||||
reaches the server: a save drops it before signing, and one stored on the
|
||||
server is replaced. Verdicts are reused for 30 seconds per signed body.
|
||||
|
||||
## Building
|
||||
|
||||
|
||||
Reference in New Issue
Block a user