...
1
2
3
4
5 package jws
6
7 import (
8 "crypto/rand"
9 "crypto/rsa"
10 "testing"
11 )
12
13 func TestSignAndVerify(t *testing.T) {
14 header := &Header{
15 Algorithm: "RS256",
16 Typ: "JWT",
17 }
18 payload := &ClaimSet{
19 Iss: "http://google.com/",
20 Aud: "",
21 Exp: 3610,
22 Iat: 10,
23 }
24
25 privateKey, err := rsa.GenerateKey(rand.Reader, 2048)
26 if err != nil {
27 t.Fatal(err)
28 }
29
30 token, err := Encode(header, payload, privateKey)
31 if err != nil {
32 t.Fatal(err)
33 }
34
35 err = Verify(token, &privateKey.PublicKey)
36 if err != nil {
37 t.Fatal(err)
38 }
39 }
40
41 func TestVerifyFailsOnMalformedClaim(t *testing.T) {
42 err := Verify("abc.def", nil)
43 if err == nil {
44 t.Error("got no errors; want improperly formed JWT not to be verified")
45 }
46 }
47
View as plain text