aboutsummaryrefslogtreecommitdiff
path: root/file.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-04-30 23:28:23 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-04-30 23:28:23 +0200
commit22dab3a8a169c49ad85e94aeb33921269828300e (patch)
tree48718c88a1f88aa058ee73cb4b748ebb1ed80d52 /file.go
parent62edf30ea7b3985c8d76a0e06a0650e5f179014c (diff)
...
Diffstat (limited to 'file.go')
-rw-r--r--file.go56
1 files changed, 55 insertions, 1 deletions
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