// TestVariousAESKeyEncoding tests some AES <-> PEM conversions func TestVariousAESKeyEncoding(t *testing.T) { key, err := GetRandomBytes(32) if err != nil { t.Fatalf("Failed generating AES key [%s]", err) } // PEM format pem := utils.AEStoPEM(key) keyFromPEM, err := utils.PEMtoAES(pem, nil) if err != nil { t.Fatalf("Failed converting PEM to AES key [%s]", err) } if 0 != bytes.Compare(key, keyFromPEM) { t.Fatalf("Failed converting PEM to AES key. Keys are different [%x][%x]", key, keyFromPEM) } // Encrypted PEM format pem, err = utils.AEStoEncryptedPEM(key, []byte("passwd")) if err != nil { t.Fatalf("Failed converting AES key to Encrypted PEM [%s]", err) } keyFromPEM, err = utils.PEMtoAES(pem, []byte("passwd")) if err != nil { t.Fatalf("Failed converting encrypted PEM to AES key [%s]", err) } if 0 != bytes.Compare(key, keyFromPEM) { t.Fatalf("Failed converting encrypted PEM to AES key. Keys are different [%x][%x]", key, keyFromPEM) } }
func (ks *FileBasedKeyStore) loadKey(alias string) ([]byte, error) { path := ks.getPathForAlias(alias, "key") logger.Debugf("Loading key [%s] at [%s]...", alias, path) pem, err := ioutil.ReadFile(path) if err != nil { logger.Errorf("Failed loading key [%s]: [%s].", alias, err.Error()) return nil, err } key, err := utils.PEMtoAES(pem, ks.pwd) if err != nil { logger.Errorf("Failed parsing key [%s]: [%s]", alias, err) return nil, err } return key, nil }