diff --git a/ethereum/path_accounts.go b/ethereum/path_accounts.go index b4e934b5..82ffd8bf 100644 --- a/ethereum/path_accounts.go +++ b/ethereum/path_accounts.go @@ -243,7 +243,7 @@ func (b *backend) pathAccountsCreate(req *logical.Request, data *framework.Field } else if passphrase == "" { return nil, fmt.Errorf("must provide a passphrase to encrypt the keystore") } - tmpDir, err := b.createTemporaryKeystoreDirectory(req.Path) + tmpDir, err := b.createTemporaryKeystoreDirectory() if err != nil { return nil, err } @@ -273,7 +273,7 @@ func (b *backend) pathAccountsCreate(req *logical.Request, data *framework.Field if err != nil { return nil, err } - b.removeTemporaryKeystore(req.Path) + b.removeTemporaryKeystore(tmpDir) return &logical.Response{ Data: map[string]interface{}{ "account": accountJSON.Address, @@ -301,7 +301,7 @@ func (b *backend) pathAccountsUpdate(req *logical.Request, data *framework.Field if err != nil { return nil, err } - tmpDir, err := b.createTemporaryKeystoreDirectory(req.Path) + tmpDir, err := b.createTemporaryKeystoreDirectory() if err != nil { return nil, err } @@ -311,7 +311,7 @@ func (b *backend) pathAccountsUpdate(req *logical.Request, data *framework.Field } jsonKeystore, err := b.rekeyJSONKeystore(keystorePath, account.Passphrase, passphrase) - b.removeTemporaryKeystore(req.Path) + b.removeTemporaryKeystore(tmpDir) if err != nil { return nil, err } else { diff --git a/ethereum/util.go b/ethereum/util.go index 694a4204..e4c9a2b5 100644 --- a/ethereum/util.go +++ b/ethereum/util.go @@ -39,22 +39,13 @@ func (b *backend) writeTemporaryKeystoreFile(path string, filename string, data return keystorePath, err } -func (b *backend) createTemporaryKeystoreDirectory(name string) (string, error) { - file, _ := os.Open(PathTempDir + name) - if file != nil { - file.Close() - return "", fmt.Errorf("account already exists at %s", PathTempDir+name) - } - return PathTempDir + name, os.MkdirAll(PathTempDir+name, os.FileMode(0522)) +func (b *backend) createTemporaryKeystoreDirectory() (string, error) { + dir, err := ioutil.TempDir("", "keystore") + return dir, err } -func (b *backend) removeTemporaryKeystore(name string) error { - file, _ := os.Open(PathTempDir + name) - if file != nil { - return os.RemoveAll(PathTempDir + name) - } else { - return fmt.Errorf("keystore doesn't exist at %s", PathTempDir+name) - } +func (b *backend) removeTemporaryKeystore(path string) error { + return os.RemoveAll(path) } func convertMapToStringValue(initial map[string]interface{}) map[string]string { @@ -177,7 +168,7 @@ func (b *backend) NewTransactor(key *ecdsa.PrivateKey) *bind.TransactOpts { } func (b *backend) getAccountPrivateKey(path string, account Account) (*keystore.Key, error) { - tmpDir, err := b.createTemporaryKeystoreDirectory(path) + tmpDir, err := b.createTemporaryKeystoreDirectory() if err != nil { return nil, err } @@ -190,7 +181,7 @@ func (b *backend) getAccountPrivateKey(path string, account Account) (*keystore. if err != nil { return nil, err } - err = b.removeTemporaryKeystore(path) + err = b.removeTemporaryKeystore(tmpDir) return key, err } diff --git a/scripts/cycle.sh b/scripts/cycle.sh deleted file mode 100755 index b9669452..00000000 --- a/scripts/cycle.sh +++ /dev/null @@ -1,12 +0,0 @@ -# !/usr/bash - -vault unmount ethereum -vault delete sys/plugins/catalog/ethereum-plugin -cd .. -go build -sudo mv vault-ethereum /etc/vault.d/vault_plugins -export SHA256=$(shasum -a 256 "/etc/vault.d/vault_plugins/vault-ethereum" | cut -d' ' -f1) -vault write sys/plugins/catalog/ethereum-plugin \ - sha_256="${SHA256}" \ - command="vault-ethereum --ca-cert=/etc/vault.d/root.crt --client-cert=/etc/vault.d/vault.crt --client-key=/etc/vault.d/vault.key" - vault mount -path="ethereum" -plugin-name="ethereum-plugin" plugin