Skip to content

Latest commit

 

History

History
423 lines (397 loc) · 13.7 KB

File metadata and controls

423 lines (397 loc) · 13.7 KB

Demonstration of Selection of Hash Functions

Using Base64Url BLAKE3 for multihash

root did_document:

{
  "id": "did:webplus:example.com:uHiC1437lGfqHIGxAMHE9_EfccbNddoEMWRG7x0yrPNYSFg",
  "selfHash": "uHiC1437lGfqHIGxAMHE9_EfccbNddoEMWRG7x0yrPNYSFg",
  "updateRules": {
    "hashedKey": "uHiAxGu_wGQaRr6otJ0Nk2c-T3Yyd9YU6DkPLYzMdBP9gzg"
  },
  "proofs": [
    "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoidTdRSExFWndFVGNtQnQ2aWtKdnpSSTdwdXpJaUstQ3BDcDlGVHRJNXhPVXk0T3ciLCJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlfQ..h8aoDI_23ANgXvhOq-ZvK8IVOf6lIxpFFUsNO3GAd2zbY2W-qj8ZGXcz1ymwOkNpuqbwegR92URYFHVlMErmBA"
  ],
  "validFrom": "2026-02-04T07:32:08.797Z",
  "versionId": 0,
  "verificationMethod": [
    {
      "id": "did:webplus:example.com:uHiC1437lGfqHIGxAMHE9_EfccbNddoEMWRG7x0yrPNYSFg?selfHash=uHiC1437lGfqHIGxAMHE9_EfccbNddoEMWRG7x0yrPNYSFg&versionId=0#0",
      "type": "JsonWebKey2020",
      "controller": "did:webplus:example.com:uHiC1437lGfqHIGxAMHE9_EfccbNddoEMWRG7x0yrPNYSFg",
      "publicKeyJwk": {
        "kid": "did:webplus:example.com:uHiC1437lGfqHIGxAMHE9_EfccbNddoEMWRG7x0yrPNYSFg?selfHash=uHiC1437lGfqHIGxAMHE9_EfccbNddoEMWRG7x0yrPNYSFg&versionId=0#0",
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "F7wa_6IRhGtV0eRbIcVNsIUlh80LqYXIQOd2uP-9pto"
      }
    }
  ],
  "authentication": [
    "#0"
  ],
  "assertionMethod": [
    "#0"
  ],
  "keyAgreement": [
    "#0"
  ],
  "capabilityInvocation": [
    "#0"
  ],
  "capabilityDelegation": [
    "#0"
  ]
}

Using Base64Url SHA2_224 for multihash

root did_document:

{
  "id": "did:webplus:example.com:ukyAcgxcsbm3WekLpMlt2OFiShZGqZofPmS7SdtcLNQ",
  "selfHash": "ukyAcgxcsbm3WekLpMlt2OFiShZGqZofPmS7SdtcLNQ",
  "updateRules": {
    "hashedKey": "ukyAcTkcmEdPB51KOEN8rUL2QKF43rzvc1igUzPOATA"
  },
  "proofs": [
    "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoidTdRRkNKM3R5dlFkU3dHSms4YmVyeHk5bjA4M19xcDBxMjdnc3pHYm9pR0NMRGciLCJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlfQ..-IUwW6ulyvKInIZD2zWnFD-JnO7BQgmhQa8SKiXWaVlms-sulVN4dE7oRHeOLQGYGq31ZhZ2BzyO-fu1K4tGBg"
  ],
  "validFrom": "2026-02-04T07:32:08.836Z",
  "versionId": 0,
  "verificationMethod": [
    {
      "id": "did:webplus:example.com:ukyAcgxcsbm3WekLpMlt2OFiShZGqZofPmS7SdtcLNQ?selfHash=ukyAcgxcsbm3WekLpMlt2OFiShZGqZofPmS7SdtcLNQ&versionId=0#0",
      "type": "JsonWebKey2020",
      "controller": "did:webplus:example.com:ukyAcgxcsbm3WekLpMlt2OFiShZGqZofPmS7SdtcLNQ",
      "publicKeyJwk": {
        "kid": "did:webplus:example.com:ukyAcgxcsbm3WekLpMlt2OFiShZGqZofPmS7SdtcLNQ?selfHash=ukyAcgxcsbm3WekLpMlt2OFiShZGqZofPmS7SdtcLNQ&versionId=0#0",
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "05ku96ivM5psJIJg5oxEnx7ZKsXrMIIFehL8cKYw_Fk"
      }
    }
  ],
  "authentication": [
    "#0"
  ],
  "assertionMethod": [
    "#0"
  ],
  "keyAgreement": [
    "#0"
  ],
  "capabilityInvocation": [
    "#0"
  ],
  "capabilityDelegation": [
    "#0"
  ]
}

Using Base64Url SHA2_256 for multihash

root did_document:

{
  "id": "did:webplus:example.com:uEiDf8LWFtHwij091YtjvTiQ0gjPSh9nf0RPY7OSYBPX5RA",
  "selfHash": "uEiDf8LWFtHwij091YtjvTiQ0gjPSh9nf0RPY7OSYBPX5RA",
  "updateRules": {
    "hashedKey": "uEiBvISdxv0ROKo8weJFsIoKhIZhLl9xGL_nMdbCr11g4AQ"
  },
  "proofs": [
    "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoidTdRRzYxek53b0c5Sk52a25rQ016TVJlNzYtTUN1RUdfTjRQNTFuVGlVM3UyWVEiLCJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlfQ..K2uEAgAKx8Q-iCDy3oaBc_puDZGTZrhXuNooD1LJaV0c_6F499G6-XCYJglvRz8mb9l_oaJGu0SjMgaQf_fQAA"
  ],
  "validFrom": "2026-02-04T07:32:08.873Z",
  "versionId": 0,
  "verificationMethod": [
    {
      "id": "did:webplus:example.com:uEiDf8LWFtHwij091YtjvTiQ0gjPSh9nf0RPY7OSYBPX5RA?selfHash=uEiDf8LWFtHwij091YtjvTiQ0gjPSh9nf0RPY7OSYBPX5RA&versionId=0#0",
      "type": "JsonWebKey2020",
      "controller": "did:webplus:example.com:uEiDf8LWFtHwij091YtjvTiQ0gjPSh9nf0RPY7OSYBPX5RA",
      "publicKeyJwk": {
        "kid": "did:webplus:example.com:uEiDf8LWFtHwij091YtjvTiQ0gjPSh9nf0RPY7OSYBPX5RA?selfHash=uEiDf8LWFtHwij091YtjvTiQ0gjPSh9nf0RPY7OSYBPX5RA&versionId=0#0",
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "w5rjFc2bBWOSxNrzdCNxiw8Zl6GIwbk-PjkPAQ7TPzI"
      }
    }
  ],
  "authentication": [
    "#0"
  ],
  "assertionMethod": [
    "#0"
  ],
  "keyAgreement": [
    "#0"
  ],
  "capabilityInvocation": [
    "#0"
  ],
  "capabilityDelegation": [
    "#0"
  ]
}

Using Base64Url SHA2_384 for multihash

root did_document:

{
  "id": "did:webplus:example.com:uIDCFyztbZrugDB67yjzxeENL7ZRzJQbhPAleRFyK2BGkMcBkSYCILQbGGNGSAa-8BWI",
  "selfHash": "uIDCFyztbZrugDB67yjzxeENL7ZRzJQbhPAleRFyK2BGkMcBkSYCILQbGGNGSAa-8BWI",
  "updateRules": {
    "hashedKey": "uIDBtghsCsAo6lHnF4HTYxdSrl6F4OHXHIe4amI1LOLRFD1VhxZaDbIQvLZIGao4i8Jg"
  },
  "proofs": [
    "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoidTdRRnVfN1VyYXZ4RW5PdDZkeENKSV9zeGFUR09BaXVrcnJCaW13eV90V0hBVXciLCJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlfQ..uIgnZnge7SBLGjyidm0l6FMsrIc-bPP0r3o9mU8LjZWUEL5wZLhkM_MAz1ioeg8EzUKJZmP2jM3zfCW_Mvd2CA"
  ],
  "validFrom": "2026-02-04T07:32:08.906Z",
  "versionId": 0,
  "verificationMethod": [
    {
      "id": "did:webplus:example.com:uIDCFyztbZrugDB67yjzxeENL7ZRzJQbhPAleRFyK2BGkMcBkSYCILQbGGNGSAa-8BWI?selfHash=uIDCFyztbZrugDB67yjzxeENL7ZRzJQbhPAleRFyK2BGkMcBkSYCILQbGGNGSAa-8BWI&versionId=0#0",
      "type": "JsonWebKey2020",
      "controller": "did:webplus:example.com:uIDCFyztbZrugDB67yjzxeENL7ZRzJQbhPAleRFyK2BGkMcBkSYCILQbGGNGSAa-8BWI",
      "publicKeyJwk": {
        "kid": "did:webplus:example.com:uIDCFyztbZrugDB67yjzxeENL7ZRzJQbhPAleRFyK2BGkMcBkSYCILQbGGNGSAa-8BWI?selfHash=uIDCFyztbZrugDB67yjzxeENL7ZRzJQbhPAleRFyK2BGkMcBkSYCILQbGGNGSAa-8BWI&versionId=0#0",
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "fbDIWrnKvKkwfDvsMmClwG7fd1JLIKjxE9fNb5GxqmM"
      }
    }
  ],
  "authentication": [
    "#0"
  ],
  "assertionMethod": [
    "#0"
  ],
  "keyAgreement": [
    "#0"
  ],
  "capabilityInvocation": [
    "#0"
  ],
  "capabilityDelegation": [
    "#0"
  ]
}

Using Base64Url SHA2_512 for multihash

root did_document:

{
  "id": "did:webplus:example.com:uE0BQ9TE40Xp0yWh6i6S5XAquSZ52knfsGLH5w2stGdCtRQHaO0isAUpJjlCraF_ulb_WP531YfFlTt34bcaRsa1_",
  "selfHash": "uE0BQ9TE40Xp0yWh6i6S5XAquSZ52knfsGLH5w2stGdCtRQHaO0isAUpJjlCraF_ulb_WP531YfFlTt34bcaRsa1_",
  "updateRules": {
    "hashedKey": "uE0AojtZRajNENEUBispkrkEStYTAjATRZboB3xYRv3v6pvw1PWhopjKZCKE_UKPlDKwjMYjI9aahjVY2e31dD3Cv"
  },
  "proofs": [
    "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoidTdRRXMtQzBEWWVKU1Q1NEZnQnZXb0drTzJuUHd5Vm5yR1VCclRvSzBqZEFMVnciLCJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlfQ..-yCCR2inUwTJxCIFf6Tyy5IWWOJkr7EQHkB5we46lwUE-Fwd-XpTOhsacbE4sWm--mK3d_PsN9y4ZuKYKnZ6BQ"
  ],
  "validFrom": "2026-02-04T07:32:08.938Z",
  "versionId": 0,
  "verificationMethod": [
    {
      "id": "did:webplus:example.com:uE0BQ9TE40Xp0yWh6i6S5XAquSZ52knfsGLH5w2stGdCtRQHaO0isAUpJjlCraF_ulb_WP531YfFlTt34bcaRsa1_?selfHash=uE0BQ9TE40Xp0yWh6i6S5XAquSZ52knfsGLH5w2stGdCtRQHaO0isAUpJjlCraF_ulb_WP531YfFlTt34bcaRsa1_&versionId=0#0",
      "type": "JsonWebKey2020",
      "controller": "did:webplus:example.com:uE0BQ9TE40Xp0yWh6i6S5XAquSZ52knfsGLH5w2stGdCtRQHaO0isAUpJjlCraF_ulb_WP531YfFlTt34bcaRsa1_",
      "publicKeyJwk": {
        "kid": "did:webplus:example.com:uE0BQ9TE40Xp0yWh6i6S5XAquSZ52knfsGLH5w2stGdCtRQHaO0isAUpJjlCraF_ulb_WP531YfFlTt34bcaRsa1_?selfHash=uE0BQ9TE40Xp0yWh6i6S5XAquSZ52knfsGLH5w2stGdCtRQHaO0isAUpJjlCraF_ulb_WP531YfFlTt34bcaRsa1_&versionId=0#0",
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "I0OOIv1EDj2gocjJuQxJxlrrtyryQ6_R4Ss4NzrNJ1U"
      }
    }
  ],
  "authentication": [
    "#0"
  ],
  "assertionMethod": [
    "#0"
  ],
  "keyAgreement": [
    "#0"
  ],
  "capabilityInvocation": [
    "#0"
  ],
  "capabilityDelegation": [
    "#0"
  ]
}

Using Base64Url SHA3_224 for multihash

root did_document:

{
  "id": "did:webplus:example.com:uFxwa7nZRXwaMMOfPb1XkDNV1AMvmO82zO46ycnuY",
  "selfHash": "uFxwa7nZRXwaMMOfPb1XkDNV1AMvmO82zO46ycnuY",
  "updateRules": {
    "hashedKey": "uFxzI-FYzDL7tNfuZTJ7139REpgsvdpdp7qGXEg8I"
  },
  "proofs": [
    "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoidTdRSHQ5MEw3bHNsYklPOUFOVmtod2RIREZnREU4QVRvYV9xTTQyRnlaMVZLRGciLCJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlfQ..azXUwZzt-8rd-ymhtn7B63pVbx2MuczsjJjMuWetOQkd0YMk7mqWBUHpzrq0LqDO8nxdW4H0_QsB2_Gz9VKHDg"
  ],
  "validFrom": "2026-02-04T07:32:08.973Z",
  "versionId": 0,
  "verificationMethod": [
    {
      "id": "did:webplus:example.com:uFxwa7nZRXwaMMOfPb1XkDNV1AMvmO82zO46ycnuY?selfHash=uFxwa7nZRXwaMMOfPb1XkDNV1AMvmO82zO46ycnuY&versionId=0#0",
      "type": "JsonWebKey2020",
      "controller": "did:webplus:example.com:uFxwa7nZRXwaMMOfPb1XkDNV1AMvmO82zO46ycnuY",
      "publicKeyJwk": {
        "kid": "did:webplus:example.com:uFxwa7nZRXwaMMOfPb1XkDNV1AMvmO82zO46ycnuY?selfHash=uFxwa7nZRXwaMMOfPb1XkDNV1AMvmO82zO46ycnuY&versionId=0#0",
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "nFDzX-VnbKzqp4RI89UmuTWuv7V6EP7oe_XmTCqy1uA"
      }
    }
  ],
  "authentication": [
    "#0"
  ],
  "assertionMethod": [
    "#0"
  ],
  "keyAgreement": [
    "#0"
  ],
  "capabilityInvocation": [
    "#0"
  ],
  "capabilityDelegation": [
    "#0"
  ]
}

Using Base64Url SHA3_256 for multihash

root did_document:

{
  "id": "did:webplus:example.com:uFiD6eRjJ44YnSEmrIIil5ilwaHmlnNd7BMoJ_0Pk7Dxl6w",
  "selfHash": "uFiD6eRjJ44YnSEmrIIil5ilwaHmlnNd7BMoJ_0Pk7Dxl6w",
  "updateRules": {
    "hashedKey": "uFiAoVUM7EaTnTPYgDfaLdj-XwdFaxvVkb6UwORhU330YgA"
  },
  "proofs": [
    "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoidTdRSEpYTkM4a3l1MUp3dWV6ZmNiM0htRV85YmdJUXRsei1YQWEyMmhOYTl0VVEiLCJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlfQ..w2_wcHOUJ5OEtV_NgwsXmp9KlbgeErXgTjQy66fJJtmMCjz6y1eDXyPhGu5H1GR9kL_MdlRRGtPxmgUeyQpwCQ"
  ],
  "validFrom": "2026-02-04T07:32:09.003Z",
  "versionId": 0,
  "verificationMethod": [
    {
      "id": "did:webplus:example.com:uFiD6eRjJ44YnSEmrIIil5ilwaHmlnNd7BMoJ_0Pk7Dxl6w?selfHash=uFiD6eRjJ44YnSEmrIIil5ilwaHmlnNd7BMoJ_0Pk7Dxl6w&versionId=0#0",
      "type": "JsonWebKey2020",
      "controller": "did:webplus:example.com:uFiD6eRjJ44YnSEmrIIil5ilwaHmlnNd7BMoJ_0Pk7Dxl6w",
      "publicKeyJwk": {
        "kid": "did:webplus:example.com:uFiD6eRjJ44YnSEmrIIil5ilwaHmlnNd7BMoJ_0Pk7Dxl6w?selfHash=uFiD6eRjJ44YnSEmrIIil5ilwaHmlnNd7BMoJ_0Pk7Dxl6w&versionId=0#0",
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "OboOhRrGwqNRM9_UjYATrnWTT07DKGPf0_HG71jR6Ik"
      }
    }
  ],
  "authentication": [
    "#0"
  ],
  "assertionMethod": [
    "#0"
  ],
  "keyAgreement": [
    "#0"
  ],
  "capabilityInvocation": [
    "#0"
  ],
  "capabilityDelegation": [
    "#0"
  ]
}

Using Base64Url SHA3_384 for multihash

root did_document:

{
  "id": "did:webplus:example.com:uFTAA2KnDitSHBS1aXH3vdCmlIygmZO6p7XA6lJaYLOnBKkcPbKo9Ivz2Ej4qrHXKlsc",
  "selfHash": "uFTAA2KnDitSHBS1aXH3vdCmlIygmZO6p7XA6lJaYLOnBKkcPbKo9Ivz2Ej4qrHXKlsc",
  "updateRules": {
    "hashedKey": "uFTDNgQf21Vl7jTm62GmDMmbF6ygy9JqKMM978Hsk_Sf9Q2cbacAg4aNRALOS2U41Mpg"
  },
  "proofs": [
    "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoidTdRSG11MmY5S0g0Qi1kajZ2OHNYR1h4Zk9OVGxCQ3puQ0pWN2QyMVpBU3ZUUXciLCJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlfQ..9fpfAoyJ8hJG15WZFaQXAVoVa-jINOdlx0DnxnYx9n8zS1evf5V30D1rwm_WNWBiOolnJPA9_5DK3KcBrxXGCg"
  ],
  "validFrom": "2026-02-04T07:32:09.034Z",
  "versionId": 0,
  "verificationMethod": [
    {
      "id": "did:webplus:example.com:uFTAA2KnDitSHBS1aXH3vdCmlIygmZO6p7XA6lJaYLOnBKkcPbKo9Ivz2Ej4qrHXKlsc?selfHash=uFTAA2KnDitSHBS1aXH3vdCmlIygmZO6p7XA6lJaYLOnBKkcPbKo9Ivz2Ej4qrHXKlsc&versionId=0#0",
      "type": "JsonWebKey2020",
      "controller": "did:webplus:example.com:uFTAA2KnDitSHBS1aXH3vdCmlIygmZO6p7XA6lJaYLOnBKkcPbKo9Ivz2Ej4qrHXKlsc",
      "publicKeyJwk": {
        "kid": "did:webplus:example.com:uFTAA2KnDitSHBS1aXH3vdCmlIygmZO6p7XA6lJaYLOnBKkcPbKo9Ivz2Ej4qrHXKlsc?selfHash=uFTAA2KnDitSHBS1aXH3vdCmlIygmZO6p7XA6lJaYLOnBKkcPbKo9Ivz2Ej4qrHXKlsc&versionId=0#0",
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "ui6fVkjVtv9y_bOfOz9HjREW9DZog7ievcPZe6Fg6OQ"
      }
    }
  ],
  "authentication": [
    "#0"
  ],
  "assertionMethod": [
    "#0"
  ],
  "keyAgreement": [
    "#0"
  ],
  "capabilityInvocation": [
    "#0"
  ],
  "capabilityDelegation": [
    "#0"
  ]
}

Using Base64Url SHA3_512 for multihash

root did_document:

{
  "id": "did:webplus:example.com:uFEBbX-6pY3N7SwKSavQRzyJDmazigOVIhrSrnSRV8bnlMmATynkjPPsUu7385ZbcWNEYSu4G13sNnx3SgbbVXSde",
  "selfHash": "uFEBbX-6pY3N7SwKSavQRzyJDmazigOVIhrSrnSRV8bnlMmATynkjPPsUu7385ZbcWNEYSu4G13sNnx3SgbbVXSde",
  "updateRules": {
    "hashedKey": "uFEByrq34cYdhOlloid2tHQa9N-83ieu80LtuAjid53zbtFPT2bZF2fnPTP2ZLbsRi62kmWPjsra6LMMfkzrCxuj8"
  },
  "proofs": [
    "eyJhbGciOiJFZDI1NTE5Iiwia2lkIjoidTdRSGI5emhFaUJzTFRyb0pDYkVJNTdEa2FiS003UGF1QTB5Nk53d3ZORmpLcUEiLCJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlfQ..F4Cj0IcEGqstEfZkRRAEQDsb9NhUk3NuepphvJzeU3Yn88WBmWcXbccEbYn6cMwbwpkFfLI7SacjG4ac8pUhDA"
  ],
  "validFrom": "2026-02-04T07:32:09.067Z",
  "versionId": 0,
  "verificationMethod": [
    {
      "id": "did:webplus:example.com:uFEBbX-6pY3N7SwKSavQRzyJDmazigOVIhrSrnSRV8bnlMmATynkjPPsUu7385ZbcWNEYSu4G13sNnx3SgbbVXSde?selfHash=uFEBbX-6pY3N7SwKSavQRzyJDmazigOVIhrSrnSRV8bnlMmATynkjPPsUu7385ZbcWNEYSu4G13sNnx3SgbbVXSde&versionId=0#0",
      "type": "JsonWebKey2020",
      "controller": "did:webplus:example.com:uFEBbX-6pY3N7SwKSavQRzyJDmazigOVIhrSrnSRV8bnlMmATynkjPPsUu7385ZbcWNEYSu4G13sNnx3SgbbVXSde",
      "publicKeyJwk": {
        "kid": "did:webplus:example.com:uFEBbX-6pY3N7SwKSavQRzyJDmazigOVIhrSrnSRV8bnlMmATynkjPPsUu7385ZbcWNEYSu4G13sNnx3SgbbVXSde?selfHash=uFEBbX-6pY3N7SwKSavQRzyJDmazigOVIhrSrnSRV8bnlMmATynkjPPsUu7385ZbcWNEYSu4G13sNnx3SgbbVXSde&versionId=0#0",
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "aovhtpCh3e7WD2mth9FbjJN_xV4oyuqb4f93s0wuh3c"
      }
    }
  ],
  "authentication": [
    "#0"
  ],
  "assertionMethod": [
    "#0"
  ],
  "keyAgreement": [
    "#0"
  ],
  "capabilityInvocation": [
    "#0"
  ],
  "capabilityDelegation": [
    "#0"
  ]
}