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

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3041
This commit is contained in:
Jakob Borg 2016-05-05 19:05:45 +00:00 committed by Audrius Butkevicius
parent 2e840134d2
commit 2ebc6996a2
1 changed files with 13 additions and 6 deletions

View File

@ -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)
}