From 62edf30ea7b3985c8d76a0e06a0650e5f179014c Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 30 Apr 2017 14:15:04 +0200 Subject: ... --- file.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'file.go') diff --git a/file.go b/file.go index 0bc7c5d..afbcf26 100644 --- a/file.go +++ b/file.go @@ -10,6 +10,8 @@ import ( "io/ioutil" "os" "strings" + + "dim13.org/signify/sig" ) type File struct { @@ -124,3 +126,41 @@ func (f File) WriteFile(fname string, perm os.FileMode) error { defer fd.Close() return f.WriteTo(fd) } + +//////////////////////////////////////////////////////////////////////// + +func OpenEnc(fname string) (key *EncKey, err error) { + block, err := sig.DecodeFile(fname) + if err != nil { + return nil, err + } + key := new(EncKey) + if err := Unmarshal(block.Bytes, key); err != nil { + return nil, err + } + return key, nil +} + +func OpenPub(fname string) (*PubKey, error) { + block, err := sig.DecodeFile(fname) + if err != nil { + return nil, err + } + key := new(PubKey) + if err := Unmarshal(block.Bytes, key); err != nil { + return nil, err + } + return key, nil +} + +func OpenSig(fname string) (*Sig, error) { + block, err := sig.DecodeFile(fname) + if err != nil { + return nil, err + } + key := new(Sig) + if err := Unmarshal(block.Bytes, key); err != nil { + return nil, err + } + return key, nil +} -- cgit v1.2.3