@@ -15,15 +15,12 @@ Import this package for its side effects to register Ed448 with `jwx`:
1515package ed448_test
1616
1717import (
18- " encoding/json"
1918 " fmt"
2019
2120 " github.com/cloudflare/circl/sign/ed448"
22- " github.com/lestrrat-go/jwx/v3/jwa"
23- " github.com/lestrrat-go/jwx/v3/jwk"
24- " github.com/lestrrat-go/jwx/v3/jws"
21+ " github.com/lestrrat-go/dsig"
2522
26- _ " github.com/lestrrat-go/jwx -circl-ed448"
23+ _ " github.com/lestrrat-go/dsig -circl-ed448"
2724)
2825
2926func Example () {
@@ -36,64 +33,22 @@ func Example() {
3633
3734 payload := []byte (" Hello, Ed448!" )
3835
39- // Sign and verify with raw keys
40- signed , err := jws .Sign (payload, jws. WithKey (jwa. EdDSAEd448 (), priv) )
36+ // Sign with Ed448 private key
37+ signature , err := dsig .Sign (priv, " Ed448 " , payload, nil )
4138 if err != nil {
4239 fmt.Printf (" failed to sign: %s \n " , err)
4340 return
4441 }
4542
46- verified , err := jws. Verify (signed, jws. WithKey (jwa. EdDSAEd448 (), pub))
47- if err != nil {
43+ // Verify with Ed448 public key
44+ if err := dsig. Verify (pub, " Ed448 " , payload, signature); err != nil {
4845 fmt.Printf (" failed to verify: %s \n " , err)
4946 return
5047 }
51- fmt.Printf (" %s \n " , verified)
52-
53- // Import raw keys into JWK
54- jwkPriv , err := jwk.Import (priv)
55- if err != nil {
56- fmt.Printf (" failed to import private key: %s \n " , err)
57- return
58- }
59-
60- jwkPub , err := jwk.Import (pub)
61- if err != nil {
62- fmt.Printf (" failed to import public key: %s \n " , err)
63- return
64- }
65-
66- // Sign and verify with JWK keys
67- signed, err = jws.Sign (payload, jws.WithKey (jwa.EdDSAEd448 (), jwkPriv))
68- if err != nil {
69- fmt.Printf (" failed to sign with JWK key: %s \n " , err)
70- return
71- }
72-
73- verified, err = jws.Verify (signed, jws.WithKey (jwa.EdDSAEd448 (), jwkPub))
74- if err != nil {
75- fmt.Printf (" failed to verify with JWK key: %s \n " , err)
76- return
77- }
78- fmt.Printf (" %s \n " , verified)
79-
80- // JWK JSON round-trip
81- buf , err := json.MarshalIndent (jwkPriv, " " , " " )
82- if err != nil {
83- fmt.Printf (" failed to marshal JWK: %s \n " , err)
84- return
85- }
86-
87- parsed , err := jwk.ParseKey (buf)
88- if err != nil {
89- fmt.Printf (" failed to parse JWK: %s \n " , err)
90- return
91- }
92- _ = parsed
48+ fmt.Println (" signature verified" )
9349
9450 // Output:
95- // Hello, Ed448!
96- // Hello, Ed448!
51+ // signature verified
9752}
9853```
9954source: [ example_test.go] ( https://github.com/lestrrat-go/jwx-circl-ed448/blob/main/example_test.go )
0 commit comments