// TestVariousAESKeyEncoding tests some AES <-> PEM conversions func TestVariousAESKeyEncoding(t *testing.T) { key, err := primitives.GenAESKey() if err != nil { t.Fatalf("Failed generating AES key [%s]", err) } // PEM format pem := primitives.AEStoPEM(key) keyFromPEM, err := primitives.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 = primitives.AEStoEncryptedPEM(key, []byte("passwd")) if err != nil { t.Fatalf("Failed converting AES key to Encrypted PEM [%s]", err) } keyFromPEM, err = primitives.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 *keyStore) loadKey(alias string) ([]byte, error) { path := ks.node.conf.getPathForAlias(alias) ks.node.Debugf("Loading key [%s] at [%s]...", alias, path) pem, err := ioutil.ReadFile(path) if err != nil { ks.node.Errorf("Failed loading key [%s]: [%s].", alias, err.Error()) return nil, err } key, err := primitives.PEMtoAES(pem, ks.pwd) if err != nil { ks.node.Errorf("Failed parsing key [%s]: [%s]", alias, err) return nil, err } return key, nil }