Esempio n. 1
0
// Sync encrypts the store content and writes it to the disk
func (s *Store) Sync() error {
	switch s.encryptionOpts.Algorithm {
	case crypto.GPG_ENCRYPTION:
		var f *openpgp.GpgFile
		var err error

		f, err = openpgp.OpenFile(s.path,
			os.O_CREATE|os.O_WRONLY,
			s.encryptionOpts.Passphrase,
			s.Meta.Recipients)
		if err != nil {
			return err
		}
		defer f.Close()

		jsonData, err := s.ToJson()
		if err != nil {
			return err
		}

		_, err = f.Write([]byte(jsonData))
		if err != nil {
			return err
		}
	default:
		return fmt.Errorf("Invalid encryption method provided")
	}

	return nil
}