...

Source file src/github.com/ory/x/jwksx/generator_test.go

Documentation: github.com/ory/x/jwksx

     1  package jwksx
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/square/go-jose/v3"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestGenerateSigningKeys(t *testing.T) {
    12  	for _, alg := range GenerateSigningKeysAvailableAlgorithms() {
    13  		t.Run(fmt.Sprintf("alg=%s", alg), func(t *testing.T) {
    14  			key, err := GenerateSigningKeys("", alg, 0)
    15  			require.NoError(t, err)
    16  			t.Logf("%+v", key)
    17  		})
    18  	}
    19  
    20  	for _, tc := range []struct {
    21  		alg  jose.SignatureAlgorithm
    22  		bits int
    23  	}{
    24  		{alg: jose.HS256, bits: 128}, // should fail because minimum 256 bit
    25  		{alg: jose.HS384, bits: 256}, // should fail because minimum 384 bit
    26  		{alg: jose.HS512, bits: 384}, // should fail because minimum 512 bit
    27  		{alg: jose.HS512, bits: 555}, // should fail because not modulo 8
    28  	} {
    29  		t.Run(fmt.Sprintf("alg=%s/bit=%d", tc.alg, tc.bits), func(t *testing.T) {
    30  			_, err := GenerateSigningKeys("", string(tc.alg), tc.bits)
    31  			require.Error(t, err)
    32  		})
    33  	}
    34  }
    35  

View as plain text