github.com/mendersoftware/go-lib-micro@v0.0.0-20240304135804-e8e39c59b148/keys/key_test.go (about)

     1  // Copyright 2023 Northern.tech AS
     2  //
     3  //	Licensed under the Apache License, Version 2.0 (the "License");
     4  //	you may not use this file except in compliance with the License.
     5  //	You may obtain a copy of the License at
     6  //
     7  //	    http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  //	Unless required by applicable law or agreed to in writing, software
    10  //	distributed under the License is distributed on an "AS IS" BASIS,
    11  //	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  //	See the License for the specific language governing permissions and
    13  //	limitations under the License.
    14  package keys
    15  
    16  import (
    17  	"fmt"
    18  	"testing"
    19  
    20  	"github.com/stretchr/testify/assert"
    21  )
    22  
    23  func TestLoadRsaPrivateKey(t *testing.T) {
    24  	t.Parallel()
    25  
    26  	testCases := []struct {
    27  		privKeyPath string
    28  		err         string
    29  	}{
    30  		{
    31  			privKeyPath: "testdata/private.pem",
    32  			err:         "",
    33  		},
    34  		{
    35  			privKeyPath: "wrong_path",
    36  			err:         ErrMsgPrivKeyReadFailed + ": open wrong_path: no such file or directory",
    37  		},
    38  		{
    39  			privKeyPath: "testdata/private_broken.pem",
    40  			err:         ErrMsgPrivKeyNotPEMEncoded,
    41  		},
    42  		{
    43  			privKeyPath: "testdata/public.pem",
    44  			err:         "unknown server private key type; got: PUBLIC KEY, want: RSA PRIVATE KEY",
    45  		},
    46  	}
    47  
    48  	for i, tc := range testCases {
    49  		tcVar := tc
    50  		t.Run(fmt.Sprintf("tc %d", i), func(t *testing.T) {
    51  			t.Parallel()
    52  			key, err := LoadRSAPrivate(tcVar.privKeyPath)
    53  			if tcVar.err != "" {
    54  				assert.EqualError(t, err, tcVar.err)
    55  			} else {
    56  				assert.NoError(t, err)
    57  				assert.NotNil(t, key)
    58  			}
    59  		})
    60  	}
    61  }