docs(did): add comment explaining why some ECDSA public keys are "coerced" to Secp256k1 public keys

This commit is contained in:
Steve Moyer
2024-10-24 10:54:43 -04:00
parent 2c58fedfd5
commit 0d63e90b67

View File

@@ -200,6 +200,13 @@ func codeForCurve(pubKey crypto.PubKey) (multicodec.Code, error) {
}
}
// secp256k1.S256 is a valid ECDSA curve, but the go-libp2p/core/crypto
// package treats it ask a different type and has a different format for
// the raw bytes of the public key.
//
// If a valid ECDSA public key was created the secp256k1.S256 curve, this
// function will "convert" it from a crypto.ECDSAPubKey to a
// crypto.Secp256k1PublicKey.
func coerceECDSAToSecp256k1(pubKey crypto.PubKey) (crypto.PubKey, error) {
stdPub, err := crypto.PubKeyToStdKey(pubKey)
if err != nil {