Home > Software design >  Creating JWT signing method for AWS key in Go
Creating JWT signing method for AWS key in Go

Time:10-02

I generated an ECC_NIST_P521 spec key, which uses the ECDSA_SHA_512 signing algorithm. I'm trying to create a jwt.SigningMethod with this in mind, but I'm not sure which values to use for the fields. This is what I have so far:

signingMethod := jwt.SigningMethodECDSA {
    Name: "ECC_NIST_P521",
    Hash: crypto.SHA512,
}

Specifically, I'm not sure if the name is correct and I don't know what to use for the KeySize and CurveBits fields. Any help would be appreciated.

CodePudding user response:

You need to specify Hash, CurveBits and KeySize. The value of Name is ignored:

signingMethod := jwt.SigningMethodECDSA{
        Name:      "ECC_NIST_P521",
        Hash:      crypto.SHA512,
        CurveBits: 521,
        KeySize:   66,
    }

521 bits - the size of curve field.

66 - number of bytes that fit a compact representation of a point on the curve.

Full example to sign and verify signature: https://go.dev/play/p/bEnLN2PJv4a

  • Related