// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package jws import ( "crypto/rand" "crypto/rsa" "testing" ) func TestSignAndVerify(t *testing.T) { header := &Header{ Algorithm: "RS256", Typ: "JWT", } payload := &ClaimSet{ Iss: "http://google.com/", Aud: "", Exp: 3610, Iat: 10, } privateKey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { t.Fatal(err) } token, err := Encode(header, payload, privateKey) if err != nil { t.Fatal(err) } err := Verify(token, &privateKey.PublicKey) if err != nil { t.Fatal(err) } } func TestVerifyFailsOnMalformedClaim(t *testing.T) { err := Verify("abc.def", nil) if err == nil { t.Error("Improperly formed JWT should fail.") } }