MCPcopy
hub / github.com/golang-jwt/jwt / TestECDSASign

Function TestECDSASign

ecdsa_test.go:79–109  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

77}
78
79func TestECDSASign(t *testing.T) {
80 for _, data := range ecdsaTestData {
81 var err error
82 key, _ := os.ReadFile(data.keys["private"])
83
84 var ecdsaKey *ecdsa.PrivateKey
85 if ecdsaKey, err = jwt.ParseECPrivateKeyFromPEM(key); err != nil {
86 t.Errorf("Unable to parse ECDSA private key: %v", err)
87 }
88
89 if data.valid {
90 parts := strings.Split(data.tokenString, ".")
91 toSign := strings.Join(parts[0:2], ".")
92 method := jwt.GetSigningMethod(data.alg)
93 sig, err := method.Sign(toSign, ecdsaKey)
94 if err != nil {
95 t.Errorf("[%v] Error signing token: %v", data.name, err)
96 }
97
98 ssig := encodeSegment(sig)
99 if ssig == parts[2] {
100 t.Errorf("[%v] Identical signatures\nbefore:\n%v\nafter:\n%v", data.name, parts[2], ssig)
101 }
102
103 err = method.Verify(toSign, sig, ecdsaKey.Public())
104 if err != nil {
105 t.Errorf("[%v] Sign produced an invalid signature: %v", data.name, err)
106 }
107 }
108 }
109}
110
111func BenchmarkECDSAParsing(b *testing.B) {
112 for _, data := range ecdsaTestData {

Callers

nothing calls this directly

Calls 3

encodeSegmentFunction · 0.85
SignMethod · 0.65
VerifyMethod · 0.65

Tested by

no test coverage detected