Skip to content

Commit 925a2f8

Browse files
authored
fix: certificate output when reading certificate from stdin or file (#9)
* remove character device checker * fix certificate info output
1 parent 92290dd commit 925a2f8

File tree

5 files changed

+10
-24
lines changed

5 files changed

+10
-24
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.pem

certify

-4.94 MB
Binary file not shown.

certify.go

+9-7
Original file line numberDiff line numberDiff line change
@@ -147,22 +147,24 @@ func CertInfo(cert *x509.Certificate) string {
147147
}
148148

149149
buf.WriteString(fmt.Sprintf("%8sX509v3 extensions:\n", ""))
150-
buf.WriteString(fmt.Sprintf("%12sX509v3 Extended Key Usage:\n", ""))
151-
buf.WriteString(fmt.Sprintf("%16s%v\n", "", parseExtKeyUsage(cert.ExtKeyUsage)))
152-
buf.WriteString(fmt.Sprintf("%8sX509v3 Basic Constraints:\n", ""))
153-
buf.WriteString(fmt.Sprintf("%12sCA: %v\n", "", cert.IsCA))
150+
if len(parseExtKeyUsage(cert.ExtKeyUsage)) != 0 {
151+
buf.WriteString(fmt.Sprintf("%12sX509v3 Extended Key Usage:\n", ""))
152+
buf.WriteString(fmt.Sprintf("%16s%v\n", "", parseExtKeyUsage(cert.ExtKeyUsage)))
153+
}
154+
buf.WriteString(fmt.Sprintf("%12sX509v3 Basic Constraints:\n", ""))
155+
buf.WriteString(fmt.Sprintf("%16sCA: %v\n", "", cert.IsCA))
154156

155157
if len(cert.IPAddresses) != 0 || len(cert.DNSNames) != 0 {
156-
buf.WriteString(fmt.Sprintf("%8sX509v3 Subject Alternative Name:\n", ""))
158+
buf.WriteString(fmt.Sprintf("%12sX509v3 Subject Alternative Name:\n", ""))
157159
if len(cert.IPAddresses) != 0 {
158160
var ips []string
159161
for _, ip := range cert.IPAddresses {
160162
ips = append(ips, ip.String())
161163
}
162-
buf.WriteString(fmt.Sprintf("%12sIP Address: %v\n", "", strings.Join(ips, ", ")))
164+
buf.WriteString(fmt.Sprintf("%16sIP Address: %v\n", "", strings.Join(ips, ", ")))
163165
}
164166
if len(cert.DNSNames) != 0 {
165-
buf.WriteString(fmt.Sprintf("%12sDNS: %v\n", "", strings.Join(cert.DNSNames, ", ")))
167+
buf.WriteString(fmt.Sprintf("%16sDNS: %v\n", "", strings.Join(cert.DNSNames, ", ")))
166168
}
167169
}
168170

cmd/certify/command.go

-4
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ func readCertificate(args []string, stdin *os.File) (string, error) {
3030
var err error
3131

3232
if len(args) < 3 {
33-
if err := isPipe(stdin); err != nil {
34-
return "", err
35-
}
36-
3733
certByte, err = io.ReadAll(stdin)
3834
if err != nil {
3935
return "", err

cmd/certify/helper.go

-13
Original file line numberDiff line numberDiff line change
@@ -428,19 +428,6 @@ func isExist(path string) bool {
428428
return !errors.Is(err, os.ErrNotExist)
429429
}
430430

431-
func isPipe(stdin *os.File) error {
432-
info, err := stdin.Stat()
433-
if err != nil {
434-
return err
435-
}
436-
437-
if info.Mode()&os.ModeCharDevice != 0 || info.Size() != 0 {
438-
return errors.New("can't read certificate, please provide certificate path or certificate content from stdin")
439-
}
440-
441-
return nil
442-
}
443-
444431
func parseTLSVersion(args []string) *tls.Config {
445432
for _, arg := range args[1:] {
446433
if strings.Contains(arg, "tlsver:") {

0 commit comments

Comments
 (0)