certdump now reliably gets certs via stdin.
There was an issue doing something like cfssl bundle -domain kyleisom.net | jq .bundle | certdump which seems to have been caused by the way that newlines were encoded inside. The input is now massaged a bit to make it more palatable to the cert parser.
This commit is contained in:
parent
e33e8c3ce5
commit
e40745db9f
|
@ -1,6 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"crypto/dsa"
|
"crypto/dsa"
|
||||||
"crypto/ecdsa"
|
"crypto/ecdsa"
|
||||||
"crypto/elliptic"
|
"crypto/elliptic"
|
||||||
|
@ -214,12 +215,17 @@ func main() {
|
||||||
flag.BoolVar(&leafOnly, "l", false, "only show the leaf certificate")
|
flag.BoolVar(&leafOnly, "l", false, "only show the leaf certificate")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
if flag.NArg() == 0 || (flag.NArg() == 1 && flag.Arg(1) == "-") {
|
if flag.NArg() == 0 || (flag.NArg() == 1 && flag.Arg(0) == "-") {
|
||||||
certs, err := ioutil.ReadAll(os.Stdin)
|
certs, err := ioutil.ReadAll(os.Stdin)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
Warn(err, "couldn't read certificates from standard input")
|
Warn(err, "couldn't read certificates from standard input")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is needed for getting certs from JSON/jq.
|
||||||
|
certs = bytes.TrimSpace(certs)
|
||||||
|
certs = bytes.Replace(certs, []byte(`\n`), []byte{0xa}, -1)
|
||||||
|
certs = bytes.Trim(certs, `"`)
|
||||||
displayAllCerts(certs, leafOnly)
|
displayAllCerts(certs, leafOnly)
|
||||||
} else {
|
} else {
|
||||||
for _, filename := range flag.Args() {
|
for _, filename := range flag.Args() {
|
||||||
|
|
Loading…
Reference in New Issue