1
0
mirror of https://github.com/ssh-vault/ssh-vault.git synced 2025-07-03 03:22:34 +03:00
Files
ssh-vault/close.go
nbari a78f6fae70 deleted: aes.go
modified:   close.go
	modified:   cmd/ssh-vault/main.go
	modified:   vault.go
	modified:   vault_test.go
	modified:   view.go
2016-10-22 14:12:00 +02:00

35 lines
661 B
Go

package sshvault
import (
"bytes"
"encoding/base64"
"fmt"
"io/ioutil"
"github.com/ssh-vault/crypto/oaep"
)
// Close saves encrypted data to file
func (v *vault) Close(data []byte) error {
p, err := oaep.Encrypt(v.PublicKey, v.Password, []byte(""))
if err != nil {
return err
}
var payload bytes.Buffer
payload.WriteString(base64.StdEncoding.EncodeToString(p))
payload.WriteString(";")
payload.WriteString(base64.StdEncoding.EncodeToString(data))
err = ioutil.WriteFile(v.vault,
[]byte(fmt.Sprintf("SSH-VAULT;AES256;%s\n%s\n",
v.Fingerprint,
v.Encode(payload.String(), 64))),
0600,
)
if err != nil {
return err
}
return nil
}