ocspdump.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Package ocspdump implements the ocspdump command.
  2. package ocspdump
  3. import (
  4. "encoding/base64"
  5. "errors"
  6. "fmt"
  7. "github.com/cloudflare/cfssl/certdb/dbconf"
  8. "github.com/cloudflare/cfssl/certdb/sql"
  9. "github.com/cloudflare/cfssl/cli"
  10. )
  11. // Usage text of 'cfssl ocspdump'
  12. var ocspdumpUsageText = `cfssl ocspdump -- generates a series of concatenated OCSP responses
  13. for use with ocspserve from all OCSP responses in the cert db
  14. Usage of ocspdump:
  15. cfssl ocspdump -db-config db-config
  16. Flags:
  17. `
  18. // Flags of 'cfssl ocspdump'
  19. var ocspdumpFlags = []string{"db-config"}
  20. // ocspdumpMain is the main CLI of OCSP dump functionality.
  21. func ocspdumpMain(args []string, c cli.Config) error {
  22. if c.DBConfigFile == "" {
  23. return errors.New("need DB config file (provide with -db-config)")
  24. }
  25. db, err := dbconf.DBFromConfig(c.DBConfigFile)
  26. if err != nil {
  27. return err
  28. }
  29. dbAccessor := sql.NewAccessor(db)
  30. records, err := dbAccessor.GetUnexpiredOCSPs()
  31. if err != nil {
  32. return err
  33. }
  34. for _, certRecord := range records {
  35. fmt.Printf("%s\n", base64.StdEncoding.EncodeToString([]byte(certRecord.Body)))
  36. }
  37. return nil
  38. }
  39. // Command assembles the definition of Command 'ocspdump'
  40. var Command = &cli.Command{UsageText: ocspdumpUsageText, Flags: ocspdumpFlags, Main: ocspdumpMain}