Public Key

Represents an encoding of a public key, one half of a cryptographic key pair.

Serialization

PublicKey object serialization MUST conform to the following Avro schema:

{
    "namespace": "org.dsnp",
    "name": "PublicKey",
    "type": "record",
    "fields": [
        {
            "name": "publicKey",
            "type": "bytes",
            "doc": "Multicodec public key"
        }
    ]
}

Generation

publicKey

  • MUST be a public key of an allowed key type for the associated User Data type, encoded in multicodec format

The byte encoding consists of a multicodec key identifier (as a varint) followed by the public key’s binary data in the codec’s described format.

Allowed Key Types

User Data TypeAllowed Algorithms (multicodec)Purpose
keyAgreementPublicKeysx25519-pubA Curve25519 public key that can be used in key exchange protocols to generate a shared secret
assertionMethodPublicKeysed25519-pubA public key for the EdDSA signature scheme using SHA-512 and Curve25519 that can be used to verify cryptographic signatures