From 50fb9aecbdf9bc637c1b3b2ae9eeb01ca06fe95e Mon Sep 17 00:00:00 2001 From: James Nugent Date: Fri, 31 Mar 2017 11:33:08 -0700 Subject: [PATCH] deps: Update github.com/joyent/triton-go/authentication (#13255) This commit allows private key material to be used with the Triton provider, which is necessary for running acceptance tests in the HashiCorp CI environment. --- .../authentication/private_key_signer.go | 15 +++++++++------ vendor/vendor.json | 10 +++++----- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/vendor/github.com/joyent/triton-go/authentication/private_key_signer.go b/vendor/github.com/joyent/triton-go/authentication/private_key_signer.go index aadb6ee5f..20dc6bfed 100644 --- a/vendor/github.com/joyent/triton-go/authentication/private_key_signer.go +++ b/vendor/github.com/joyent/triton-go/authentication/private_key_signer.go @@ -7,10 +7,12 @@ import ( "crypto/x509" "encoding/base64" "encoding/pem" + "errors" "fmt" + "strings" + "github.com/hashicorp/errwrap" "golang.org/x/crypto/ssh" - "strings" ) type PrivateKeySigner struct { @@ -27,23 +29,23 @@ func NewPrivateKeySigner(keyFingerprint string, privateKeyMaterial []byte, accou block, _ := pem.Decode(privateKeyMaterial) if block == nil { - return nil, fmt.Errorf("Error PEM-decoding private key material: nil block received") + return nil, errors.New("Error PEM-decoding private key material: nil block received") } rsakey, err := x509.ParsePKCS1PrivateKey(block.Bytes) if err != nil { - return nil, errwrap.Wrapf("Error parsing private key: %s", err) + return nil, errwrap.Wrapf("Error parsing private key: {{err}}", err) } sshPublicKey, err := ssh.NewPublicKey(rsakey.Public()) if err != nil { - return nil, errwrap.Wrapf("Error parsing SSH key from private key: %s", err) + return nil, errwrap.Wrapf("Error parsing SSH key from private key: {{err}}", err) } matchKeyFingerprint := formatPublicKeyFingerprint(sshPublicKey, false) displayKeyFingerprint := formatPublicKeyFingerprint(sshPublicKey, true) if matchKeyFingerprint != keyFingerprintMD5 { - return nil, fmt.Errorf("Private key file does not match public key fingerprint") + return nil, errors.New("Private key file does not match public key fingerprint") } return &PrivateKeySigner{ @@ -69,5 +71,6 @@ func (s *PrivateKeySigner) Sign(dateHeader string) (string, error) { } signedBase64 := base64.StdEncoding.EncodeToString(signed) - return fmt.Sprintf(authorizationHeaderFormat, s.formattedKeyFingerprint, "rsa-sha1", headerName, signedBase64), nil + keyID := fmt.Sprintf("/%s/keys/%s", s.accountName, s.formattedKeyFingerprint) + return fmt.Sprintf(authorizationHeaderFormat, keyID, "rsa-sha1", headerName, signedBase64), nil } diff --git a/vendor/vendor.json b/vendor/vendor.json index e8993495c..1d3e40282 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -2296,14 +2296,14 @@ { "checksumSHA1": "fue8Al8kqw/Q6VFPsNzoky7NIgo=", "path": "github.com/joyent/triton-go", - "revision": "ed036af6d128e3c1ef76e92218810d3b298d1407", - "revisionTime": "2017-03-30T22:02:44Z" + "revision": "66b31a94af28a65e902423879a2820ea34b773fb", + "revisionTime": "2017-03-31T18:12:29Z" }, { - "checksumSHA1": "7sIV9LK625xVO9WsV1gaLQgfBeY=", + "checksumSHA1": "QzUqkCSn/ZHyIK346xb9V6EBw9U=", "path": "github.com/joyent/triton-go/authentication", - "revision": "ed036af6d128e3c1ef76e92218810d3b298d1407", - "revisionTime": "2017-03-30T22:02:44Z" + "revision": "66b31a94af28a65e902423879a2820ea34b773fb", + "revisionTime": "2017-03-31T18:12:29Z" }, { "checksumSHA1": "YhQcOsGx8r2S/jkJ0Qt4cZ5BLCU=",