aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-07-24 13:54:57 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-07-24 13:54:57 +0200
commitc324026725f64671bd81b71acb92e008a14cbee0 (patch)
tree1edb53411caa479407df4c6cf684b4f0cb2d3bc7
parent64ae9e0462a3378e6581296fa3c663ba61d7f13f (diff)
Split it for now
-rw-r--r--sign.go48
1 files changed, 41 insertions, 7 deletions
diff --git a/sign.go b/sign.go
index 8c99f4e..5600b6b 100644
--- a/sign.go
+++ b/sign.go
@@ -34,20 +34,54 @@ func sign(args []string) error {
}
_ = zip // TODO
- secKey, err := openSec(*secFile)
+ switch {
+ case *zip:
+ if err := signGzip(*secFile, *msgFile, *sigFile); err != nil {
+ return err
+ }
+ case *embedded:
+ if err := signEmbedded(*secFile, *msgFile, *sigFile); err != nil {
+ return err
+ }
+ default:
+ if err := signPlain(*secFile, *msgFile, *sigFile); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func signPlain(secFile, msgFile, sigFile string) error {
+ sec, err := openSec(secFile)
if err != nil {
return err
}
- msg, err := ioutil.ReadFile(*msgFile)
+ msg, err := ioutil.ReadFile(msgFile)
if err != nil {
return err
}
- sig := secKey.Sign(msg)
- comment := file.VerifyWith(*secFile)
- if !*embedded {
- msg = nil
+ sig := sec.Sign(msg)
+ comment := file.VerifyWith(secFile)
+ return file.EncodeFile(sigFile, file.ModeSig, sig, comment, nil)
+}
+
+func signEmbedded(secFile, msgFile, sigFile string) error {
+ sec, err := openSec(secFile)
+ if err != nil {
+ return err
+ }
+ msg, err := ioutil.ReadFile(msgFile)
+ if err != nil {
+ return err
}
- return file.EncodeFile(*sigFile, file.ModeSig, sig, comment, msg)
+ sig := sec.Sign(msg)
+ comment := file.VerifyWith(secFile)
+ return file.EncodeFile(sigFile, file.ModeSig, sig, comment, msg)
+}
+
+func signGzip(secFile, msgFile, sigFile string) error {
+ return nil
}
func openSec(fname string) (*key.Sec, error) {