Browse Source

cmd/stsigtool: Sign stdin when not given a file to sign, or when given "-"

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3041
Jakob Borg 9 years ago
parent
commit
2ebc6996a2
1 changed files with 13 additions and 6 deletions
  1. 13 6
      cmd/stsigtool/main.go

+ 13 - 6
cmd/stsigtool/main.go

@@ -8,6 +8,7 @@ package main
 
 import (
 	"flag"
+	"io"
 	"io/ioutil"
 	"log"
 	"os"
@@ -31,7 +32,7 @@ Where command is one of:
 	gen
 		- generate a new key pair
 
-	sign <privkeyfile> <datafile>
+	sign <privkeyfile> [datafile]
 		- sign a file
 
 	verify <signaturefile> <datafile>
@@ -72,13 +73,19 @@ func sign(keyname, dataname string) {
 		log.Fatal(err)
 	}
 
-	fd, err := os.Open(dataname)
-	if err != nil {
-		log.Fatal(err)
+	var input io.Reader
+	if dataname == "-" || dataname == "" {
+		input = os.Stdin
+	} else {
+		fd, err := os.Open(dataname)
+		if err != nil {
+			log.Fatal(err)
+		}
+		defer fd.Close()
+		input = fd
 	}
-	defer fd.Close()
 
-	sig, err := signature.Sign(privkey, fd)
+	sig, err := signature.Sign(privkey, input)
 	if err != nil {
 		log.Fatal(err)
 	}