github.com/jlmeeker/kismatic@v1.10.1-0.20180612190640-57f9005a1f1a/pkg/ssh/ssh_test.go (about)

     1  package ssh
     2  
     3  import "testing"
     4  
     5  func TestIsEncrypted(t *testing.T) {
     6  	for _, data := range testData {
     7  		isEncrypted, err := isEncrypted(data.pemData)
     8  		if err != nil {
     9  			t.Errorf("Unexpected error: %v", err)
    10  		}
    11  		if err == nil && isEncrypted != data.encrypted {
    12  			t.Errorf("Expected: %t, got: %t", data.encrypted, isEncrypted)
    13  		}
    14  	}
    15  }
    16  
    17  var testData = []struct {
    18  	encrypted bool
    19  	pemData   []byte
    20  }{
    21  	{
    22  		encrypted: false,
    23  		pemData: []byte(`
    24  -----BEGIN RSA PRIVATE KEY-----
    25  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
    74  -----END RSA PRIVATE KEY-----`),
    75  	},
    76  	{
    77  		encrypted: true,
    78  		pemData: []byte(`
    79  -----BEGIN RSA PRIVATE KEY-----
    80  Proc-Type: 4,ENCRYPTED
    81  DEK-Info: AES-128-CBC,D0FFFDD404B4871ABBAE43ACE8F391C2
    82  
    83  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
   132  -----END RSA PRIVATE KEY-----`),
   133  	},
   134  }