github.com/zntrio/harp/v2@v2.0.9/pkg/sdk/value/signature/paseto/builders_test.go (about) 1 // Licensed to Elasticsearch B.V. under one or more contributor 2 // license agreements. See the NOTICE file distributed with 3 // this work for additional information regarding copyright 4 // ownership. Elasticsearch B.V. licenses this file to you under 5 // the Apache License, Version 2.0 (the "License"); you may 6 // not use this file except in compliance with the License. 7 // You may obtain a copy of the License at 8 // 9 // http://www.apache.org/licenses/LICENSE-2.0 10 // 11 // Unless required by applicable law or agreed to in writing, 12 // software distributed under the License is distributed on an 13 // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 14 // KIND, either express or implied. See the License for the 15 // specific language governing permissions and limitations 16 // under the License. 17 18 package paseto 19 20 import ( 21 "encoding/base64" 22 "fmt" 23 "testing" 24 25 "github.com/stretchr/testify/assert" 26 27 "github.com/zntrio/harp/v2/pkg/sdk/value" 28 ) 29 30 var p384PrivateJWK = []byte(`{ 31 "kty": "EC", 32 "d": "7YcsmkNxmZdzGyb46ZeDb2I1yr-ja1iw9gspGjq7UDqQ6a61h_ES8c4uU__adkFV", 33 "crv": "P-384", 34 "x": "dWLSo6PTkL1G68bzTwY3zzrL_QX-pwvP9HUPpQGeSFmj20EWOtfvXXKDrCR0jnJD", 35 "y": "lFvTFechH_KmbOEvycryCHy23Cm1qekJYAtn7T_TELpm7zsY290NYlvqDKesGeXx" 36 }`) 37 38 var ed25519PrivateJWK = []byte(`{ 39 "kty": "OKP", 40 "d": "ytOw6kKTTVJUKCnX5HgmhsGguNFQ18ECIS2C-ujJv-s", 41 "crv": "Ed25519", 42 "x": "K5i0d37-eRk8-EPwo2bpcmM-HGmzLiqRtWnk7oR3FCs" 43 }`) 44 45 func TestTransformer(t *testing.T) { 46 type args struct { 47 key string 48 } 49 tests := []struct { 50 name string 51 args args 52 want value.Transformer 53 wantErr bool 54 }{ 55 { 56 name: "nil", 57 wantErr: true, 58 }, 59 { 60 name: "invalid base64", 61 args: args{ 62 key: "paseto:123456789%", 63 }, 64 wantErr: true, 65 }, 66 // --------------------------------------------------------------------- 67 { 68 name: "valid - v3", 69 args: args{ 70 key: fmt.Sprintf("paseto:%s", base64.RawURLEncoding.EncodeToString(p384PrivateJWK)), 71 }, 72 wantErr: false, 73 }, 74 { 75 name: "valid - v4", 76 args: args{ 77 key: fmt.Sprintf("paseto:%s", base64.RawURLEncoding.EncodeToString(ed25519PrivateJWK)), 78 }, 79 wantErr: false, 80 }, 81 } 82 for _, tt := range tests { 83 t.Run(tt.name, func(t *testing.T) { 84 got, err := Transformer(tt.args.key) 85 if (err != nil) != tt.wantErr { 86 t.Errorf("Transformer() error = %v, wantErr %v", err, tt.wantErr) 87 return 88 } 89 if !tt.wantErr { 90 assert.NotNil(t, got) 91 } 92 }) 93 } 94 }