blob: 129e293d036d0dafeb11a5c29f0320f69a01f868 [file] [log] [blame]
package crypto
// import (
// "io/ioutil"
// "strings"
// "testing"
// "github.com/SermoDigital/jose/jws"
// )
// var hmacTestData = []struct {
// name string
// tokenString string
// alg string
// claims map[string]interface{}
// valid bool
// }{
// {
// "web sample",
// "eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk",
// "HS256",
// map[string]interface{}{"iss": "joe", "exp": 1300819380, "http://example.com/is_root": true},
// true,
// },
// {
// "HS384",
// "eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9.eyJleHAiOjEuMzAwODE5MzhlKzA5LCJodHRwOi8vZXhhbXBsZS5jb20vaXNfcm9vdCI6dHJ1ZSwiaXNzIjoiam9lIn0.KWZEuOD5lbBxZ34g7F-SlVLAQ_r5KApWNWlZIIMyQVz5Zs58a7XdNzj5_0EcNoOy",
// "HS384",
// map[string]interface{}{"iss": "joe", "exp": 1300819380, "http://example.com/is_root": true},
// true,
// },
// {
// "HS512",
// "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEuMzAwODE5MzhlKzA5LCJodHRwOi8vZXhhbXBsZS5jb20vaXNfcm9vdCI6dHJ1ZSwiaXNzIjoiam9lIn0.CN7YijRX6Aw1n2jyI2Id1w90ja-DEMYiWixhYCyHnrZ1VfJRaFQz1bEbjjA5Fn4CLYaUG432dEYmSbS4Saokmw",
// "HS512",
// map[string]interface{}{"iss": "joe", "exp": 1300819380, "http://example.com/is_root": true},
// true,
// },
// {
// "web sample: invalid",
// "eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXo",
// "HS256",
// map[string]interface{}{"iss": "joe", "exp": 1300819380, "http://example.com/is_root": true},
// false,
// },
// }
// // Sample data from http://tools.ietf.org/html/draft-jones-json-web-signature-04#appendix-A.1
// var hmacTestKey, _ = ioutil.ReadFile("test/hmacTestKey")
// func TestHMACVerify(t *testing.T) {
// for _, data := range hmacTestData {
// parts := strings.Split(data.tokenString, ".")
// method := jwt.GetSigningMethod(data.alg)
// err := method.Verify(strings.Join(parts[0:2], "."), parts[2], hmacTestKey)
// if data.valid && err != nil {
// t.Errorf("[%v] Error while verifying key: %v", data.name, err)
// }
// if !data.valid && err == nil {
// t.Errorf("[%v] Invalid key passed validation", data.name)
// }
// }
// }
// func TestHMACSign(t *testing.T) {
// for _, data := range hmacTestData {
// if data.valid {
// parts := strings.Split(data.tokenString, ".")
// method := jws.GetSigningMethod(data.alg)
// sig, err := method.Sign(strings.Join(parts[0:2], "."), hmacTestKey)
// if err != nil {
// t.Errorf("[%v] Error signing token: %v", data.name, err)
// }
// if sig != parts[2] {
// t.Errorf("[%v] Incorrect signature.\nwas:\n%v\nexpecting:\n%v", data.name, sig, parts[2])
// }
// }
// }
// }
// // func BenchmarkHS256Signing(b *testing.B) {
// // benchmarkSigning(b, jwt.SigningMethodHS256, hmacTestKey)
// // }
// // func BenchmarkHS384Signing(b *testing.B) {
// // benchmarkSigning(b, jwt.SigningMethodHS384, hmacTestKey)
// // }
// // func BenchmarkHS512Signing(b *testing.B) {
// // benchmarkSigning(b, jwt.SigningMethodHS512, hmacTestKey)
// // }