From 5a21251dd04824e3162c4f56986787eea63962e3 Mon Sep 17 00:00:00 2001 From: Manu Sporny Date: Mon, 30 Sep 2024 01:25:22 -0400 Subject: [PATCH] Defer key formats to controller document specification. --- index.html | 51 ++++++++++++++++++--------------------------------- 1 file changed, 18 insertions(+), 33 deletions(-) diff --git a/index.html b/index.html index 2bb3640..9d2e5fd 100644 --- a/index.html +++ b/index.html @@ -314,8 +314,8 @@

Verification Methods

Multikey

-The Multikey format, as defined in -[[controller-document]], is used to express public keys for the cryptographic +The Multikey format, defined in +[[[controller-document]]], is used to express public keys for the cryptographic suites defined in this specification.

@@ -325,23 +325,13 @@

Multikey

-The Multikey encoding of a P-256 -public key MUST start with the two-byte prefix `0x8024` (the varint expression -of `0x1200`) followed by the 33-byte compressed public key data. The resulting -35-byte value MUST then be encoded using the base-58-btc alphabet, according to -the Multibase section in the -[[controller-document]] specification, and then prepended with the base-58-btc -Multibase header (`z`). -

- -

-The encoding of a P-384 public key MUST start with the -two-byte prefix `0x8124` (the varint expression of `0x1201`) followed by the -49-byte compressed public key data. The resulting 51-byte value is then encoded -using the base-58-btc alphabet, according to the -Multibase section in the -[[controller-document]] specification, and then prepended with the base-58-btc -Multibase header (`z`). Any other encodings MUST NOT be allowed. +The `publicKeyMultibase` value of the verification method MUST start with the +base-58-btc prefix (`z`), as defined in the +Multibase section of +[[[controller-document]]]. A Multibase-encoded ECDSA 256-bit public key value or +an ECDSA 384-bit public key value follows, as defined in the +Multikey section of +[[[controller-document]]]. Any other encoding MUST NOT be allowed.

@@ -412,23 +402,18 @@

Multikey

expression of a P-256 or P-384 secret key (also sometimes referred to as a private key).

+

-The encoding of a P-256 secret key MUST start with the two-byte prefix `0x8626` -(the varint expression of `0x1306`) followed by the 32-byte secret key data. The -34-byte value MUST then be encoded using the base-58-btc alphabet, according to -the Multibase section in the -[[controller-document]] specification, and then prepended with the base-58-btc -Multibase header (`z`). Any other encodings MUST NOT be allowed. -

-

-The encoding of a P-384 secret key is the two-byte prefix `0x8726` (the varint -expression of `0x1307`) followed by the 48-byte secret key data. The 50-byte -value MUST then be encoded using the base-58-btc alphabet, according to the -Multibase section in the -[[controller-document]] specification, and then prepended with the base-58-btc -Multibase header (`z`). Any other encodings MUST NOT be allowed. +The `secretKeyMultibase` value of the verification method MUST start with the +base-58-btc prefix (`z`), as defined in the +Multibase section of +[[[controller-document]]]. A Multibase-encoded ECDSA 256-bit secret key value or +an ECDSA 384-bit secret key value follows, as defined in the +Multikey section of +[[[controller-document]]]. Any other encoding MUST NOT be allowed.

+

Developers are advised to prevent accidental publication of a representation of a secret key, and to not export the `secretKeyMultibase` property by default, when serializing