// LoadStore reads and decrypt a trousseau data store from the // provided path, using the provided encryption options. func LoadStore(path string, opts *crypto.Options) (*Store, error) { var store *Store = NewStore(path, opts) var err error = nil switch opts.Algorithm { case crypto.GPG_ENCRYPTION: var f *openpgp.GpgFile var jsonData []byte f, err = openpgp.OpenFile(path, os.O_RDONLY, opts.Passphrase, opts.Recipients) if err != nil { return nil, fmt.Errorf("trousseau data store not found (%s)", err.(*os.PathError).Path) } defer f.Close() jsonData, err = f.ReadAll() if err != nil { return nil, err } err = store.FromJson(jsonData) if err != nil { return nil, err } default: return nil, fmt.Errorf("Invalid encryption method provided") } return store, nil }