cloudflare/cfssl_trust

Public

mirrored from https://github.com/cloudflare/cfssl_trustAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
72e5ca0d26bbcab6b255f5495e1c2e255f0300a5

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

info/info.go

68lines · modecode

1package info
2
3import (
4 "crypto/x509"
5 "database/sql"
6 "fmt"
7 "io"
8 "os"
9 "time"
10
11 "github.com/cloudflare/cfssl_trust/model/certdb"
12)
13
14func writeBasicInformation(w io.Writer, cert *x509.Certificate) error {
15 _, err := fmt.Fprintf(w, `Subject: %s
16Issuer: %s
17 Not Before: %s
18 Not After: %s
19`, displayName(cert.Subject), displayName(cert.Issuer),
20 cert.NotBefore.Format(dateFormat),
21 cert.NotAfter.Format(dateFormat),
22 )
23 return err
24}
25
26func writeCertificateReleases(w io.Writer, tx *sql.Tx, cert *certdb.Certificate) error {
27 releases, err := cert.Releases(tx)
28 if err != nil {
29 return err
30 }
31
32 _, err = fmt.Fprintf(w, "Releases:\n")
33 if err != nil {
34 return err
35 }
36
37 for _, rel := range releases {
38 _, err = fmt.Fprintf(w, "\t- %s %s (%s)\n",
39 rel.Version, rel.Bundle,
40 time.Unix(rel.ReleasedAt, 0).Format(dateFormat))
41 if err != nil {
42 break
43 }
44 }
45
46 return err
47}
48
49func WriteCertificateInformation(w io.Writer, db *sql.DB, cert *certdb.Certificate) error {
50 tx, err := db.Begin()
51 if err != nil {
52 fmt.Fprintf(os.Stderr, "[!] %s\n", err)
53 os.Exit(1)
54 }
55 defer certdb.Finalize(&err, tx)
56
57 err = writeBasicInformation(w, cert.X509())
58 if err != nil {
59 return err
60 }
61
62 err = writeCertificateReleases(w, tx, cert)
63 if err != nil {
64 return err
65 }
66
67 return nil
68}
69