TBD54566975 / web5-go

Apache License 2.0
10 stars 6 forks source link

public key JWK -> bytes #18

Closed mistermoe closed 7 months ago

mistermoe commented 7 months ago

Overview

[!IMPORTANT] Adding this functionality for upcoming did:dht creation PR

Usage

High Level API

package main

import (
    "encoding/hex"
    "fmt"

    "github.com/tbd54566975/web5-go/crypto/dsa"
    "github.com/tbd54566975/web5-go/crypto/dsa/ecdsa"
    "github.com/tbd54566975/web5-go/jwk"
)

func main() {
    jwk := jwk.JWK{
        KTY: "EC",
        CRV: ecdsa.SECP256K1JWACurve,
        X:   "eb5mfvncu6xVoGKVzocLBwKb_NstzijZWfKBWxb4F5g",
        Y:   "SDradyajxGVdpPv8DhEIqP0XtEimhVQZnEfQj_sQ1Lg",
    }

    pubKeyBytes, err := dsa.PublicKeyToBytes(jwk)
    if err != nil {
        panic(err)
    }

    fmt.Println(hex.EncodeToString(pubKeyBytes))
}

Internal Dialogue

I really want to restructure the crypto package to be a bit cleaner. Specifically,

mistermoe commented 7 months ago

@mihai-chiorean this should help convert JWKs to the format expected in did:dht DNS records