mirror of https://github.com/mpolden/echoip
65 lines
2.3 KiB
Go
65 lines
2.3 KiB
Go
package http
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/levelsoftware/echoip/config"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
const ecdsaPublicKey = `-----BEGIN PUBLIC KEY-----
|
|
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEVs/o5+uQbTjL3chynL4wXgUg2R9
|
|
q9UU8I5mEovUf86QZ7kOBIjJwqnzD1omageEHWwHdBO6B+dFabmdT9POxg==
|
|
-----END PUBLIC KEY-----`
|
|
const ecdsaToken = `eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.tyh-VfuzIxCyGYDlkBA7DfyjrqmSHu6pQ2hoZuFqUSLPNY2N0mpHb3nk5K17HWP_3cYHBw7AhHale5wky6-sVA`
|
|
|
|
const rsaPublicKey = `-----BEGIN PUBLIC KEY-----
|
|
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCozMxH2Mo
|
|
4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0/IzW7yWR7QkrmBL7jTKEn5u
|
|
+qKhbwKfBstIs+bMY2Zkp18gnTxKLxoS2tFczGkPLPgizskuemMghRniWaoLcyeh
|
|
kd3qqGElvW/VDL5AaWTg0nLVkjRo9z+40RQzuVaE8AkAFmxZzow3x+VJYKdjykkJ
|
|
0iT9wCS0DRTXu269V264Vf/3jvredZiKRkgwlL9xNAwxXFg0x/XFw005UWVRIkdg
|
|
cKWTjpBP2dPwVZ4WWC+9aGVd+Gyn1o0CLelf4rEjGoXbAAEgAqeGUxrcIlbjXfbc
|
|
mwIDAQAB
|
|
-----END PUBLIC KEY-----`
|
|
const rsaToken = `eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.NHVaYe26MbtOYhSKkoKYdFVomg4i8ZJd8_-RU8VNbftc4TSMb4bXP3l3YlNWACwyXPGffz5aXHc6lty1Y2t4SWRqGteragsVdZufDn5BlnJl9pdR_kdVFUsra2rWKEofkZeIC4yWytE58sMIihvo9H1ScmmVwBcQP6XETqYd0aSHp1gOa9RdUPDvoXQ5oqygTqVtxaDr6wUFKrKItgBMzWIdNZ6y7O9E0DhEPTbE9rfBo6KTFsHAZnMg4k68CDp2woYIaXbmYTWcvbzIuHO7_37GT79XdIwkm95QJ7hYC9RiwrV7mesbY4PAahERJawntho0my942XheVLmGwLMBkQ`
|
|
|
|
const hmacKey = `supersecretkey`
|
|
const hmacToken = `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.1Oi8c8PNZri8BTWg2oWXQVLCFNzI5b8uSeweKhpAIoc`
|
|
|
|
func TestGetTokenKeyWithECDSAKey(t *testing.T) {
|
|
err := ParseJWT(&config.Config{
|
|
Debug: true,
|
|
Jwt: config.Jwt{
|
|
SigningMethod: "ES256",
|
|
PublicKeyData: []byte(ecdsaPublicKey),
|
|
},
|
|
}, ecdsaToken)
|
|
|
|
assert.Nil(t, err)
|
|
}
|
|
|
|
func TestGetTokenKeyWithRSAKey(t *testing.T) {
|
|
err := ParseJWT(&config.Config{
|
|
Debug: true,
|
|
Jwt: config.Jwt{
|
|
SigningMethod: "RS256",
|
|
PublicKeyData: []byte(rsaPublicKey),
|
|
},
|
|
}, rsaToken)
|
|
|
|
assert.Nil(t, err)
|
|
}
|
|
|
|
func TestGetTokenKeyWithHMACKey(t *testing.T) {
|
|
err := ParseJWT(&config.Config{
|
|
Debug: true,
|
|
Jwt: config.Jwt{
|
|
SigningMethod: "HS256",
|
|
Secret: hmacKey,
|
|
},
|
|
}, hmacToken)
|
|
|
|
assert.Nil(t, err)
|
|
}
|