Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/public-api-server/pkg/jws/hs256_test.go
2506 views
1
// Copyright (c) 2023 Gitpod GmbH. All rights reserved.
2
// Licensed under the GNU Affero General Public License (AGPL).
3
// See License.AGPL.txt in the project root for license information.
4
5
package jws_test
6
7
import (
8
"testing"
9
"time"
10
11
"github.com/gitpod-io/gitpod/public-api-server/pkg/jws"
12
"github.com/gitpod-io/gitpod/public-api-server/pkg/jws/jwstest"
13
"github.com/golang-jwt/jwt/v5"
14
"github.com/stretchr/testify/require"
15
)
16
17
func TestHS256SignVerify(t *testing.T) {
18
keyset := jwstest.GenerateKeySet(t)
19
hs256 := jws.NewHS256FromKeySet(keyset)
20
21
claims := &jwt.RegisteredClaims{
22
Subject: "user-id",
23
Issuer: "test-issuer",
24
ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Hour)),
25
IssuedAt: jwt.NewNumericDate(time.Now()),
26
}
27
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
28
29
signed, err := hs256.Sign(token)
30
require.NoError(t, err)
31
32
verified, err := hs256.Verify(signed, &jwt.RegisteredClaims{})
33
require.NoError(t, err)
34
require.Equal(t, claims, verified.Claims)
35
}
36
37