From 22dab3a8a169c49ad85e94aeb33921269828300e Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 30 Apr 2017 23:28:23 +0200 Subject: ... --- file.go | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) (limited to 'file.go') diff --git a/file.go b/file.go index afbcf26..8c956ae 100644 --- a/file.go +++ b/file.go @@ -129,7 +129,61 @@ func (f File) WriteFile(fname string, perm os.FileMode) error { //////////////////////////////////////////////////////////////////////// -func OpenEnc(fname string) (key *EncKey, err error) { +func WriteEnc(fname, comment string, key *EncKey) error { + fd, err := os.OpenFile(fname, os.O_WRONLY|os.O_CREATE, SecMode) + if err != nil { + return err + } + defer fd.Close() + b, err := Marshal(key) + if err != nil { + return err + } + block := &sig.Block{ + Comment: comment + " secret key", + Bytes: b, + } + return sig.Encode(fd, block) +} + +func WritePub(fname, comment string, key *PubKey) error { + fd, err := os.OpenFile(fname, os.O_WRONLY|os.O_CREATE, PubMode) + if err != nil { + return err + } + defer fd.Close() + b, err := Marshal(key) + if err != nil { + return err + } + block := &sig.Block{ + Comment: comment + " public key", + Bytes: b, + } + return sig.Encode(fd, block) +} + +func WriteSig(fname, comment string, message []byte, key *Sig) error { + fd, err := os.OpenFile(fname, os.O_WRONLY|os.O_CREATE, PubMode) + if err != nil { + return err + } + defer fd.Close() + b, err := Marshal(key) + if err != nil { + return err + } + block := &sig.Block{ + Comment: "verify with " + comment, + Bytes: b, + Message: message, + } + return sig.Encode(fd, block) +} + +//////////////////////////////////////////////////////////////////////// + +func OpenEnc(fname string) (*EncKey, error) { block, err := sig.DecodeFile(fname) if err != nil { return nil, err -- cgit v1.2.3