Skip to content
Snippets Groups Projects
Commit 2c673c17 authored by Mariano Cano's avatar Mariano Cano
Browse files

add debug messages

parent 1a2dcde8
Branches
No related tags found
No related merge requests found
// Copyright (c) 2018 The truststore Authors. All rights reserved.
package truststore package truststore
import ( import (
...@@ -65,3 +67,10 @@ func (e *CmdError) Cmd() *exec.Cmd { ...@@ -65,3 +67,10 @@ func (e *CmdError) Cmd() *exec.Cmd {
func (e *CmdError) Out() []byte { func (e *CmdError) Out() []byte {
return e.out return e.out
} }
func wrapError(err error, msg string) error {
if err == nil {
return nil
}
return fmt.Errorf("%s: %s", msg, err)
}
...@@ -6,7 +6,6 @@ import ( ...@@ -6,7 +6,6 @@ import (
"bytes" "bytes"
"crypto/x509" "crypto/x509"
"encoding/pem" "encoding/pem"
"fmt"
"io" "io"
"io/ioutil" "io/ioutil"
"log" "log"
...@@ -218,17 +217,6 @@ func uniqueName(cert *x509.Certificate) string { ...@@ -218,17 +217,6 @@ func uniqueName(cert *x509.Certificate) string {
return prefix + cert.SerialNumber.String() return prefix + cert.SerialNumber.String()
} }
func cmdError(err error, command string, out []byte) error {
return fmt.Errorf("failed to execute \"%s\": %s\n\n%s", command, err, out)
}
func wrapError(err error, msg string) error {
if err == nil {
return nil
}
return fmt.Errorf("%s: %s", msg, err)
}
func saveTempCert(cert *x509.Certificate) (string, func(), error) { func saveTempCert(cert *x509.Certificate) (string, func(), error) {
f, err := ioutil.TempFile(os.TempDir(), "truststore.*.pem") f, err := ioutil.TempFile(os.TempDir(), "truststore.*.pem")
if err != nil { if err != nil {
......
...@@ -13,7 +13,6 @@ import ( ...@@ -13,7 +13,6 @@ import (
"os/exec" "os/exec"
plist "github.com/DHowett/go-plist" plist "github.com/DHowett/go-plist"
"github.com/pkg/errors"
) )
var ( var (
...@@ -53,7 +52,7 @@ func installPlatform(filename string, cert *x509.Certificate) error { ...@@ -53,7 +52,7 @@ func installPlatform(filename string, cert *x509.Certificate) error {
cmd := exec.Command("sudo", "security", "add-trusted-cert", "-d", "-k", "/Library/Keychains/System.keychain", filename) cmd := exec.Command("sudo", "security", "add-trusted-cert", "-d", "-k", "/Library/Keychains/System.keychain", filename)
out, err := cmd.CombinedOutput() out, err := cmd.CombinedOutput()
if err != nil { if err != nil {
return cmdError(err, "security add-trusted-cert", out) return NewCmdError(err, cmd, out)
} }
// Make trustSettings explicit, as older Go does not know the defaults. // Make trustSettings explicit, as older Go does not know the defaults.
...@@ -67,7 +66,7 @@ func installPlatform(filename string, cert *x509.Certificate) error { ...@@ -67,7 +66,7 @@ func installPlatform(filename string, cert *x509.Certificate) error {
cmd = exec.Command("sudo", "security", "trust-settings-export", "-d", plistFile.Name()) cmd = exec.Command("sudo", "security", "trust-settings-export", "-d", plistFile.Name())
out, err = cmd.CombinedOutput() out, err = cmd.CombinedOutput()
if err != nil { if err != nil {
return cmdError(err, "security trust-settings-export", out) return NewCmdError(err, cmd, out)
} }
plistData, err := ioutil.ReadFile(plistFile.Name()) plistData, err := ioutil.ReadFile(plistFile.Name())
...@@ -101,19 +100,21 @@ func installPlatform(filename string, cert *x509.Certificate) error { ...@@ -101,19 +100,21 @@ func installPlatform(filename string, cert *x509.Certificate) error {
plistData, err = plist.MarshalIndent(plistRoot, plist.XMLFormat, "\t") plistData, err = plist.MarshalIndent(plistRoot, plist.XMLFormat, "\t")
if err != nil { if err != nil {
return errors.Wrap(err, "failed to serialize trust settings") return wrapError(err, "failed to serialize trust settings")
} }
err = ioutil.WriteFile(plistFile.Name(), plistData, 0600) err = ioutil.WriteFile(plistFile.Name(), plistData, 0600)
if err != nil { if err != nil {
return errors.Wrap(err, "failed to write trust settings") return wrapError(err, "failed to write trust settings")
} }
cmd = exec.Command("sudo", "security", "trust-settings-import", "-d", plistFile.Name()) cmd = exec.Command("sudo", "security", "trust-settings-import", "-d", plistFile.Name())
out, err = cmd.CombinedOutput() out, err = cmd.CombinedOutput()
if err != nil { if err != nil {
return errors.Errorf("failed to execute \"security trust-settings-import\": %s\n\n%s", err, out) return NewCmdError(err, cmd, out)
} }
debug("certificate installed properly in macOS keychain")
return nil return nil
} }
...@@ -121,7 +122,9 @@ func uninstallPlatform(filename string, cert *x509.Certificate) error { ...@@ -121,7 +122,9 @@ func uninstallPlatform(filename string, cert *x509.Certificate) error {
cmd := exec.Command("sudo", "security", "remove-trusted-cert", "-d", filename) cmd := exec.Command("sudo", "security", "remove-trusted-cert", "-d", filename)
out, err := cmd.CombinedOutput() out, err := cmd.CombinedOutput()
if err != nil { if err != nil {
return errors.Errorf("failed to execute \"security remove-trusted-cert\": %s\n\n%s", err, out) return NewCmdError(err, cmd, out)
} }
debug("certificate uninstalled properly from macOS keychain")
return nil return nil
} }
...@@ -80,6 +80,8 @@ func (t *JavaTrust) Install(filename string, cert *x509.Certificate) error { ...@@ -80,6 +80,8 @@ func (t *JavaTrust) Install(filename string, cert *x509.Certificate) error {
if out, err := execKeytool(cmd); err != nil { if out, err := execKeytool(cmd); err != nil {
return NewCmdError(err, cmd, out) return NewCmdError(err, cmd, out)
} }
debug("certificate installed properly in Java keystore")
return nil return nil
} }
...@@ -100,6 +102,8 @@ func (t *JavaTrust) Uninstall(filename string, cert *x509.Certificate) error { ...@@ -100,6 +102,8 @@ func (t *JavaTrust) Uninstall(filename string, cert *x509.Certificate) error {
if err != nil { if err != nil {
return NewCmdError(err, cmd, out) return NewCmdError(err, cmd, out)
} }
debug("certificate uninstalled properly from the Java keystore")
return nil return nil
} }
......
...@@ -71,6 +71,7 @@ func installPlatform(filename string, cert *x509.Certificate) error { ...@@ -71,6 +71,7 @@ func installPlatform(filename string, cert *x509.Certificate) error {
return cmdError(err, strings.Join(SystemTrustCommand, " "), out) return cmdError(err, strings.Join(SystemTrustCommand, " "), out)
} }
debug("certificate installed properly in linux trusts")
return nil return nil
} }
...@@ -91,6 +92,7 @@ func uninstallPlatform(filename string, cert *x509.Certificate) error { ...@@ -91,6 +92,7 @@ func uninstallPlatform(filename string, cert *x509.Certificate) error {
return cmdError(err, strings.Join(SystemTrustCommand, " "), out) return cmdError(err, strings.Join(SystemTrustCommand, " "), out)
} }
debug("certificate uninstalled properly from linux trusts")
return nil return nil
} }
......
...@@ -95,6 +95,9 @@ func (t *NSSTrust) Uninstall(filename string, cert *x509.Certificate) (err error ...@@ -95,6 +95,9 @@ func (t *NSSTrust) Uninstall(filename string, cert *x509.Certificate) (err error
err = NewCmdError(err1, cmd, out) err = NewCmdError(err1, cmd, out)
} }
}) })
if err == nil {
debug("certificate uninstalled properly from NSS security databases")
}
return return
} }
...@@ -115,6 +118,10 @@ func (t *NSSTrust) Exists(cert *x509.Certificate) bool { ...@@ -115,6 +118,10 @@ func (t *NSSTrust) Exists(cert *x509.Certificate) bool {
// PreCheck implements the Trust interface. // PreCheck implements the Trust interface.
func (t *NSSTrust) PreCheck() error { func (t *NSSTrust) PreCheck() error {
if t != nil {
return nil
}
if CertutilInstallHelp == "" { if CertutilInstallHelp == "" {
return fmt.Errorf("Note: NSS support is not available on your platform") return fmt.Errorf("Note: NSS support is not available on your platform")
} else { } else {
......
...@@ -40,6 +40,7 @@ func installPlatform(filename string, cert *x509.Certificate) error { ...@@ -40,6 +40,7 @@ func installPlatform(filename string, cert *x509.Certificate) error {
return wrapError(err, "add cert failed") return wrapError(err, "add cert failed")
} }
debug("certificate installed properly in windows trusts")
return nil return nil
} }
...@@ -61,6 +62,7 @@ func uninstallPlatform(filename string, cert *x509.Certificate) error { ...@@ -61,6 +62,7 @@ func uninstallPlatform(filename string, cert *x509.Certificate) error {
return ErrNotFound return ErrNotFound
} }
debug("certificate uninstalled properly from windows trusts")
return nil return nil
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment