aboutsummaryrefslogtreecommitdiff
path: root/file.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-04-30 14:15:04 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-04-30 14:15:04 +0200
commit62edf30ea7b3985c8d76a0e06a0650e5f179014c (patch)
tree987a4d182eeff274c1029b6cf6c383aee2dc3ef9 /file.go
parentcf8716e54b78c18ef4bea649451e59c1772ed937 (diff)
...
Diffstat (limited to 'file.go')
-rw-r--r--file.go40
1 files changed, 40 insertions, 0 deletions
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
+}