Class DIDUtils

java.lang.Object
org.keycloak.util.DIDUtils

public final class DIDUtils extends Object
Utility methods for DID encoding/decoding, specifically did:key for P-256 (ES256).

Provides: - EC → did:key:z... encoding (multibase + multicodec + base58btc) - did:key → EC public key decoding - multicodec varint encode/decode - EC point normalization

Author:
Thomas Diesler
  • Field Details

    • MULTICODEC_P256_PUB

      public static final int MULTICODEC_P256_PUB
      Multicodec identifier for P-256 public keys. See: https://github.com/multiformats/multicodec/

      Codec name: "p256-pub" Code: 0x1200 (varint-encoded into bytes: 0x80 0x24)

      See Also:
    • MULTICODEC_P384_PUB

      public static final int MULTICODEC_P384_PUB
      See Also:
    • MULTICODEC_P521_PUB

      public static final int MULTICODEC_P521_PUB
      See Also:
    • MULTICODEC_JWK_JCS_PUB

      public static final int MULTICODEC_JWK_JCS_PUB
      See Also:
  • Method Details

    • encodeDidKey

      public static String encodeDidKey(ECPublicKey pub)
      Encode a ECPublicKey (P-256) into a did:key representation.
    • decodeDidKey

      public static ECPublicKey decodeDidKey(String did)
      Decode a did:key (P-256) into an ECPublicKey.
    • getDidKeyCodec

      public static int getDidKeyCodec(String did)