http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/sha3/doc.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/sha3/doc.go 
b/cli/vendor/golang.org/x/crypto/sha3/doc.go
deleted file mode 100644
index a0ee3ae..0000000
--- a/cli/vendor/golang.org/x/crypto/sha3/doc.go
+++ /dev/null
@@ -1,66 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package sha3 implements the SHA-3 fixed-output-length hash functions and
-// the SHAKE variable-output-length hash functions defined by FIPS-202.
-//
-// Both types of hash function use the "sponge" construction and the Keccak
-// permutation. For a detailed specification see http://keccak.noekeon.org/
-//
-//
-// Guidance
-//
-// If you aren't sure what function you need, use SHAKE256 with at least 64
-// bytes of output. The SHAKE instances are faster than the SHA3 instances;
-// the latter have to allocate memory to conform to the hash.Hash interface.
-//
-// If you need a secret-key MAC (message authentication code), prepend the
-// secret key to the input, hash with SHAKE256 and read at least 32 bytes of
-// output.
-//
-//
-// Security strengths
-//
-// The SHA3-x (x equals 224, 256, 384, or 512) functions have a security
-// strength against preimage attacks of x bits. Since they only produce "x"
-// bits of output, their collision-resistance is only "x/2" bits.
-//
-// The SHAKE-256 and -128 functions have a generic security strength of 256 and
-// 128 bits against all attacks, provided that at least 2x bits of their output
-// is used.  Requesting more than 64 or 32 bytes of output, respectively, does
-// not increase the collision-resistance of the SHAKE functions.
-//
-//
-// The sponge construction
-//
-// A sponge builds a pseudo-random function from a public pseudo-random
-// permutation, by applying the permutation to a state of "rate + capacity"
-// bytes, but hiding "capacity" of the bytes.
-//
-// A sponge starts out with a zero state. To hash an input using a sponge, up
-// to "rate" bytes of the input are XORed into the sponge's state. The sponge
-// is then "full" and the permutation is applied to "empty" it. This process is
-// repeated until all the input has been "absorbed". The input is then padded.
-// The digest is "squeezed" from the sponge in the same way, except that output
-// output is copied out instead of input being XORed in.
-//
-// A sponge is parameterized by its generic security strength, which is equal
-// to half its capacity; capacity + rate is equal to the permutation's width.
-// Since the KeccakF-1600 permutation is 1600 bits (200 bytes) wide, this means
-// that the security strength of a sponge instance is equal to (1600 - 
bitrate) / 2.
-//
-//
-// Recommendations
-//
-// The SHAKE functions are recommended for most new uses. They can produce
-// output of arbitrary length. SHAKE256, with an output length of at least
-// 64 bytes, provides 256-bit security against all attacks.  The Keccak team
-// recommends it for most applications upgrading from SHA2-512. (NIST chose a
-// much stronger, but much slower, sponge instance for SHA3-512.)
-//
-// The SHA-3 functions are "drop-in" replacements for the SHA-2 functions.
-// They produce output of the same length, with the same security strengths
-// against all attacks. This means, in particular, that SHA3-256 only has
-// 128-bit collision resistance, because its output length is 32 bytes.
-package sha3 // import "golang.org/x/crypto/sha3"

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/sha3/hashes.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/sha3/hashes.go 
b/cli/vendor/golang.org/x/crypto/sha3/hashes.go
deleted file mode 100644
index 2b51cf4..0000000
--- a/cli/vendor/golang.org/x/crypto/sha3/hashes.go
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package sha3
-
-// This file provides functions for creating instances of the SHA-3
-// and SHAKE hash functions, as well as utility functions for hashing
-// bytes.
-
-import (
-       "hash"
-)
-
-// New224 creates a new SHA3-224 hash.
-// Its generic security strength is 224 bits against preimage attacks,
-// and 112 bits against collision attacks.
-func New224() hash.Hash { return &state{rate: 144, outputLen: 28, dsbyte: 
0x06} }
-
-// New256 creates a new SHA3-256 hash.
-// Its generic security strength is 256 bits against preimage attacks,
-// and 128 bits against collision attacks.
-func New256() hash.Hash { return &state{rate: 136, outputLen: 32, dsbyte: 
0x06} }
-
-// New384 creates a new SHA3-384 hash.
-// Its generic security strength is 384 bits against preimage attacks,
-// and 192 bits against collision attacks.
-func New384() hash.Hash { return &state{rate: 104, outputLen: 48, dsbyte: 
0x06} }
-
-// New512 creates a new SHA3-512 hash.
-// Its generic security strength is 512 bits against preimage attacks,
-// and 256 bits against collision attacks.
-func New512() hash.Hash { return &state{rate: 72, outputLen: 64, dsbyte: 0x06} 
}
-
-// Sum224 returns the SHA3-224 digest of the data.
-func Sum224(data []byte) (digest [28]byte) {
-       h := New224()
-       h.Write(data)
-       h.Sum(digest[:0])
-       return
-}
-
-// Sum256 returns the SHA3-256 digest of the data.
-func Sum256(data []byte) (digest [32]byte) {
-       h := New256()
-       h.Write(data)
-       h.Sum(digest[:0])
-       return
-}
-
-// Sum384 returns the SHA3-384 digest of the data.
-func Sum384(data []byte) (digest [48]byte) {
-       h := New384()
-       h.Write(data)
-       h.Sum(digest[:0])
-       return
-}
-
-// Sum512 returns the SHA3-512 digest of the data.
-func Sum512(data []byte) (digest [64]byte) {
-       h := New512()
-       h.Write(data)
-       h.Sum(digest[:0])
-       return
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/sha3/keccakf.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/sha3/keccakf.go 
b/cli/vendor/golang.org/x/crypto/sha3/keccakf.go
deleted file mode 100644
index 13e7058..0000000
--- a/cli/vendor/golang.org/x/crypto/sha3/keccakf.go
+++ /dev/null
@@ -1,410 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package sha3
-
-// rc stores the round constants for use in the ι step.
-var rc = [24]uint64{
-       0x0000000000000001,
-       0x0000000000008082,
-       0x800000000000808A,
-       0x8000000080008000,
-       0x000000000000808B,
-       0x0000000080000001,
-       0x8000000080008081,
-       0x8000000000008009,
-       0x000000000000008A,
-       0x0000000000000088,
-       0x0000000080008009,
-       0x000000008000000A,
-       0x000000008000808B,
-       0x800000000000008B,
-       0x8000000000008089,
-       0x8000000000008003,
-       0x8000000000008002,
-       0x8000000000000080,
-       0x000000000000800A,
-       0x800000008000000A,
-       0x8000000080008081,
-       0x8000000000008080,
-       0x0000000080000001,
-       0x8000000080008008,
-}
-
-// keccakF1600 applies the Keccak permutation to a 1600b-wide
-// state represented as a slice of 25 uint64s.
-func keccakF1600(a *[25]uint64) {
-       // Implementation translated from Keccak-inplace.c
-       // in the keccak reference code.
-       var t, bc0, bc1, bc2, bc3, bc4, d0, d1, d2, d3, d4 uint64
-
-       for i := 0; i < 24; i += 4 {
-               // Combines the 5 steps in each round into 2 steps.
-               // Unrolls 4 rounds per loop and spreads some steps across 
rounds.
-
-               // Round 1
-               bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20]
-               bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21]
-               bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22]
-               bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23]
-               bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24]
-               d0 = bc4 ^ (bc1<<1 | bc1>>63)
-               d1 = bc0 ^ (bc2<<1 | bc2>>63)
-               d2 = bc1 ^ (bc3<<1 | bc3>>63)
-               d3 = bc2 ^ (bc4<<1 | bc4>>63)
-               d4 = bc3 ^ (bc0<<1 | bc0>>63)
-
-               bc0 = a[0] ^ d0
-               t = a[6] ^ d1
-               bc1 = t<<44 | t>>(64-44)
-               t = a[12] ^ d2
-               bc2 = t<<43 | t>>(64-43)
-               t = a[18] ^ d3
-               bc3 = t<<21 | t>>(64-21)
-               t = a[24] ^ d4
-               bc4 = t<<14 | t>>(64-14)
-               a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i]
-               a[6] = bc1 ^ (bc3 &^ bc2)
-               a[12] = bc2 ^ (bc4 &^ bc3)
-               a[18] = bc3 ^ (bc0 &^ bc4)
-               a[24] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[10] ^ d0
-               bc2 = t<<3 | t>>(64-3)
-               t = a[16] ^ d1
-               bc3 = t<<45 | t>>(64-45)
-               t = a[22] ^ d2
-               bc4 = t<<61 | t>>(64-61)
-               t = a[3] ^ d3
-               bc0 = t<<28 | t>>(64-28)
-               t = a[9] ^ d4
-               bc1 = t<<20 | t>>(64-20)
-               a[10] = bc0 ^ (bc2 &^ bc1)
-               a[16] = bc1 ^ (bc3 &^ bc2)
-               a[22] = bc2 ^ (bc4 &^ bc3)
-               a[3] = bc3 ^ (bc0 &^ bc4)
-               a[9] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[20] ^ d0
-               bc4 = t<<18 | t>>(64-18)
-               t = a[1] ^ d1
-               bc0 = t<<1 | t>>(64-1)
-               t = a[7] ^ d2
-               bc1 = t<<6 | t>>(64-6)
-               t = a[13] ^ d3
-               bc2 = t<<25 | t>>(64-25)
-               t = a[19] ^ d4
-               bc3 = t<<8 | t>>(64-8)
-               a[20] = bc0 ^ (bc2 &^ bc1)
-               a[1] = bc1 ^ (bc3 &^ bc2)
-               a[7] = bc2 ^ (bc4 &^ bc3)
-               a[13] = bc3 ^ (bc0 &^ bc4)
-               a[19] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[5] ^ d0
-               bc1 = t<<36 | t>>(64-36)
-               t = a[11] ^ d1
-               bc2 = t<<10 | t>>(64-10)
-               t = a[17] ^ d2
-               bc3 = t<<15 | t>>(64-15)
-               t = a[23] ^ d3
-               bc4 = t<<56 | t>>(64-56)
-               t = a[4] ^ d4
-               bc0 = t<<27 | t>>(64-27)
-               a[5] = bc0 ^ (bc2 &^ bc1)
-               a[11] = bc1 ^ (bc3 &^ bc2)
-               a[17] = bc2 ^ (bc4 &^ bc3)
-               a[23] = bc3 ^ (bc0 &^ bc4)
-               a[4] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[15] ^ d0
-               bc3 = t<<41 | t>>(64-41)
-               t = a[21] ^ d1
-               bc4 = t<<2 | t>>(64-2)
-               t = a[2] ^ d2
-               bc0 = t<<62 | t>>(64-62)
-               t = a[8] ^ d3
-               bc1 = t<<55 | t>>(64-55)
-               t = a[14] ^ d4
-               bc2 = t<<39 | t>>(64-39)
-               a[15] = bc0 ^ (bc2 &^ bc1)
-               a[21] = bc1 ^ (bc3 &^ bc2)
-               a[2] = bc2 ^ (bc4 &^ bc3)
-               a[8] = bc3 ^ (bc0 &^ bc4)
-               a[14] = bc4 ^ (bc1 &^ bc0)
-
-               // Round 2
-               bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20]
-               bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21]
-               bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22]
-               bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23]
-               bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24]
-               d0 = bc4 ^ (bc1<<1 | bc1>>63)
-               d1 = bc0 ^ (bc2<<1 | bc2>>63)
-               d2 = bc1 ^ (bc3<<1 | bc3>>63)
-               d3 = bc2 ^ (bc4<<1 | bc4>>63)
-               d4 = bc3 ^ (bc0<<1 | bc0>>63)
-
-               bc0 = a[0] ^ d0
-               t = a[16] ^ d1
-               bc1 = t<<44 | t>>(64-44)
-               t = a[7] ^ d2
-               bc2 = t<<43 | t>>(64-43)
-               t = a[23] ^ d3
-               bc3 = t<<21 | t>>(64-21)
-               t = a[14] ^ d4
-               bc4 = t<<14 | t>>(64-14)
-               a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+1]
-               a[16] = bc1 ^ (bc3 &^ bc2)
-               a[7] = bc2 ^ (bc4 &^ bc3)
-               a[23] = bc3 ^ (bc0 &^ bc4)
-               a[14] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[20] ^ d0
-               bc2 = t<<3 | t>>(64-3)
-               t = a[11] ^ d1
-               bc3 = t<<45 | t>>(64-45)
-               t = a[2] ^ d2
-               bc4 = t<<61 | t>>(64-61)
-               t = a[18] ^ d3
-               bc0 = t<<28 | t>>(64-28)
-               t = a[9] ^ d4
-               bc1 = t<<20 | t>>(64-20)
-               a[20] = bc0 ^ (bc2 &^ bc1)
-               a[11] = bc1 ^ (bc3 &^ bc2)
-               a[2] = bc2 ^ (bc4 &^ bc3)
-               a[18] = bc3 ^ (bc0 &^ bc4)
-               a[9] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[15] ^ d0
-               bc4 = t<<18 | t>>(64-18)
-               t = a[6] ^ d1
-               bc0 = t<<1 | t>>(64-1)
-               t = a[22] ^ d2
-               bc1 = t<<6 | t>>(64-6)
-               t = a[13] ^ d3
-               bc2 = t<<25 | t>>(64-25)
-               t = a[4] ^ d4
-               bc3 = t<<8 | t>>(64-8)
-               a[15] = bc0 ^ (bc2 &^ bc1)
-               a[6] = bc1 ^ (bc3 &^ bc2)
-               a[22] = bc2 ^ (bc4 &^ bc3)
-               a[13] = bc3 ^ (bc0 &^ bc4)
-               a[4] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[10] ^ d0
-               bc1 = t<<36 | t>>(64-36)
-               t = a[1] ^ d1
-               bc2 = t<<10 | t>>(64-10)
-               t = a[17] ^ d2
-               bc3 = t<<15 | t>>(64-15)
-               t = a[8] ^ d3
-               bc4 = t<<56 | t>>(64-56)
-               t = a[24] ^ d4
-               bc0 = t<<27 | t>>(64-27)
-               a[10] = bc0 ^ (bc2 &^ bc1)
-               a[1] = bc1 ^ (bc3 &^ bc2)
-               a[17] = bc2 ^ (bc4 &^ bc3)
-               a[8] = bc3 ^ (bc0 &^ bc4)
-               a[24] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[5] ^ d0
-               bc3 = t<<41 | t>>(64-41)
-               t = a[21] ^ d1
-               bc4 = t<<2 | t>>(64-2)
-               t = a[12] ^ d2
-               bc0 = t<<62 | t>>(64-62)
-               t = a[3] ^ d3
-               bc1 = t<<55 | t>>(64-55)
-               t = a[19] ^ d4
-               bc2 = t<<39 | t>>(64-39)
-               a[5] = bc0 ^ (bc2 &^ bc1)
-               a[21] = bc1 ^ (bc3 &^ bc2)
-               a[12] = bc2 ^ (bc4 &^ bc3)
-               a[3] = bc3 ^ (bc0 &^ bc4)
-               a[19] = bc4 ^ (bc1 &^ bc0)
-
-               // Round 3
-               bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20]
-               bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21]
-               bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22]
-               bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23]
-               bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24]
-               d0 = bc4 ^ (bc1<<1 | bc1>>63)
-               d1 = bc0 ^ (bc2<<1 | bc2>>63)
-               d2 = bc1 ^ (bc3<<1 | bc3>>63)
-               d3 = bc2 ^ (bc4<<1 | bc4>>63)
-               d4 = bc3 ^ (bc0<<1 | bc0>>63)
-
-               bc0 = a[0] ^ d0
-               t = a[11] ^ d1
-               bc1 = t<<44 | t>>(64-44)
-               t = a[22] ^ d2
-               bc2 = t<<43 | t>>(64-43)
-               t = a[8] ^ d3
-               bc3 = t<<21 | t>>(64-21)
-               t = a[19] ^ d4
-               bc4 = t<<14 | t>>(64-14)
-               a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+2]
-               a[11] = bc1 ^ (bc3 &^ bc2)
-               a[22] = bc2 ^ (bc4 &^ bc3)
-               a[8] = bc3 ^ (bc0 &^ bc4)
-               a[19] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[15] ^ d0
-               bc2 = t<<3 | t>>(64-3)
-               t = a[1] ^ d1
-               bc3 = t<<45 | t>>(64-45)
-               t = a[12] ^ d2
-               bc4 = t<<61 | t>>(64-61)
-               t = a[23] ^ d3
-               bc0 = t<<28 | t>>(64-28)
-               t = a[9] ^ d4
-               bc1 = t<<20 | t>>(64-20)
-               a[15] = bc0 ^ (bc2 &^ bc1)
-               a[1] = bc1 ^ (bc3 &^ bc2)
-               a[12] = bc2 ^ (bc4 &^ bc3)
-               a[23] = bc3 ^ (bc0 &^ bc4)
-               a[9] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[5] ^ d0
-               bc4 = t<<18 | t>>(64-18)
-               t = a[16] ^ d1
-               bc0 = t<<1 | t>>(64-1)
-               t = a[2] ^ d2
-               bc1 = t<<6 | t>>(64-6)
-               t = a[13] ^ d3
-               bc2 = t<<25 | t>>(64-25)
-               t = a[24] ^ d4
-               bc3 = t<<8 | t>>(64-8)
-               a[5] = bc0 ^ (bc2 &^ bc1)
-               a[16] = bc1 ^ (bc3 &^ bc2)
-               a[2] = bc2 ^ (bc4 &^ bc3)
-               a[13] = bc3 ^ (bc0 &^ bc4)
-               a[24] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[20] ^ d0
-               bc1 = t<<36 | t>>(64-36)
-               t = a[6] ^ d1
-               bc2 = t<<10 | t>>(64-10)
-               t = a[17] ^ d2
-               bc3 = t<<15 | t>>(64-15)
-               t = a[3] ^ d3
-               bc4 = t<<56 | t>>(64-56)
-               t = a[14] ^ d4
-               bc0 = t<<27 | t>>(64-27)
-               a[20] = bc0 ^ (bc2 &^ bc1)
-               a[6] = bc1 ^ (bc3 &^ bc2)
-               a[17] = bc2 ^ (bc4 &^ bc3)
-               a[3] = bc3 ^ (bc0 &^ bc4)
-               a[14] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[10] ^ d0
-               bc3 = t<<41 | t>>(64-41)
-               t = a[21] ^ d1
-               bc4 = t<<2 | t>>(64-2)
-               t = a[7] ^ d2
-               bc0 = t<<62 | t>>(64-62)
-               t = a[18] ^ d3
-               bc1 = t<<55 | t>>(64-55)
-               t = a[4] ^ d4
-               bc2 = t<<39 | t>>(64-39)
-               a[10] = bc0 ^ (bc2 &^ bc1)
-               a[21] = bc1 ^ (bc3 &^ bc2)
-               a[7] = bc2 ^ (bc4 &^ bc3)
-               a[18] = bc3 ^ (bc0 &^ bc4)
-               a[4] = bc4 ^ (bc1 &^ bc0)
-
-               // Round 4
-               bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20]
-               bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21]
-               bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22]
-               bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23]
-               bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24]
-               d0 = bc4 ^ (bc1<<1 | bc1>>63)
-               d1 = bc0 ^ (bc2<<1 | bc2>>63)
-               d2 = bc1 ^ (bc3<<1 | bc3>>63)
-               d3 = bc2 ^ (bc4<<1 | bc4>>63)
-               d4 = bc3 ^ (bc0<<1 | bc0>>63)
-
-               bc0 = a[0] ^ d0
-               t = a[1] ^ d1
-               bc1 = t<<44 | t>>(64-44)
-               t = a[2] ^ d2
-               bc2 = t<<43 | t>>(64-43)
-               t = a[3] ^ d3
-               bc3 = t<<21 | t>>(64-21)
-               t = a[4] ^ d4
-               bc4 = t<<14 | t>>(64-14)
-               a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+3]
-               a[1] = bc1 ^ (bc3 &^ bc2)
-               a[2] = bc2 ^ (bc4 &^ bc3)
-               a[3] = bc3 ^ (bc0 &^ bc4)
-               a[4] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[5] ^ d0
-               bc2 = t<<3 | t>>(64-3)
-               t = a[6] ^ d1
-               bc3 = t<<45 | t>>(64-45)
-               t = a[7] ^ d2
-               bc4 = t<<61 | t>>(64-61)
-               t = a[8] ^ d3
-               bc0 = t<<28 | t>>(64-28)
-               t = a[9] ^ d4
-               bc1 = t<<20 | t>>(64-20)
-               a[5] = bc0 ^ (bc2 &^ bc1)
-               a[6] = bc1 ^ (bc3 &^ bc2)
-               a[7] = bc2 ^ (bc4 &^ bc3)
-               a[8] = bc3 ^ (bc0 &^ bc4)
-               a[9] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[10] ^ d0
-               bc4 = t<<18 | t>>(64-18)
-               t = a[11] ^ d1
-               bc0 = t<<1 | t>>(64-1)
-               t = a[12] ^ d2
-               bc1 = t<<6 | t>>(64-6)
-               t = a[13] ^ d3
-               bc2 = t<<25 | t>>(64-25)
-               t = a[14] ^ d4
-               bc3 = t<<8 | t>>(64-8)
-               a[10] = bc0 ^ (bc2 &^ bc1)
-               a[11] = bc1 ^ (bc3 &^ bc2)
-               a[12] = bc2 ^ (bc4 &^ bc3)
-               a[13] = bc3 ^ (bc0 &^ bc4)
-               a[14] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[15] ^ d0
-               bc1 = t<<36 | t>>(64-36)
-               t = a[16] ^ d1
-               bc2 = t<<10 | t>>(64-10)
-               t = a[17] ^ d2
-               bc3 = t<<15 | t>>(64-15)
-               t = a[18] ^ d3
-               bc4 = t<<56 | t>>(64-56)
-               t = a[19] ^ d4
-               bc0 = t<<27 | t>>(64-27)
-               a[15] = bc0 ^ (bc2 &^ bc1)
-               a[16] = bc1 ^ (bc3 &^ bc2)
-               a[17] = bc2 ^ (bc4 &^ bc3)
-               a[18] = bc3 ^ (bc0 &^ bc4)
-               a[19] = bc4 ^ (bc1 &^ bc0)
-
-               t = a[20] ^ d0
-               bc3 = t<<41 | t>>(64-41)
-               t = a[21] ^ d1
-               bc4 = t<<2 | t>>(64-2)
-               t = a[22] ^ d2
-               bc0 = t<<62 | t>>(64-62)
-               t = a[23] ^ d3
-               bc1 = t<<55 | t>>(64-55)
-               t = a[24] ^ d4
-               bc2 = t<<39 | t>>(64-39)
-               a[20] = bc0 ^ (bc2 &^ bc1)
-               a[21] = bc1 ^ (bc3 &^ bc2)
-               a[22] = bc2 ^ (bc4 &^ bc3)
-               a[23] = bc3 ^ (bc0 &^ bc4)
-               a[24] = bc4 ^ (bc1 &^ bc0)
-       }
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/sha3/register.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/sha3/register.go 
b/cli/vendor/golang.org/x/crypto/sha3/register.go
deleted file mode 100644
index 3cf6a22..0000000
--- a/cli/vendor/golang.org/x/crypto/sha3/register.go
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build go1.4
-
-package sha3
-
-import (
-       "crypto"
-)
-
-func init() {
-       crypto.RegisterHash(crypto.SHA3_224, New224)
-       crypto.RegisterHash(crypto.SHA3_256, New256)
-       crypto.RegisterHash(crypto.SHA3_384, New384)
-       crypto.RegisterHash(crypto.SHA3_512, New512)
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/sha3/sha3.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/sha3/sha3.go 
b/cli/vendor/golang.org/x/crypto/sha3/sha3.go
deleted file mode 100644
index c8fd31c..0000000
--- a/cli/vendor/golang.org/x/crypto/sha3/sha3.go
+++ /dev/null
@@ -1,193 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package sha3
-
-// spongeDirection indicates the direction bytes are flowing through the 
sponge.
-type spongeDirection int
-
-const (
-       // spongeAbsorbing indicates that the sponge is absorbing input.
-       spongeAbsorbing spongeDirection = iota
-       // spongeSqueezing indicates that the sponge is being squeezed.
-       spongeSqueezing
-)
-
-const (
-       // maxRate is the maximum size of the internal buffer. SHAKE-256
-       // currently needs the largest buffer.
-       maxRate = 168
-)
-
-type state struct {
-       // Generic sponge components.
-       a    [25]uint64 // main state of the hash
-       buf  []byte     // points into storage
-       rate int        // the number of bytes of state to use
-
-       // dsbyte contains the "domain separation" bits and the first bit of
-       // the padding. Sections 6.1 and 6.2 of [1] separate the outputs of the
-       // SHA-3 and SHAKE functions by appending bitstrings to the message.
-       // Using a little-endian bit-ordering convention, these are "01" for 
SHA-3
-       // and "1111" for SHAKE, or 00000010b and 00001111b, respectively. Then 
the
-       // padding rule from section 5.1 is applied to pad the message to a 
multiple
-       // of the rate, which involves adding a "1" bit, zero or more "0" bits, 
and
-       // a final "1" bit. We merge the first "1" bit from the padding into 
dsbyte,
-       // giving 00000110b (0x06) and 00011111b (0x1f).
-       // [1] 
http://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf
-       //     "Draft FIPS 202: SHA-3 Standard: Permutation-Based Hash and
-       //      Extendable-Output Functions (May 2014)"
-       dsbyte  byte
-       storage [maxRate]byte
-
-       // Specific to SHA-3 and SHAKE.
-       fixedOutput bool            // whether this is a fixed-ouput-length 
instance
-       outputLen   int             // the default output size in bytes
-       state       spongeDirection // whether the sponge is absorbing or 
squeezing
-}
-
-// BlockSize returns the rate of sponge underlying this hash function.
-func (d *state) BlockSize() int { return d.rate }
-
-// Size returns the output size of the hash function in bytes.
-func (d *state) Size() int { return d.outputLen }
-
-// Reset clears the internal state by zeroing the sponge state and
-// the byte buffer, and setting Sponge.state to absorbing.
-func (d *state) Reset() {
-       // Zero the permutation's state.
-       for i := range d.a {
-               d.a[i] = 0
-       }
-       d.state = spongeAbsorbing
-       d.buf = d.storage[:0]
-}
-
-func (d *state) clone() *state {
-       ret := *d
-       if ret.state == spongeAbsorbing {
-               ret.buf = ret.storage[:len(ret.buf)]
-       } else {
-               ret.buf = ret.storage[d.rate-cap(d.buf) : d.rate]
-       }
-
-       return &ret
-}
-
-// permute applies the KeccakF-1600 permutation. It handles
-// any input-output buffering.
-func (d *state) permute() {
-       switch d.state {
-       case spongeAbsorbing:
-               // If we're absorbing, we need to xor the input into the state
-               // before applying the permutation.
-               xorIn(d, d.buf)
-               d.buf = d.storage[:0]
-               keccakF1600(&d.a)
-       case spongeSqueezing:
-               // If we're squeezing, we need to apply the permutatin before
-               // copying more output.
-               keccakF1600(&d.a)
-               d.buf = d.storage[:d.rate]
-               copyOut(d, d.buf)
-       }
-}
-
-// pads appends the domain separation bits in dsbyte, applies
-// the multi-bitrate 10..1 padding rule, and permutes the state.
-func (d *state) padAndPermute(dsbyte byte) {
-       if d.buf == nil {
-               d.buf = d.storage[:0]
-       }
-       // Pad with this instance's domain-separator bits. We know that there's
-       // at least one byte of space in d.buf because, if it were full,
-       // permute would have been called to empty it. dsbyte also contains the
-       // first one bit for the padding. See the comment in the state struct.
-       d.buf = append(d.buf, dsbyte)
-       zerosStart := len(d.buf)
-       d.buf = d.storage[:d.rate]
-       for i := zerosStart; i < d.rate; i++ {
-               d.buf[i] = 0
-       }
-       // This adds the final one bit for the padding. Because of the way that
-       // bits are numbered from the LSB upwards, the final bit is the MSB of
-       // the last byte.
-       d.buf[d.rate-1] ^= 0x80
-       // Apply the permutation
-       d.permute()
-       d.state = spongeSqueezing
-       d.buf = d.storage[:d.rate]
-       copyOut(d, d.buf)
-}
-
-// Write absorbs more data into the hash's state. It produces an error
-// if more data is written to the ShakeHash after writing
-func (d *state) Write(p []byte) (written int, err error) {
-       if d.state != spongeAbsorbing {
-               panic("sha3: write to sponge after read")
-       }
-       if d.buf == nil {
-               d.buf = d.storage[:0]
-       }
-       written = len(p)
-
-       for len(p) > 0 {
-               if len(d.buf) == 0 && len(p) >= d.rate {
-                       // The fast path; absorb a full "rate" bytes of input 
and apply the permutation.
-                       xorIn(d, p[:d.rate])
-                       p = p[d.rate:]
-                       keccakF1600(&d.a)
-               } else {
-                       // The slow path; buffer the input until we can fill 
the sponge, and then xor it in.
-                       todo := d.rate - len(d.buf)
-                       if todo > len(p) {
-                               todo = len(p)
-                       }
-                       d.buf = append(d.buf, p[:todo]...)
-                       p = p[todo:]
-
-                       // If the sponge is full, apply the permutation.
-                       if len(d.buf) == d.rate {
-                               d.permute()
-                       }
-               }
-       }
-
-       return
-}
-
-// Read squeezes an arbitrary number of bytes from the sponge.
-func (d *state) Read(out []byte) (n int, err error) {
-       // If we're still absorbing, pad and apply the permutation.
-       if d.state == spongeAbsorbing {
-               d.padAndPermute(d.dsbyte)
-       }
-
-       n = len(out)
-
-       // Now, do the squeezing.
-       for len(out) > 0 {
-               n := copy(out, d.buf)
-               d.buf = d.buf[n:]
-               out = out[n:]
-
-               // Apply the permutation if we've squeezed the sponge dry.
-               if len(d.buf) == 0 {
-                       d.permute()
-               }
-       }
-
-       return
-}
-
-// Sum applies padding to the hash state and then squeezes out the desired
-// number of output bytes.
-func (d *state) Sum(in []byte) []byte {
-       // Make a copy of the original hash so that caller can keep writing
-       // and summing.
-       dup := d.clone()
-       hash := make([]byte, dup.outputLen)
-       dup.Read(hash)
-       return append(in, hash...)
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/sha3/sha3_test.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/sha3/sha3_test.go 
b/cli/vendor/golang.org/x/crypto/sha3/sha3_test.go
deleted file mode 100644
index caf72f2..0000000
--- a/cli/vendor/golang.org/x/crypto/sha3/sha3_test.go
+++ /dev/null
@@ -1,306 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package sha3
-
-// Tests include all the ShortMsgKATs provided by the Keccak team at
-// https://github.com/gvanas/KeccakCodePackage
-//
-// They only include the zero-bit case of the bitwise testvectors
-// published by NIST in the draft of FIPS-202.
-
-import (
-       "bytes"
-       "compress/flate"
-       "encoding/hex"
-       "encoding/json"
-       "hash"
-       "os"
-       "strings"
-       "testing"
-)
-
-const (
-       testString  = "brekeccakkeccak koax koax"
-       katFilename = "testdata/keccakKats.json.deflate"
-)
-
-// Internal-use instances of SHAKE used to test against KATs.
-func newHashShake128() hash.Hash {
-       return &state{rate: 168, dsbyte: 0x1f, outputLen: 512}
-}
-func newHashShake256() hash.Hash {
-       return &state{rate: 136, dsbyte: 0x1f, outputLen: 512}
-}
-
-// testDigests contains functions returning hash.Hash instances
-// with output-length equal to the KAT length for both SHA-3 and
-// SHAKE instances.
-var testDigests = map[string]func() hash.Hash{
-       "SHA3-224": New224,
-       "SHA3-256": New256,
-       "SHA3-384": New384,
-       "SHA3-512": New512,
-       "SHAKE128": newHashShake128,
-       "SHAKE256": newHashShake256,
-}
-
-// testShakes contains functions that return ShakeHash instances for
-// testing the ShakeHash-specific interface.
-var testShakes = map[string]func() ShakeHash{
-       "SHAKE128": NewShake128,
-       "SHAKE256": NewShake256,
-}
-
-// decodeHex converts a hex-encoded string into a raw byte string.
-func decodeHex(s string) []byte {
-       b, err := hex.DecodeString(s)
-       if err != nil {
-               panic(err)
-       }
-       return b
-}
-
-// structs used to marshal JSON test-cases.
-type KeccakKats struct {
-       Kats map[string][]struct {
-               Digest  string `json:"digest"`
-               Length  int64  `json:"length"`
-               Message string `json:"message"`
-       }
-}
-
-func testUnalignedAndGeneric(t *testing.T, testf func(impl string)) {
-       xorInOrig, copyOutOrig := xorIn, copyOut
-       xorIn, copyOut = xorInGeneric, copyOutGeneric
-       testf("generic")
-       if xorImplementationUnaligned != "generic" {
-               xorIn, copyOut = xorInUnaligned, copyOutUnaligned
-               testf("unaligned")
-       }
-       xorIn, copyOut = xorInOrig, copyOutOrig
-}
-
-// TestKeccakKats tests the SHA-3 and Shake implementations against all the
-// ShortMsgKATs from https://github.com/gvanas/KeccakCodePackage
-// (The testvectors are stored in keccakKats.json.deflate due to their length.)
-func TestKeccakKats(t *testing.T) {
-       testUnalignedAndGeneric(t, func(impl string) {
-               // Read the KATs.
-               deflated, err := os.Open(katFilename)
-               if err != nil {
-                       t.Errorf("error opening %s: %s", katFilename, err)
-               }
-               file := flate.NewReader(deflated)
-               dec := json.NewDecoder(file)
-               var katSet KeccakKats
-               err = dec.Decode(&katSet)
-               if err != nil {
-                       t.Errorf("error decoding KATs: %s", err)
-               }
-
-               // Do the KATs.
-               for functionName, kats := range katSet.Kats {
-                       d := testDigests[functionName]()
-                       for _, kat := range kats {
-                               d.Reset()
-                               in, err := hex.DecodeString(kat.Message)
-                               if err != nil {
-                                       t.Errorf("error decoding KAT: %s", err)
-                               }
-                               d.Write(in[:kat.Length/8])
-                               got := 
strings.ToUpper(hex.EncodeToString(d.Sum(nil)))
-                               if got != kat.Digest {
-                                       t.Errorf("function=%s, 
implementation=%s, length=%d\nmessage:\n  %s\ngot:\n  %s\nwanted:\n %s",
-                                               functionName, impl, kat.Length, 
kat.Message, got, kat.Digest)
-                                       t.Logf("wanted %+v", kat)
-                                       t.FailNow()
-                               }
-                               continue
-                       }
-               }
-       })
-}
-
-// TestUnalignedWrite tests that writing data in an arbitrary pattern with
-// small input buffers.
-func testUnalignedWrite(t *testing.T) {
-       testUnalignedAndGeneric(t, func(impl string) {
-               buf := sequentialBytes(0x10000)
-               for alg, df := range testDigests {
-                       d := df()
-                       d.Reset()
-                       d.Write(buf)
-                       want := d.Sum(nil)
-                       d.Reset()
-                       for i := 0; i < len(buf); {
-                               // Cycle through offsets which make a 137 byte 
sequence.
-                               // Because 137 is prime this sequence should 
exercise all corner cases.
-                               offsets := [17]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 
10, 11, 12, 13, 14, 15, 16, 1}
-                               for _, j := range offsets {
-                                       if v := len(buf) - i; v < j {
-                                               j = v
-                                       }
-                                       d.Write(buf[i : i+j])
-                                       i += j
-                               }
-                       }
-                       got := d.Sum(nil)
-                       if !bytes.Equal(got, want) {
-                               t.Errorf("Unaligned writes, implementation=%s, 
alg=%s\ngot %q, want %q", impl, alg, got, want)
-                       }
-               }
-       })
-}
-
-// TestAppend checks that appending works when reallocation is necessary.
-func TestAppend(t *testing.T) {
-       testUnalignedAndGeneric(t, func(impl string) {
-               d := New224()
-
-               for capacity := 2; capacity <= 66; capacity += 64 {
-                       // The first time around the loop, Sum will have to 
reallocate.
-                       // The second time, it will not.
-                       buf := make([]byte, 2, capacity)
-                       d.Reset()
-                       d.Write([]byte{0xcc})
-                       buf = d.Sum(buf)
-                       expected := 
"0000DF70ADC49B2E76EEE3A6931B93FA41841C3AF2CDF5B32A18B5478C39"
-                       if got := strings.ToUpper(hex.EncodeToString(buf)); got 
!= expected {
-                               t.Errorf("got %s, want %s", got, expected)
-                       }
-               }
-       })
-}
-
-// TestAppendNoRealloc tests that appending works when no reallocation is 
necessary.
-func TestAppendNoRealloc(t *testing.T) {
-       testUnalignedAndGeneric(t, func(impl string) {
-               buf := make([]byte, 1, 200)
-               d := New224()
-               d.Write([]byte{0xcc})
-               buf = d.Sum(buf)
-               expected := 
"00DF70ADC49B2E76EEE3A6931B93FA41841C3AF2CDF5B32A18B5478C39"
-               if got := strings.ToUpper(hex.EncodeToString(buf)); got != 
expected {
-                       t.Errorf("%s: got %s, want %s", impl, got, expected)
-               }
-       })
-}
-
-// TestSqueezing checks that squeezing the full output a single time produces
-// the same output as repeatedly squeezing the instance.
-func TestSqueezing(t *testing.T) {
-       testUnalignedAndGeneric(t, func(impl string) {
-               for functionName, newShakeHash := range testShakes {
-                       d0 := newShakeHash()
-                       d0.Write([]byte(testString))
-                       ref := make([]byte, 32)
-                       d0.Read(ref)
-
-                       d1 := newShakeHash()
-                       d1.Write([]byte(testString))
-                       var multiple []byte
-                       for _ = range ref {
-                               one := make([]byte, 1)
-                               d1.Read(one)
-                               multiple = append(multiple, one...)
-                       }
-                       if !bytes.Equal(ref, multiple) {
-                               t.Errorf("%s (%s): squeezing %d bytes one at a 
time failed", functionName, impl, len(ref))
-                       }
-               }
-       })
-}
-
-// sequentialBytes produces a buffer of size consecutive bytes 0x00, 0x01, 
..., used for testing.
-func sequentialBytes(size int) []byte {
-       result := make([]byte, size)
-       for i := range result {
-               result[i] = byte(i)
-       }
-       return result
-}
-
-// BenchmarkPermutationFunction measures the speed of the permutation function
-// with no input data.
-func BenchmarkPermutationFunction(b *testing.B) {
-       b.SetBytes(int64(200))
-       var lanes [25]uint64
-       for i := 0; i < b.N; i++ {
-               keccakF1600(&lanes)
-       }
-}
-
-// benchmarkHash tests the speed to hash num buffers of buflen each.
-func benchmarkHash(b *testing.B, h hash.Hash, size, num int) {
-       b.StopTimer()
-       h.Reset()
-       data := sequentialBytes(size)
-       b.SetBytes(int64(size * num))
-       b.StartTimer()
-
-       var state []byte
-       for i := 0; i < b.N; i++ {
-               for j := 0; j < num; j++ {
-                       h.Write(data)
-               }
-               state = h.Sum(state[:0])
-       }
-       b.StopTimer()
-       h.Reset()
-}
-
-// benchmarkShake is specialized to the Shake instances, which don't
-// require a copy on reading output.
-func benchmarkShake(b *testing.B, h ShakeHash, size, num int) {
-       b.StopTimer()
-       h.Reset()
-       data := sequentialBytes(size)
-       d := make([]byte, 32)
-
-       b.SetBytes(int64(size * num))
-       b.StartTimer()
-
-       for i := 0; i < b.N; i++ {
-               h.Reset()
-               for j := 0; j < num; j++ {
-                       h.Write(data)
-               }
-               h.Read(d)
-       }
-}
-
-func BenchmarkSha3_512_MTU(b *testing.B) { benchmarkHash(b, New512(), 1350, 1) 
}
-func BenchmarkSha3_384_MTU(b *testing.B) { benchmarkHash(b, New384(), 1350, 1) 
}
-func BenchmarkSha3_256_MTU(b *testing.B) { benchmarkHash(b, New256(), 1350, 1) 
}
-func BenchmarkSha3_224_MTU(b *testing.B) { benchmarkHash(b, New224(), 1350, 1) 
}
-
-func BenchmarkShake128_MTU(b *testing.B)  { benchmarkShake(b, NewShake128(), 
1350, 1) }
-func BenchmarkShake256_MTU(b *testing.B)  { benchmarkShake(b, NewShake256(), 
1350, 1) }
-func BenchmarkShake256_16x(b *testing.B)  { benchmarkShake(b, NewShake256(), 
16, 1024) }
-func BenchmarkShake256_1MiB(b *testing.B) { benchmarkShake(b, NewShake256(), 
1024, 1024) }
-
-func BenchmarkSha3_512_1MiB(b *testing.B) { benchmarkHash(b, New512(), 1024, 
1024) }
-
-func Example_sum() {
-       buf := []byte("some data to hash")
-       // A hash needs to be 64 bytes long to have 256-bit collision 
resistance.
-       h := make([]byte, 64)
-       // Compute a 64-byte hash of buf and put it in h.
-       ShakeSum256(h, buf)
-}
-
-func Example_mac() {
-       k := []byte("this is a secret key; you should generate a strong random 
key that's at least 32 bytes long")
-       buf := []byte("and this is some data to authenticate")
-       // A MAC with 32 bytes of output has 256-bit security strength -- if 
you use at least a 32-byte-long key.
-       h := make([]byte, 32)
-       d := NewShake256()
-       // Write the key into the hash.
-       d.Write(k)
-       // Now write the data.
-       d.Write(buf)
-       // Read 32 bytes of output from the hash into h.
-       d.Read(h)
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/sha3/shake.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/sha3/shake.go 
b/cli/vendor/golang.org/x/crypto/sha3/shake.go
deleted file mode 100644
index 841f986..0000000
--- a/cli/vendor/golang.org/x/crypto/sha3/shake.go
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package sha3
-
-// This file defines the ShakeHash interface, and provides
-// functions for creating SHAKE instances, as well as utility
-// functions for hashing bytes to arbitrary-length output.
-
-import (
-       "io"
-)
-
-// ShakeHash defines the interface to hash functions that
-// support arbitrary-length output.
-type ShakeHash interface {
-       // Write absorbs more data into the hash's state. It panics if input is
-       // written to it after output has been read from it.
-       io.Writer
-
-       // Read reads more output from the hash; reading affects the hash's
-       // state. (ShakeHash.Read is thus very different from Hash.Sum)
-       // It never returns an error.
-       io.Reader
-
-       // Clone returns a copy of the ShakeHash in its current state.
-       Clone() ShakeHash
-
-       // Reset resets the ShakeHash to its initial state.
-       Reset()
-}
-
-func (d *state) Clone() ShakeHash {
-       return d.clone()
-}
-
-// NewShake128 creates a new SHAKE128 variable-output-length ShakeHash.
-// Its generic security strength is 128 bits against all attacks if at
-// least 32 bytes of its output are used.
-func NewShake128() ShakeHash { return &state{rate: 168, dsbyte: 0x1f} }
-
-// NewShake256 creates a new SHAKE128 variable-output-length ShakeHash.
-// Its generic security strength is 256 bits against all attacks if
-// at least 64 bytes of its output are used.
-func NewShake256() ShakeHash { return &state{rate: 136, dsbyte: 0x1f} }
-
-// ShakeSum128 writes an arbitrary-length digest of data into hash.
-func ShakeSum128(hash, data []byte) {
-       h := NewShake128()
-       h.Write(data)
-       h.Read(hash)
-}
-
-// ShakeSum256 writes an arbitrary-length digest of data into hash.
-func ShakeSum256(hash, data []byte) {
-       h := NewShake256()
-       h.Write(data)
-       h.Read(hash)
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/sha3/testdata/keccakKats.json.deflate
----------------------------------------------------------------------
diff --git 
a/cli/vendor/golang.org/x/crypto/sha3/testdata/keccakKats.json.deflate 
b/cli/vendor/golang.org/x/crypto/sha3/testdata/keccakKats.json.deflate
deleted file mode 100644
index 62e85ae..0000000
Binary files 
a/cli/vendor/golang.org/x/crypto/sha3/testdata/keccakKats.json.deflate and 
/dev/null differ

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/sha3/xor.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/sha3/xor.go 
b/cli/vendor/golang.org/x/crypto/sha3/xor.go
deleted file mode 100644
index d622979..0000000
--- a/cli/vendor/golang.org/x/crypto/sha3/xor.go
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build !amd64,!386 appengine
-
-package sha3
-
-var (
-       xorIn            = xorInGeneric
-       copyOut          = copyOutGeneric
-       xorInUnaligned   = xorInGeneric
-       copyOutUnaligned = copyOutGeneric
-)
-
-const xorImplementationUnaligned = "generic"

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/sha3/xor_generic.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/sha3/xor_generic.go 
b/cli/vendor/golang.org/x/crypto/sha3/xor_generic.go
deleted file mode 100644
index fd35f02..0000000
--- a/cli/vendor/golang.org/x/crypto/sha3/xor_generic.go
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package sha3
-
-import "encoding/binary"
-
-// xorInGeneric xors the bytes in buf into the state; it
-// makes no non-portable assumptions about memory layout
-// or alignment.
-func xorInGeneric(d *state, buf []byte) {
-       n := len(buf) / 8
-
-       for i := 0; i < n; i++ {
-               a := binary.LittleEndian.Uint64(buf)
-               d.a[i] ^= a
-               buf = buf[8:]
-       }
-}
-
-// copyOutGeneric copies ulint64s to a byte buffer.
-func copyOutGeneric(d *state, b []byte) {
-       for i := 0; len(b) >= 8; i++ {
-               binary.LittleEndian.PutUint64(b, d.a[i])
-               b = b[8:]
-       }
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/sha3/xor_unaligned.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/sha3/xor_unaligned.go 
b/cli/vendor/golang.org/x/crypto/sha3/xor_unaligned.go
deleted file mode 100644
index c7851a1..0000000
--- a/cli/vendor/golang.org/x/crypto/sha3/xor_unaligned.go
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build amd64 386
-// +build !appengine
-
-package sha3
-
-import "unsafe"
-
-func xorInUnaligned(d *state, buf []byte) {
-       bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0]))
-       n := len(buf)
-       if n >= 72 {
-               d.a[0] ^= bw[0]
-               d.a[1] ^= bw[1]
-               d.a[2] ^= bw[2]
-               d.a[3] ^= bw[3]
-               d.a[4] ^= bw[4]
-               d.a[5] ^= bw[5]
-               d.a[6] ^= bw[6]
-               d.a[7] ^= bw[7]
-               d.a[8] ^= bw[8]
-       }
-       if n >= 104 {
-               d.a[9] ^= bw[9]
-               d.a[10] ^= bw[10]
-               d.a[11] ^= bw[11]
-               d.a[12] ^= bw[12]
-       }
-       if n >= 136 {
-               d.a[13] ^= bw[13]
-               d.a[14] ^= bw[14]
-               d.a[15] ^= bw[15]
-               d.a[16] ^= bw[16]
-       }
-       if n >= 144 {
-               d.a[17] ^= bw[17]
-       }
-       if n >= 168 {
-               d.a[18] ^= bw[18]
-               d.a[19] ^= bw[19]
-               d.a[20] ^= bw[20]
-       }
-}
-
-func copyOutUnaligned(d *state, buf []byte) {
-       ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0]))
-       copy(buf, ab[:])
-}
-
-var (
-       xorIn   = xorInUnaligned
-       copyOut = copyOutUnaligned
-)
-
-const xorImplementationUnaligned = "unaligned"

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/ssh/agent/client.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/ssh/agent/client.go 
b/cli/vendor/golang.org/x/crypto/ssh/agent/client.go
deleted file mode 100644
index 8c856a0..0000000
--- a/cli/vendor/golang.org/x/crypto/ssh/agent/client.go
+++ /dev/null
@@ -1,615 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-/*
-  Package agent implements a client to an ssh-agent daemon.
-
-References:
-  [PROTOCOL.agent]:    
http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.agent?rev=HEAD
-*/
-package agent // import "golang.org/x/crypto/ssh/agent"
-
-import (
-       "bytes"
-       "crypto/dsa"
-       "crypto/ecdsa"
-       "crypto/elliptic"
-       "crypto/rsa"
-       "encoding/base64"
-       "encoding/binary"
-       "errors"
-       "fmt"
-       "io"
-       "math/big"
-       "sync"
-
-       "golang.org/x/crypto/ssh"
-)
-
-// Agent represents the capabilities of an ssh-agent.
-type Agent interface {
-       // List returns the identities known to the agent.
-       List() ([]*Key, error)
-
-       // Sign has the agent sign the data using a protocol 2 key as defined
-       // in [PROTOCOL.agent] section 2.6.2.
-       Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error)
-
-       // Add adds a private key to the agent.
-       Add(key AddedKey) error
-
-       // Remove removes all identities with the given public key.
-       Remove(key ssh.PublicKey) error
-
-       // RemoveAll removes all identities.
-       RemoveAll() error
-
-       // Lock locks the agent. Sign and Remove will fail, and List will empty 
an empty list.
-       Lock(passphrase []byte) error
-
-       // Unlock undoes the effect of Lock
-       Unlock(passphrase []byte) error
-
-       // Signers returns signers for all the known keys.
-       Signers() ([]ssh.Signer, error)
-}
-
-// AddedKey describes an SSH key to be added to an Agent.
-type AddedKey struct {
-       // PrivateKey must be a *rsa.PrivateKey, *dsa.PrivateKey or
-       // *ecdsa.PrivateKey, which will be inserted into the agent.
-       PrivateKey interface{}
-       // Certificate, if not nil, is communicated to the agent and will be
-       // stored with the key.
-       Certificate *ssh.Certificate
-       // Comment is an optional, free-form string.
-       Comment string
-       // LifetimeSecs, if not zero, is the number of seconds that the
-       // agent will store the key for.
-       LifetimeSecs uint32
-       // ConfirmBeforeUse, if true, requests that the agent confirm with the
-       // user before each use of this key.
-       ConfirmBeforeUse bool
-}
-
-// See [PROTOCOL.agent], section 3.
-const (
-       agentRequestV1Identities = 1
-
-       // 3.2 Requests from client to agent for protocol 2 key operations
-       agentAddIdentity         = 17
-       agentRemoveIdentity      = 18
-       agentRemoveAllIdentities = 19
-       agentAddIdConstrained    = 25
-
-       // 3.3 Key-type independent requests from client to agent
-       agentAddSmartcardKey            = 20
-       agentRemoveSmartcardKey         = 21
-       agentLock                       = 22
-       agentUnlock                     = 23
-       agentAddSmartcardKeyConstrained = 26
-
-       // 3.7 Key constraint identifiers
-       agentConstrainLifetime = 1
-       agentConstrainConfirm  = 2
-)
-
-// maxAgentResponseBytes is the maximum agent reply size that is accepted. This
-// is a sanity check, not a limit in the spec.
-const maxAgentResponseBytes = 16 << 20
-
-// Agent messages:
-// These structures mirror the wire format of the corresponding ssh agent
-// messages found in [PROTOCOL.agent].
-
-// 3.4 Generic replies from agent to client
-const agentFailure = 5
-
-type failureAgentMsg struct{}
-
-const agentSuccess = 6
-
-type successAgentMsg struct{}
-
-// See [PROTOCOL.agent], section 2.5.2.
-const agentRequestIdentities = 11
-
-type requestIdentitiesAgentMsg struct{}
-
-// See [PROTOCOL.agent], section 2.5.2.
-const agentIdentitiesAnswer = 12
-
-type identitiesAnswerAgentMsg struct {
-       NumKeys uint32 `sshtype:"12"`
-       Keys    []byte `ssh:"rest"`
-}
-
-// See [PROTOCOL.agent], section 2.6.2.
-const agentSignRequest = 13
-
-type signRequestAgentMsg struct {
-       KeyBlob []byte `sshtype:"13"`
-       Data    []byte
-       Flags   uint32
-}
-
-// See [PROTOCOL.agent], section 2.6.2.
-
-// 3.6 Replies from agent to client for protocol 2 key operations
-const agentSignResponse = 14
-
-type signResponseAgentMsg struct {
-       SigBlob []byte `sshtype:"14"`
-}
-
-type publicKey struct {
-       Format string
-       Rest   []byte `ssh:"rest"`
-}
-
-// Key represents a protocol 2 public key as defined in
-// [PROTOCOL.agent], section 2.5.2.
-type Key struct {
-       Format  string
-       Blob    []byte
-       Comment string
-}
-
-func clientErr(err error) error {
-       return fmt.Errorf("agent: client error: %v", err)
-}
-
-// String returns the storage form of an agent key with the format, base64
-// encoded serialized key, and the comment if it is not empty.
-func (k *Key) String() string {
-       s := string(k.Format) + " " + base64.StdEncoding.EncodeToString(k.Blob)
-
-       if k.Comment != "" {
-               s += " " + k.Comment
-       }
-
-       return s
-}
-
-// Type returns the public key type.
-func (k *Key) Type() string {
-       return k.Format
-}
-
-// Marshal returns key blob to satisfy the ssh.PublicKey interface.
-func (k *Key) Marshal() []byte {
-       return k.Blob
-}
-
-// Verify satisfies the ssh.PublicKey interface, but is not
-// implemented for agent keys.
-func (k *Key) Verify(data []byte, sig *ssh.Signature) error {
-       return errors.New("agent: agent key does not know how to verify")
-}
-
-type wireKey struct {
-       Format string
-       Rest   []byte `ssh:"rest"`
-}
-
-func parseKey(in []byte) (out *Key, rest []byte, err error) {
-       var record struct {
-               Blob    []byte
-               Comment string
-               Rest    []byte `ssh:"rest"`
-       }
-
-       if err := ssh.Unmarshal(in, &record); err != nil {
-               return nil, nil, err
-       }
-
-       var wk wireKey
-       if err := ssh.Unmarshal(record.Blob, &wk); err != nil {
-               return nil, nil, err
-       }
-
-       return &Key{
-               Format:  wk.Format,
-               Blob:    record.Blob,
-               Comment: record.Comment,
-       }, record.Rest, nil
-}
-
-// client is a client for an ssh-agent process.
-type client struct {
-       // conn is typically a *net.UnixConn
-       conn io.ReadWriter
-       // mu is used to prevent concurrent access to the agent
-       mu sync.Mutex
-}
-
-// NewClient returns an Agent that talks to an ssh-agent process over
-// the given connection.
-func NewClient(rw io.ReadWriter) Agent {
-       return &client{conn: rw}
-}
-
-// call sends an RPC to the agent. On success, the reply is
-// unmarshaled into reply and replyType is set to the first byte of
-// the reply, which contains the type of the message.
-func (c *client) call(req []byte) (reply interface{}, err error) {
-       c.mu.Lock()
-       defer c.mu.Unlock()
-
-       msg := make([]byte, 4+len(req))
-       binary.BigEndian.PutUint32(msg, uint32(len(req)))
-       copy(msg[4:], req)
-       if _, err = c.conn.Write(msg); err != nil {
-               return nil, clientErr(err)
-       }
-
-       var respSizeBuf [4]byte
-       if _, err = io.ReadFull(c.conn, respSizeBuf[:]); err != nil {
-               return nil, clientErr(err)
-       }
-       respSize := binary.BigEndian.Uint32(respSizeBuf[:])
-       if respSize > maxAgentResponseBytes {
-               return nil, clientErr(err)
-       }
-
-       buf := make([]byte, respSize)
-       if _, err = io.ReadFull(c.conn, buf); err != nil {
-               return nil, clientErr(err)
-       }
-       reply, err = unmarshal(buf)
-       if err != nil {
-               return nil, clientErr(err)
-       }
-       return reply, err
-}
-
-func (c *client) simpleCall(req []byte) error {
-       resp, err := c.call(req)
-       if err != nil {
-               return err
-       }
-       if _, ok := resp.(*successAgentMsg); ok {
-               return nil
-       }
-       return errors.New("agent: failure")
-}
-
-func (c *client) RemoveAll() error {
-       return c.simpleCall([]byte{agentRemoveAllIdentities})
-}
-
-func (c *client) Remove(key ssh.PublicKey) error {
-       req := ssh.Marshal(&agentRemoveIdentityMsg{
-               KeyBlob: key.Marshal(),
-       })
-       return c.simpleCall(req)
-}
-
-func (c *client) Lock(passphrase []byte) error {
-       req := ssh.Marshal(&agentLockMsg{
-               Passphrase: passphrase,
-       })
-       return c.simpleCall(req)
-}
-
-func (c *client) Unlock(passphrase []byte) error {
-       req := ssh.Marshal(&agentUnlockMsg{
-               Passphrase: passphrase,
-       })
-       return c.simpleCall(req)
-}
-
-// List returns the identities known to the agent.
-func (c *client) List() ([]*Key, error) {
-       // see [PROTOCOL.agent] section 2.5.2.
-       req := []byte{agentRequestIdentities}
-
-       msg, err := c.call(req)
-       if err != nil {
-               return nil, err
-       }
-
-       switch msg := msg.(type) {
-       case *identitiesAnswerAgentMsg:
-               if msg.NumKeys > maxAgentResponseBytes/8 {
-                       return nil, errors.New("agent: too many keys in agent 
reply")
-               }
-               keys := make([]*Key, msg.NumKeys)
-               data := msg.Keys
-               for i := uint32(0); i < msg.NumKeys; i++ {
-                       var key *Key
-                       var err error
-                       if key, data, err = parseKey(data); err != nil {
-                               return nil, err
-                       }
-                       keys[i] = key
-               }
-               return keys, nil
-       case *failureAgentMsg:
-               return nil, errors.New("agent: failed to list keys")
-       }
-       panic("unreachable")
-}
-
-// Sign has the agent sign the data using a protocol 2 key as defined
-// in [PROTOCOL.agent] section 2.6.2.
-func (c *client) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) {
-       req := ssh.Marshal(signRequestAgentMsg{
-               KeyBlob: key.Marshal(),
-               Data:    data,
-       })
-
-       msg, err := c.call(req)
-       if err != nil {
-               return nil, err
-       }
-
-       switch msg := msg.(type) {
-       case *signResponseAgentMsg:
-               var sig ssh.Signature
-               if err := ssh.Unmarshal(msg.SigBlob, &sig); err != nil {
-                       return nil, err
-               }
-
-               return &sig, nil
-       case *failureAgentMsg:
-               return nil, errors.New("agent: failed to sign challenge")
-       }
-       panic("unreachable")
-}
-
-// unmarshal parses an agent message in packet, returning the parsed
-// form and the message type of packet.
-func unmarshal(packet []byte) (interface{}, error) {
-       if len(packet) < 1 {
-               return nil, errors.New("agent: empty packet")
-       }
-       var msg interface{}
-       switch packet[0] {
-       case agentFailure:
-               return new(failureAgentMsg), nil
-       case agentSuccess:
-               return new(successAgentMsg), nil
-       case agentIdentitiesAnswer:
-               msg = new(identitiesAnswerAgentMsg)
-       case agentSignResponse:
-               msg = new(signResponseAgentMsg)
-       default:
-               return nil, fmt.Errorf("agent: unknown type tag %d", packet[0])
-       }
-       if err := ssh.Unmarshal(packet, msg); err != nil {
-               return nil, err
-       }
-       return msg, nil
-}
-
-type rsaKeyMsg struct {
-       Type        string `sshtype:"17"`
-       N           *big.Int
-       E           *big.Int
-       D           *big.Int
-       Iqmp        *big.Int // IQMP = Inverse Q Mod P
-       P           *big.Int
-       Q           *big.Int
-       Comments    string
-       Constraints []byte `ssh:"rest"`
-}
-
-type dsaKeyMsg struct {
-       Type        string `sshtype:"17"`
-       P           *big.Int
-       Q           *big.Int
-       G           *big.Int
-       Y           *big.Int
-       X           *big.Int
-       Comments    string
-       Constraints []byte `ssh:"rest"`
-}
-
-type ecdsaKeyMsg struct {
-       Type        string `sshtype:"17"`
-       Curve       string
-       KeyBytes    []byte
-       D           *big.Int
-       Comments    string
-       Constraints []byte `ssh:"rest"`
-}
-
-// Insert adds a private key to the agent.
-func (c *client) insertKey(s interface{}, comment string, constraints []byte) 
error {
-       var req []byte
-       switch k := s.(type) {
-       case *rsa.PrivateKey:
-               if len(k.Primes) != 2 {
-                       return fmt.Errorf("agent: unsupported RSA key with %d 
primes", len(k.Primes))
-               }
-               k.Precompute()
-               req = ssh.Marshal(rsaKeyMsg{
-                       Type:        ssh.KeyAlgoRSA,
-                       N:           k.N,
-                       E:           big.NewInt(int64(k.E)),
-                       D:           k.D,
-                       Iqmp:        k.Precomputed.Qinv,
-                       P:           k.Primes[0],
-                       Q:           k.Primes[1],
-                       Comments:    comment,
-                       Constraints: constraints,
-               })
-       case *dsa.PrivateKey:
-               req = ssh.Marshal(dsaKeyMsg{
-                       Type:        ssh.KeyAlgoDSA,
-                       P:           k.P,
-                       Q:           k.Q,
-                       G:           k.G,
-                       Y:           k.Y,
-                       X:           k.X,
-                       Comments:    comment,
-                       Constraints: constraints,
-               })
-       case *ecdsa.PrivateKey:
-               nistID := fmt.Sprintf("nistp%d", k.Params().BitSize)
-               req = ssh.Marshal(ecdsaKeyMsg{
-                       Type:        "ecdsa-sha2-" + nistID,
-                       Curve:       nistID,
-                       KeyBytes:    elliptic.Marshal(k.Curve, k.X, k.Y),
-                       D:           k.D,
-                       Comments:    comment,
-                       Constraints: constraints,
-               })
-       default:
-               return fmt.Errorf("agent: unsupported key type %T", s)
-       }
-
-       // if constraints are present then the message type needs to be changed.
-       if len(constraints) != 0 {
-               req[0] = agentAddIdConstrained
-       }
-
-       resp, err := c.call(req)
-       if err != nil {
-               return err
-       }
-       if _, ok := resp.(*successAgentMsg); ok {
-               return nil
-       }
-       return errors.New("agent: failure")
-}
-
-type rsaCertMsg struct {
-       Type        string `sshtype:"17"`
-       CertBytes   []byte
-       D           *big.Int
-       Iqmp        *big.Int // IQMP = Inverse Q Mod P
-       P           *big.Int
-       Q           *big.Int
-       Comments    string
-       Constraints []byte `ssh:"rest"`
-}
-
-type dsaCertMsg struct {
-       Type        string `sshtype:"17"`
-       CertBytes   []byte
-       X           *big.Int
-       Comments    string
-       Constraints []byte `ssh:"rest"`
-}
-
-type ecdsaCertMsg struct {
-       Type        string `sshtype:"17"`
-       CertBytes   []byte
-       D           *big.Int
-       Comments    string
-       Constraints []byte `ssh:"rest"`
-}
-
-// Insert adds a private key to the agent. If a certificate is given,
-// that certificate is added instead as public key.
-func (c *client) Add(key AddedKey) error {
-       var constraints []byte
-
-       if secs := key.LifetimeSecs; secs != 0 {
-               constraints = append(constraints, agentConstrainLifetime)
-
-               var secsBytes [4]byte
-               binary.BigEndian.PutUint32(secsBytes[:], secs)
-               constraints = append(constraints, secsBytes[:]...)
-       }
-
-       if key.ConfirmBeforeUse {
-               constraints = append(constraints, agentConstrainConfirm)
-       }
-
-       if cert := key.Certificate; cert == nil {
-               return c.insertKey(key.PrivateKey, key.Comment, constraints)
-       } else {
-               return c.insertCert(key.PrivateKey, cert, key.Comment, 
constraints)
-       }
-}
-
-func (c *client) insertCert(s interface{}, cert *ssh.Certificate, comment 
string, constraints []byte) error {
-       var req []byte
-       switch k := s.(type) {
-       case *rsa.PrivateKey:
-               if len(k.Primes) != 2 {
-                       return fmt.Errorf("agent: unsupported RSA key with %d 
primes", len(k.Primes))
-               }
-               k.Precompute()
-               req = ssh.Marshal(rsaCertMsg{
-                       Type:        cert.Type(),
-                       CertBytes:   cert.Marshal(),
-                       D:           k.D,
-                       Iqmp:        k.Precomputed.Qinv,
-                       P:           k.Primes[0],
-                       Q:           k.Primes[1],
-                       Comments:    comment,
-                       Constraints: constraints,
-               })
-       case *dsa.PrivateKey:
-               req = ssh.Marshal(dsaCertMsg{
-                       Type:      cert.Type(),
-                       CertBytes: cert.Marshal(),
-                       X:         k.X,
-                       Comments:  comment,
-               })
-       case *ecdsa.PrivateKey:
-               req = ssh.Marshal(ecdsaCertMsg{
-                       Type:      cert.Type(),
-                       CertBytes: cert.Marshal(),
-                       D:         k.D,
-                       Comments:  comment,
-               })
-       default:
-               return fmt.Errorf("agent: unsupported key type %T", s)
-       }
-
-       // if constraints are present then the message type needs to be changed.
-       if len(constraints) != 0 {
-               req[0] = agentAddIdConstrained
-       }
-
-       signer, err := ssh.NewSignerFromKey(s)
-       if err != nil {
-               return err
-       }
-       if bytes.Compare(cert.Key.Marshal(), signer.PublicKey().Marshal()) != 0 
{
-               return errors.New("agent: signer and cert have different public 
key")
-       }
-
-       resp, err := c.call(req)
-       if err != nil {
-               return err
-       }
-       if _, ok := resp.(*successAgentMsg); ok {
-               return nil
-       }
-       return errors.New("agent: failure")
-}
-
-// Signers provides a callback for client authentication.
-func (c *client) Signers() ([]ssh.Signer, error) {
-       keys, err := c.List()
-       if err != nil {
-               return nil, err
-       }
-
-       var result []ssh.Signer
-       for _, k := range keys {
-               result = append(result, &agentKeyringSigner{c, k})
-       }
-       return result, nil
-}
-
-type agentKeyringSigner struct {
-       agent *client
-       pub   ssh.PublicKey
-}
-
-func (s *agentKeyringSigner) PublicKey() ssh.PublicKey {
-       return s.pub
-}
-
-func (s *agentKeyringSigner) Sign(rand io.Reader, data []byte) 
(*ssh.Signature, error) {
-       // The agent has its own entropy source, so the rand argument is 
ignored.
-       return s.agent.Sign(s.pub, data)
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/ssh/agent/client_test.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/ssh/agent/client_test.go 
b/cli/vendor/golang.org/x/crypto/ssh/agent/client_test.go
deleted file mode 100644
index ec7198d..0000000
--- a/cli/vendor/golang.org/x/crypto/ssh/agent/client_test.go
+++ /dev/null
@@ -1,287 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package agent
-
-import (
-       "bytes"
-       "crypto/rand"
-       "errors"
-       "net"
-       "os"
-       "os/exec"
-       "path/filepath"
-       "strconv"
-       "testing"
-
-       "golang.org/x/crypto/ssh"
-)
-
-// startAgent executes ssh-agent, and returns a Agent interface to it.
-func startAgent(t *testing.T) (client Agent, socket string, cleanup func()) {
-       if testing.Short() {
-               // ssh-agent is not always available, and the key
-               // types supported vary by platform.
-               t.Skip("skipping test due to -short")
-       }
-
-       bin, err := exec.LookPath("ssh-agent")
-       if err != nil {
-               t.Skip("could not find ssh-agent")
-       }
-
-       cmd := exec.Command(bin, "-s")
-       out, err := cmd.Output()
-       if err != nil {
-               t.Fatalf("cmd.Output: %v", err)
-       }
-
-       /* Output looks like:
-
-                  SSH_AUTH_SOCK=/tmp/ssh-P65gpcqArqvH/agent.15541; export 
SSH_AUTH_SOCK;
-                  SSH_AGENT_PID=15542; export SSH_AGENT_PID;
-                  echo Agent pid 15542;
-       */
-       fields := bytes.Split(out, []byte(";"))
-       line := bytes.SplitN(fields[0], []byte("="), 2)
-       line[0] = bytes.TrimLeft(line[0], "\n")
-       if string(line[0]) != "SSH_AUTH_SOCK" {
-               t.Fatalf("could not find key SSH_AUTH_SOCK in %q", fields[0])
-       }
-       socket = string(line[1])
-
-       line = bytes.SplitN(fields[2], []byte("="), 2)
-       line[0] = bytes.TrimLeft(line[0], "\n")
-       if string(line[0]) != "SSH_AGENT_PID" {
-               t.Fatalf("could not find key SSH_AGENT_PID in %q", fields[2])
-       }
-       pidStr := line[1]
-       pid, err := strconv.Atoi(string(pidStr))
-       if err != nil {
-               t.Fatalf("Atoi(%q): %v", pidStr, err)
-       }
-
-       conn, err := net.Dial("unix", string(socket))
-       if err != nil {
-               t.Fatalf("net.Dial: %v", err)
-       }
-
-       ac := NewClient(conn)
-       return ac, socket, func() {
-               proc, _ := os.FindProcess(pid)
-               if proc != nil {
-                       proc.Kill()
-               }
-               conn.Close()
-               os.RemoveAll(filepath.Dir(socket))
-       }
-}
-
-func testAgent(t *testing.T, key interface{}, cert *ssh.Certificate, 
lifetimeSecs uint32) {
-       agent, _, cleanup := startAgent(t)
-       defer cleanup()
-
-       testAgentInterface(t, agent, key, cert, lifetimeSecs)
-}
-
-func testAgentInterface(t *testing.T, agent Agent, key interface{}, cert 
*ssh.Certificate, lifetimeSecs uint32) {
-       signer, err := ssh.NewSignerFromKey(key)
-       if err != nil {
-               t.Fatalf("NewSignerFromKey(%T): %v", key, err)
-       }
-       // The agent should start up empty.
-       if keys, err := agent.List(); err != nil {
-               t.Fatalf("RequestIdentities: %v", err)
-       } else if len(keys) > 0 {
-               t.Fatalf("got %d keys, want 0: %v", len(keys), keys)
-       }
-
-       // Attempt to insert the key, with certificate if specified.
-       var pubKey ssh.PublicKey
-       if cert != nil {
-               err = agent.Add(AddedKey{
-                       PrivateKey:   key,
-                       Certificate:  cert,
-                       Comment:      "comment",
-                       LifetimeSecs: lifetimeSecs,
-               })
-               pubKey = cert
-       } else {
-               err = agent.Add(AddedKey{PrivateKey: key, Comment: "comment", 
LifetimeSecs: lifetimeSecs})
-               pubKey = signer.PublicKey()
-       }
-       if err != nil {
-               t.Fatalf("insert(%T): %v", key, err)
-       }
-
-       // Did the key get inserted successfully?
-       if keys, err := agent.List(); err != nil {
-               t.Fatalf("List: %v", err)
-       } else if len(keys) != 1 {
-               t.Fatalf("got %v, want 1 key", keys)
-       } else if keys[0].Comment != "comment" {
-               t.Fatalf("key comment: got %v, want %v", keys[0].Comment, 
"comment")
-       } else if !bytes.Equal(keys[0].Blob, pubKey.Marshal()) {
-               t.Fatalf("key mismatch")
-       }
-
-       // Can the agent make a valid signature?
-       data := []byte("hello")
-       sig, err := agent.Sign(pubKey, data)
-       if err != nil {
-               t.Fatalf("Sign(%s): %v", pubKey.Type(), err)
-       }
-
-       if err := pubKey.Verify(data, sig); err != nil {
-               t.Fatalf("Verify(%s): %v", pubKey.Type(), err)
-       }
-}
-
-func TestAgent(t *testing.T) {
-       for _, keyType := range []string{"rsa", "dsa", "ecdsa"} {
-               testAgent(t, testPrivateKeys[keyType], nil, 0)
-       }
-}
-
-func TestCert(t *testing.T) {
-       cert := &ssh.Certificate{
-               Key:         testPublicKeys["rsa"],
-               ValidBefore: ssh.CertTimeInfinity,
-               CertType:    ssh.UserCert,
-       }
-       cert.SignCert(rand.Reader, testSigners["ecdsa"])
-
-       testAgent(t, testPrivateKeys["rsa"], cert, 0)
-}
-
-func TestConstraints(t *testing.T) {
-       testAgent(t, testPrivateKeys["rsa"], nil, 3600 /* lifetime in seconds 
*/)
-}
-
-// netPipe is analogous to net.Pipe, but it uses a real net.Conn, and
-// therefore is buffered (net.Pipe deadlocks if both sides start with
-// a write.)
-func netPipe() (net.Conn, net.Conn, error) {
-       listener, err := net.Listen("tcp", "127.0.0.1:0")
-       if err != nil {
-               return nil, nil, err
-       }
-       defer listener.Close()
-       c1, err := net.Dial("tcp", listener.Addr().String())
-       if err != nil {
-               return nil, nil, err
-       }
-
-       c2, err := listener.Accept()
-       if err != nil {
-               c1.Close()
-               return nil, nil, err
-       }
-
-       return c1, c2, nil
-}
-
-func TestAuth(t *testing.T) {
-       a, b, err := netPipe()
-       if err != nil {
-               t.Fatalf("netPipe: %v", err)
-       }
-
-       defer a.Close()
-       defer b.Close()
-
-       agent, _, cleanup := startAgent(t)
-       defer cleanup()
-
-       if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["rsa"], 
Comment: "comment"}); err != nil {
-               t.Errorf("Add: %v", err)
-       }
-
-       serverConf := ssh.ServerConfig{}
-       serverConf.AddHostKey(testSigners["rsa"])
-       serverConf.PublicKeyCallback = func(c ssh.ConnMetadata, key 
ssh.PublicKey) (*ssh.Permissions, error) {
-               if bytes.Equal(key.Marshal(), testPublicKeys["rsa"].Marshal()) {
-                       return nil, nil
-               }
-
-               return nil, errors.New("pubkey rejected")
-       }
-
-       go func() {
-               conn, _, _, err := ssh.NewServerConn(a, &serverConf)
-               if err != nil {
-                       t.Fatalf("Server: %v", err)
-               }
-               conn.Close()
-       }()
-
-       conf := ssh.ClientConfig{}
-       conf.Auth = append(conf.Auth, ssh.PublicKeysCallback(agent.Signers))
-       conn, _, _, err := ssh.NewClientConn(b, "", &conf)
-       if err != nil {
-               t.Fatalf("NewClientConn: %v", err)
-       }
-       conn.Close()
-}
-
-func TestLockClient(t *testing.T) {
-       agent, _, cleanup := startAgent(t)
-       defer cleanup()
-       testLockAgent(agent, t)
-}
-
-func testLockAgent(agent Agent, t *testing.T) {
-       if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["rsa"], 
Comment: "comment 1"}); err != nil {
-               t.Errorf("Add: %v", err)
-       }
-       if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["dsa"], 
Comment: "comment dsa"}); err != nil {
-               t.Errorf("Add: %v", err)
-       }
-       if keys, err := agent.List(); err != nil {
-               t.Errorf("List: %v", err)
-       } else if len(keys) != 2 {
-               t.Errorf("Want 2 keys, got %v", keys)
-       }
-
-       passphrase := []byte("secret")
-       if err := agent.Lock(passphrase); err != nil {
-               t.Errorf("Lock: %v", err)
-       }
-
-       if keys, err := agent.List(); err != nil {
-               t.Errorf("List: %v", err)
-       } else if len(keys) != 0 {
-               t.Errorf("Want 0 keys, got %v", keys)
-       }
-
-       signer, _ := ssh.NewSignerFromKey(testPrivateKeys["rsa"])
-       if _, err := agent.Sign(signer.PublicKey(), []byte("hello")); err == 
nil {
-               t.Fatalf("Sign did not fail")
-       }
-
-       if err := agent.Remove(signer.PublicKey()); err == nil {
-               t.Fatalf("Remove did not fail")
-       }
-
-       if err := agent.RemoveAll(); err == nil {
-               t.Fatalf("RemoveAll did not fail")
-       }
-
-       if err := agent.Unlock(nil); err == nil {
-               t.Errorf("Unlock with wrong passphrase succeeded")
-       }
-       if err := agent.Unlock(passphrase); err != nil {
-               t.Errorf("Unlock: %v", err)
-       }
-
-       if err := agent.Remove(signer.PublicKey()); err != nil {
-               t.Fatalf("Remove: %v", err)
-       }
-
-       if keys, err := agent.List(); err != nil {
-               t.Errorf("List: %v", err)
-       } else if len(keys) != 1 {
-               t.Errorf("Want 1 keys, got %v", keys)
-       }
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/ssh/agent/forward.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/ssh/agent/forward.go 
b/cli/vendor/golang.org/x/crypto/ssh/agent/forward.go
deleted file mode 100644
index fd24ba9..0000000
--- a/cli/vendor/golang.org/x/crypto/ssh/agent/forward.go
+++ /dev/null
@@ -1,103 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package agent
-
-import (
-       "errors"
-       "io"
-       "net"
-       "sync"
-
-       "golang.org/x/crypto/ssh"
-)
-
-// RequestAgentForwarding sets up agent forwarding for the session.
-// ForwardToAgent or ForwardToRemote should be called to route
-// the authentication requests.
-func RequestAgentForwarding(session *ssh.Session) error {
-       ok, err := session.SendRequest("auth-agent-...@openssh.com", true, nil)
-       if err != nil {
-               return err
-       }
-       if !ok {
-               return errors.New("forwarding request denied")
-       }
-       return nil
-}
-
-// ForwardToAgent routes authentication requests to the given keyring.
-func ForwardToAgent(client *ssh.Client, keyring Agent) error {
-       channels := client.HandleChannelOpen(channelType)
-       if channels == nil {
-               return errors.New("agent: already have handler for " + 
channelType)
-       }
-
-       go func() {
-               for ch := range channels {
-                       channel, reqs, err := ch.Accept()
-                       if err != nil {
-                               continue
-                       }
-                       go ssh.DiscardRequests(reqs)
-                       go func() {
-                               ServeAgent(keyring, channel)
-                               channel.Close()
-                       }()
-               }
-       }()
-       return nil
-}
-
-const channelType = "auth-ag...@openssh.com"
-
-// ForwardToRemote routes authentication requests to the ssh-agent
-// process serving on the given unix socket.
-func ForwardToRemote(client *ssh.Client, addr string) error {
-       channels := client.HandleChannelOpen(channelType)
-       if channels == nil {
-               return errors.New("agent: already have handler for " + 
channelType)
-       }
-       conn, err := net.Dial("unix", addr)
-       if err != nil {
-               return err
-       }
-       conn.Close()
-
-       go func() {
-               for ch := range channels {
-                       channel, reqs, err := ch.Accept()
-                       if err != nil {
-                               continue
-                       }
-                       go ssh.DiscardRequests(reqs)
-                       go forwardUnixSocket(channel, addr)
-               }
-       }()
-       return nil
-}
-
-func forwardUnixSocket(channel ssh.Channel, addr string) {
-       conn, err := net.Dial("unix", addr)
-       if err != nil {
-               return
-       }
-
-       var wg sync.WaitGroup
-       wg.Add(2)
-       go func() {
-               io.Copy(conn, channel)
-               conn.(*net.UnixConn).CloseWrite()
-               wg.Done()
-       }()
-       go func() {
-               io.Copy(channel, conn)
-               channel.CloseWrite()
-               wg.Done()
-       }()
-
-       wg.Wait()
-       conn.Close()
-       channel.Close()
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/ssh/agent/keyring.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/ssh/agent/keyring.go 
b/cli/vendor/golang.org/x/crypto/ssh/agent/keyring.go
deleted file mode 100644
index 12ffa82..0000000
--- a/cli/vendor/golang.org/x/crypto/ssh/agent/keyring.go
+++ /dev/null
@@ -1,184 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package agent
-
-import (
-       "bytes"
-       "crypto/rand"
-       "crypto/subtle"
-       "errors"
-       "fmt"
-       "sync"
-
-       "golang.org/x/crypto/ssh"
-)
-
-type privKey struct {
-       signer  ssh.Signer
-       comment string
-}
-
-type keyring struct {
-       mu   sync.Mutex
-       keys []privKey
-
-       locked     bool
-       passphrase []byte
-}
-
-var errLocked = errors.New("agent: locked")
-
-// NewKeyring returns an Agent that holds keys in memory.  It is safe
-// for concurrent use by multiple goroutines.
-func NewKeyring() Agent {
-       return &keyring{}
-}
-
-// RemoveAll removes all identities.
-func (r *keyring) RemoveAll() error {
-       r.mu.Lock()
-       defer r.mu.Unlock()
-       if r.locked {
-               return errLocked
-       }
-
-       r.keys = nil
-       return nil
-}
-
-// Remove removes all identities with the given public key.
-func (r *keyring) Remove(key ssh.PublicKey) error {
-       r.mu.Lock()
-       defer r.mu.Unlock()
-       if r.locked {
-               return errLocked
-       }
-
-       want := key.Marshal()
-       found := false
-       for i := 0; i < len(r.keys); {
-               if bytes.Equal(r.keys[i].signer.PublicKey().Marshal(), want) {
-                       found = true
-                       r.keys[i] = r.keys[len(r.keys)-1]
-                       r.keys = r.keys[:len(r.keys)-1]
-                       continue
-               } else {
-                       i++
-               }
-       }
-
-       if !found {
-               return errors.New("agent: key not found")
-       }
-       return nil
-}
-
-// Lock locks the agent. Sign and Remove will fail, and List will empty an 
empty list.
-func (r *keyring) Lock(passphrase []byte) error {
-       r.mu.Lock()
-       defer r.mu.Unlock()
-       if r.locked {
-               return errLocked
-       }
-
-       r.locked = true
-       r.passphrase = passphrase
-       return nil
-}
-
-// Unlock undoes the effect of Lock
-func (r *keyring) Unlock(passphrase []byte) error {
-       r.mu.Lock()
-       defer r.mu.Unlock()
-       if !r.locked {
-               return errors.New("agent: not locked")
-       }
-       if len(passphrase) != len(r.passphrase) || 1 != 
subtle.ConstantTimeCompare(passphrase, r.passphrase) {
-               return fmt.Errorf("agent: incorrect passphrase")
-       }
-
-       r.locked = false
-       r.passphrase = nil
-       return nil
-}
-
-// List returns the identities known to the agent.
-func (r *keyring) List() ([]*Key, error) {
-       r.mu.Lock()
-       defer r.mu.Unlock()
-       if r.locked {
-               // section 2.7: locked agents return empty.
-               return nil, nil
-       }
-
-       var ids []*Key
-       for _, k := range r.keys {
-               pub := k.signer.PublicKey()
-               ids = append(ids, &Key{
-                       Format:  pub.Type(),
-                       Blob:    pub.Marshal(),
-                       Comment: k.comment})
-       }
-       return ids, nil
-}
-
-// Insert adds a private key to the keyring. If a certificate
-// is given, that certificate is added as public key. Note that
-// any constraints given are ignored.
-func (r *keyring) Add(key AddedKey) error {
-       r.mu.Lock()
-       defer r.mu.Unlock()
-       if r.locked {
-               return errLocked
-       }
-       signer, err := ssh.NewSignerFromKey(key.PrivateKey)
-
-       if err != nil {
-               return err
-       }
-
-       if cert := key.Certificate; cert != nil {
-               signer, err = ssh.NewCertSigner(cert, signer)
-               if err != nil {
-                       return err
-               }
-       }
-
-       r.keys = append(r.keys, privKey{signer, key.Comment})
-
-       return nil
-}
-
-// Sign returns a signature for the data.
-func (r *keyring) Sign(key ssh.PublicKey, data []byte) (*ssh.Signature, error) 
{
-       r.mu.Lock()
-       defer r.mu.Unlock()
-       if r.locked {
-               return nil, errLocked
-       }
-
-       wanted := key.Marshal()
-       for _, k := range r.keys {
-               if bytes.Equal(k.signer.PublicKey().Marshal(), wanted) {
-                       return k.signer.Sign(rand.Reader, data)
-               }
-       }
-       return nil, errors.New("not found")
-}
-
-// Signers returns signers for all the known keys.
-func (r *keyring) Signers() ([]ssh.Signer, error) {
-       r.mu.Lock()
-       defer r.mu.Unlock()
-       if r.locked {
-               return nil, errLocked
-       }
-
-       s := make([]ssh.Signer, 0, len(r.keys))
-       for _, k := range r.keys {
-               s = append(s, k.signer)
-       }
-       return s, nil
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/ssh/agent/keyring_test.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/ssh/agent/keyring_test.go 
b/cli/vendor/golang.org/x/crypto/ssh/agent/keyring_test.go
deleted file mode 100644
index 7f05905..0000000
--- a/cli/vendor/golang.org/x/crypto/ssh/agent/keyring_test.go
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package agent
-
-import (
-       "testing"
-)
-
-func addTestKey(t *testing.T, a Agent, keyName string) {
-       err := a.Add(AddedKey{
-               PrivateKey: testPrivateKeys[keyName],
-               Comment:    keyName,
-       })
-       if err != nil {
-               t.Fatalf("failed to add key %q: %v", keyName, err)
-       }
-}
-
-func removeTestKey(t *testing.T, a Agent, keyName string) {
-       err := a.Remove(testPublicKeys[keyName])
-       if err != nil {
-               t.Fatalf("failed to remove key %q: %v", keyName, err)
-       }
-}
-
-func validateListedKeys(t *testing.T, a Agent, expectedKeys []string) {
-       listedKeys, err := a.List()
-       if err != nil {
-               t.Fatalf("failed to list keys: %v", err)
-               return
-       }
-       actualKeys := make(map[string]bool)
-       for _, key := range listedKeys {
-               actualKeys[key.Comment] = true
-       }
-
-       matchedKeys := make(map[string]bool)
-       for _, expectedKey := range expectedKeys {
-               if !actualKeys[expectedKey] {
-                       t.Fatalf("expected key %q, but was not found", 
expectedKey)
-               } else {
-                       matchedKeys[expectedKey] = true
-               }
-       }
-
-       for actualKey := range actualKeys {
-               if !matchedKeys[actualKey] {
-                       t.Fatalf("key %q was found, but was not expected", 
actualKey)
-               }
-       }
-}
-
-func TestKeyringAddingAndRemoving(t *testing.T) {
-       keyNames := []string{"dsa", "ecdsa", "rsa", "user"}
-
-       // add all test private keys
-       k := NewKeyring()
-       for _, keyName := range keyNames {
-               addTestKey(t, k, keyName)
-       }
-       validateListedKeys(t, k, keyNames)
-
-       // remove a key in the middle
-       keyToRemove := keyNames[1]
-       keyNames = append(keyNames[:1], keyNames[2:]...)
-
-       removeTestKey(t, k, keyToRemove)
-       validateListedKeys(t, k, keyNames)
-
-       // remove all keys
-       err := k.RemoveAll()
-       if err != nil {
-               t.Fatalf("failed to remove all keys: %v", err)
-       }
-       validateListedKeys(t, k, []string{})
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/ssh/agent/server.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/ssh/agent/server.go 
b/cli/vendor/golang.org/x/crypto/ssh/agent/server.go
deleted file mode 100644
index b21a201..0000000
--- a/cli/vendor/golang.org/x/crypto/ssh/agent/server.go
+++ /dev/null
@@ -1,209 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package agent
-
-import (
-       "crypto/rsa"
-       "encoding/binary"
-       "fmt"
-       "io"
-       "log"
-       "math/big"
-
-       "golang.org/x/crypto/ssh"
-)
-
-// Server wraps an Agent and uses it to implement the agent side of
-// the SSH-agent, wire protocol.
-type server struct {
-       agent Agent
-}
-
-func (s *server) processRequestBytes(reqData []byte) []byte {
-       rep, err := s.processRequest(reqData)
-       if err != nil {
-               if err != errLocked {
-                       // TODO(hanwen): provide better logging interface?
-                       log.Printf("agent %d: %v", reqData[0], err)
-               }
-               return []byte{agentFailure}
-       }
-
-       if err == nil && rep == nil {
-               return []byte{agentSuccess}
-       }
-
-       return ssh.Marshal(rep)
-}
-
-func marshalKey(k *Key) []byte {
-       var record struct {
-               Blob    []byte
-               Comment string
-       }
-       record.Blob = k.Marshal()
-       record.Comment = k.Comment
-
-       return ssh.Marshal(&record)
-}
-
-type agentV1IdentityMsg struct {
-       Numkeys uint32 `sshtype:"2"`
-}
-
-type agentRemoveIdentityMsg struct {
-       KeyBlob []byte `sshtype:"18"`
-}
-
-type agentLockMsg struct {
-       Passphrase []byte `sshtype:"22"`
-}
-
-type agentUnlockMsg struct {
-       Passphrase []byte `sshtype:"23"`
-}
-
-func (s *server) processRequest(data []byte) (interface{}, error) {
-       switch data[0] {
-       case agentRequestV1Identities:
-               return &agentV1IdentityMsg{0}, nil
-       case agentRemoveIdentity:
-               var req agentRemoveIdentityMsg
-               if err := ssh.Unmarshal(data, &req); err != nil {
-                       return nil, err
-               }
-
-               var wk wireKey
-               if err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil {
-                       return nil, err
-               }
-
-               return nil, s.agent.Remove(&Key{Format: wk.Format, Blob: 
req.KeyBlob})
-
-       case agentRemoveAllIdentities:
-               return nil, s.agent.RemoveAll()
-
-       case agentLock:
-               var req agentLockMsg
-               if err := ssh.Unmarshal(data, &req); err != nil {
-                       return nil, err
-               }
-
-               return nil, s.agent.Lock(req.Passphrase)
-
-       case agentUnlock:
-               var req agentLockMsg
-               if err := ssh.Unmarshal(data, &req); err != nil {
-                       return nil, err
-               }
-               return nil, s.agent.Unlock(req.Passphrase)
-
-       case agentSignRequest:
-               var req signRequestAgentMsg
-               if err := ssh.Unmarshal(data, &req); err != nil {
-                       return nil, err
-               }
-
-               var wk wireKey
-               if err := ssh.Unmarshal(req.KeyBlob, &wk); err != nil {
-                       return nil, err
-               }
-
-               k := &Key{
-                       Format: wk.Format,
-                       Blob:   req.KeyBlob,
-               }
-
-               sig, err := s.agent.Sign(k, req.Data) //  TODO(hanwen): flags.
-               if err != nil {
-                       return nil, err
-               }
-               return &signResponseAgentMsg{SigBlob: ssh.Marshal(sig)}, nil
-       case agentRequestIdentities:
-               keys, err := s.agent.List()
-               if err != nil {
-                       return nil, err
-               }
-
-               rep := identitiesAnswerAgentMsg{
-                       NumKeys: uint32(len(keys)),
-               }
-               for _, k := range keys {
-                       rep.Keys = append(rep.Keys, marshalKey(k)...)
-               }
-               return rep, nil
-       case agentAddIdentity:
-               return nil, s.insertIdentity(data)
-       }
-
-       return nil, fmt.Errorf("unknown opcode %d", data[0])
-}
-
-func (s *server) insertIdentity(req []byte) error {
-       var record struct {
-               Type string `sshtype:"17"`
-               Rest []byte `ssh:"rest"`
-       }
-       if err := ssh.Unmarshal(req, &record); err != nil {
-               return err
-       }
-
-       switch record.Type {
-       case ssh.KeyAlgoRSA:
-               var k rsaKeyMsg
-               if err := ssh.Unmarshal(req, &k); err != nil {
-                       return err
-               }
-
-               priv := rsa.PrivateKey{
-                       PublicKey: rsa.PublicKey{
-                               E: int(k.E.Int64()),
-                               N: k.N,
-                       },
-                       D:      k.D,
-                       Primes: []*big.Int{k.P, k.Q},
-               }
-               priv.Precompute()
-
-               return s.agent.Add(AddedKey{PrivateKey: &priv, Comment: 
k.Comments})
-       }
-       return fmt.Errorf("not implemented: %s", record.Type)
-}
-
-// ServeAgent serves the agent protocol on the given connection. It
-// returns when an I/O error occurs.
-func ServeAgent(agent Agent, c io.ReadWriter) error {
-       s := &server{agent}
-
-       var length [4]byte
-       for {
-               if _, err := io.ReadFull(c, length[:]); err != nil {
-                       return err
-               }
-               l := binary.BigEndian.Uint32(length[:])
-               if l > maxAgentResponseBytes {
-                       // We also cap requests.
-                       return fmt.Errorf("agent: request too large: %d", l)
-               }
-
-               req := make([]byte, l)
-               if _, err := io.ReadFull(c, req); err != nil {
-                       return err
-               }
-
-               repData := s.processRequestBytes(req)
-               if len(repData) > maxAgentResponseBytes {
-                       return fmt.Errorf("agent: reply too large: %d bytes", 
len(repData))
-               }
-
-               binary.BigEndian.PutUint32(length[:], uint32(len(repData)))
-               if _, err := c.Write(length[:]); err != nil {
-                       return err
-               }
-               if _, err := c.Write(repData); err != nil {
-                       return err
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/ssh/agent/server_test.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/ssh/agent/server_test.go 
b/cli/vendor/golang.org/x/crypto/ssh/agent/server_test.go
deleted file mode 100644
index ef0ab29..0000000
--- a/cli/vendor/golang.org/x/crypto/ssh/agent/server_test.go
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package agent
-
-import (
-       "testing"
-
-       "golang.org/x/crypto/ssh"
-)
-
-func TestServer(t *testing.T) {
-       c1, c2, err := netPipe()
-       if err != nil {
-               t.Fatalf("netPipe: %v", err)
-       }
-       defer c1.Close()
-       defer c2.Close()
-       client := NewClient(c1)
-
-       go ServeAgent(NewKeyring(), c2)
-
-       testAgentInterface(t, client, testPrivateKeys["rsa"], nil, 0)
-}
-
-func TestLockServer(t *testing.T) {
-       testLockAgent(NewKeyring(), t)
-}
-
-func TestSetupForwardAgent(t *testing.T) {
-       a, b, err := netPipe()
-       if err != nil {
-               t.Fatalf("netPipe: %v", err)
-       }
-
-       defer a.Close()
-       defer b.Close()
-
-       _, socket, cleanup := startAgent(t)
-       defer cleanup()
-
-       serverConf := ssh.ServerConfig{
-               NoClientAuth: true,
-       }
-       serverConf.AddHostKey(testSigners["rsa"])
-       incoming := make(chan *ssh.ServerConn, 1)
-       go func() {
-               conn, _, _, err := ssh.NewServerConn(a, &serverConf)
-               if err != nil {
-                       t.Fatalf("Server: %v", err)
-               }
-               incoming <- conn
-       }()
-
-       conf := ssh.ClientConfig{}
-       conn, chans, reqs, err := ssh.NewClientConn(b, "", &conf)
-       if err != nil {
-               t.Fatalf("NewClientConn: %v", err)
-       }
-       client := ssh.NewClient(conn, chans, reqs)
-
-       if err := ForwardToRemote(client, socket); err != nil {
-               t.Fatalf("SetupForwardAgent: %v", err)
-       }
-
-       server := <-incoming
-       ch, reqs, err := server.OpenChannel(channelType, nil)
-       if err != nil {
-               t.Fatalf("OpenChannel(%q): %v", channelType, err)
-       }
-       go ssh.DiscardRequests(reqs)
-
-       agentClient := NewClient(ch)
-       testAgentInterface(t, agentClient, testPrivateKeys["rsa"], nil, 0)
-       conn.Close()
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/ssh/agent/testdata_test.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/ssh/agent/testdata_test.go 
b/cli/vendor/golang.org/x/crypto/ssh/agent/testdata_test.go
deleted file mode 100644
index b7a8781..0000000
--- a/cli/vendor/golang.org/x/crypto/ssh/agent/testdata_test.go
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// IMPLEMENTOR NOTE: To avoid a package loop, this file is in three places:
-// ssh/, ssh/agent, and ssh/test/. It should be kept in sync across all three
-// instances.
-
-package agent
-
-import (
-       "crypto/rand"
-       "fmt"
-
-       "golang.org/x/crypto/ssh"
-       "golang.org/x/crypto/ssh/testdata"
-)
-
-var (
-       testPrivateKeys map[string]interface{}
-       testSigners     map[string]ssh.Signer
-       testPublicKeys  map[string]ssh.PublicKey
-)
-
-func init() {
-       var err error
-
-       n := len(testdata.PEMBytes)
-       testPrivateKeys = make(map[string]interface{}, n)
-       testSigners = make(map[string]ssh.Signer, n)
-       testPublicKeys = make(map[string]ssh.PublicKey, n)
-       for t, k := range testdata.PEMBytes {
-               testPrivateKeys[t], err = ssh.ParseRawPrivateKey(k)
-               if err != nil {
-                       panic(fmt.Sprintf("Unable to parse test key %s: %v", t, 
err))
-               }
-               testSigners[t], err = ssh.NewSignerFromKey(testPrivateKeys[t])
-               if err != nil {
-                       panic(fmt.Sprintf("Unable to create signer for test key 
%s: %v", t, err))
-               }
-               testPublicKeys[t] = testSigners[t].PublicKey()
-       }
-
-       // Create a cert and sign it for use in tests.
-       testCert := &ssh.Certificate{
-               Nonce:           []byte{},                       // To pass 
reflect.DeepEqual after marshal & parse, this must be non-nil
-               ValidPrincipals: []string{"gopher1", "gopher2"}, // increases 
test coverage
-               ValidAfter:      0,                              // unix epoch
-               ValidBefore:     ssh.CertTimeInfinity,           // The end of 
currently representable time.
-               Reserved:        []byte{},                       // To pass 
reflect.DeepEqual after marshal & parse, this must be non-nil
-               Key:             testPublicKeys["ecdsa"],
-               SignatureKey:    testPublicKeys["rsa"],
-               Permissions: ssh.Permissions{
-                       CriticalOptions: map[string]string{},
-                       Extensions:      map[string]string{},
-               },
-       }
-       testCert.SignCert(rand.Reader, testSigners["rsa"])
-       testPrivateKeys["cert"] = testPrivateKeys["ecdsa"]
-       testSigners["cert"], err = ssh.NewCertSigner(testCert, 
testSigners["ecdsa"])
-       if err != nil {
-               panic(fmt.Sprintf("Unable to create certificate signer: %v", 
err))
-       }
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/ssh/benchmark_test.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/ssh/benchmark_test.go 
b/cli/vendor/golang.org/x/crypto/ssh/benchmark_test.go
deleted file mode 100644
index d9f7eb9..0000000
--- a/cli/vendor/golang.org/x/crypto/ssh/benchmark_test.go
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package ssh
-
-import (
-       "errors"
-       "io"
-       "net"
-       "testing"
-)
-
-type server struct {
-       *ServerConn
-       chans <-chan NewChannel
-}
-
-func newServer(c net.Conn, conf *ServerConfig) (*server, error) {
-       sconn, chans, reqs, err := NewServerConn(c, conf)
-       if err != nil {
-               return nil, err
-       }
-       go DiscardRequests(reqs)
-       return &server{sconn, chans}, nil
-}
-
-func (s *server) Accept() (NewChannel, error) {
-       n, ok := <-s.chans
-       if !ok {
-               return nil, io.EOF
-       }
-       return n, nil
-}
-
-func sshPipe() (Conn, *server, error) {
-       c1, c2, err := netPipe()
-       if err != nil {
-               return nil, nil, err
-       }
-
-       clientConf := ClientConfig{
-               User: "user",
-       }
-       serverConf := ServerConfig{
-               NoClientAuth: true,
-       }
-       serverConf.AddHostKey(testSigners["ecdsa"])
-       done := make(chan *server, 1)
-       go func() {
-               server, err := newServer(c2, &serverConf)
-               if err != nil {
-                       done <- nil
-               }
-               done <- server
-       }()
-
-       client, _, reqs, err := NewClientConn(c1, "", &clientConf)
-       if err != nil {
-               return nil, nil, err
-       }
-
-       server := <-done
-       if server == nil {
-               return nil, nil, errors.New("server handshake failed.")
-       }
-       go DiscardRequests(reqs)
-
-       return client, server, nil
-}
-
-func BenchmarkEndToEnd(b *testing.B) {
-       b.StopTimer()
-
-       client, server, err := sshPipe()
-       if err != nil {
-               b.Fatalf("sshPipe: %v", err)
-       }
-
-       defer client.Close()
-       defer server.Close()
-
-       size := (1 << 20)
-       input := make([]byte, size)
-       output := make([]byte, size)
-       b.SetBytes(int64(size))
-       done := make(chan int, 1)
-
-       go func() {
-               newCh, err := server.Accept()
-               if err != nil {
-                       b.Fatalf("Client: %v", err)
-               }
-               ch, incoming, err := newCh.Accept()
-               go DiscardRequests(incoming)
-               for i := 0; i < b.N; i++ {
-                       if _, err := io.ReadFull(ch, output); err != nil {
-                               b.Fatalf("ReadFull: %v", err)
-                       }
-               }
-               ch.Close()
-               done <- 1
-       }()
-
-       ch, in, err := client.OpenChannel("speed", nil)
-       if err != nil {
-               b.Fatalf("OpenChannel: %v", err)
-       }
-       go DiscardRequests(in)
-
-       b.ResetTimer()
-       b.StartTimer()
-       for i := 0; i < b.N; i++ {
-               if _, err := ch.Write(input); err != nil {
-                       b.Fatalf("WriteFull: %v", err)
-               }
-       }
-       ch.Close()
-       b.StopTimer()
-
-       <-done
-}

http://git-wip-us.apache.org/repos/asf/brooklyn-client/blob/868863aa/cli/vendor/golang.org/x/crypto/ssh/buffer.go
----------------------------------------------------------------------
diff --git a/cli/vendor/golang.org/x/crypto/ssh/buffer.go 
b/cli/vendor/golang.org/x/crypto/ssh/buffer.go
deleted file mode 100644
index 6931b51..0000000
--- a/cli/vendor/golang.org/x/crypto/ssh/buffer.go
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright 2012 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package ssh
-
-import (
-       "io"
-       "sync"
-)
-
-// buffer provides a linked list buffer for data exchange
-// between producer and consumer. Theoretically the buffer is
-// of unlimited capacity as it does no allocation of its own.
-type buffer struct {
-       // protects concurrent access to head, tail and closed
-       *sync.Cond
-
-       head *element // the buffer that will be read first
-       tail *element // the buffer that will be read last
-
-       closed bool
-}
-
-// An element represents a single link in a linked list.
-type element struct {
-       buf  []byte
-       next *element
-}
-
-// newBuffer returns an empty buffer that is not closed.
-func newBuffer() *buffer {
-       e := new(element)
-       b := &buffer{
-               Cond: newCond(),
-               head: e,
-               tail: e,
-       }
-       return b
-}
-
-// write makes buf available for Read to receive.
-// buf must not be modified after the call to write.
-func (b *buffer) write(buf []byte) {
-       b.Cond.L.Lock()
-       e := &element{buf: buf}
-       b.tail.next = e
-       b.tail = e
-       b.Cond.Signal()
-       b.Cond.L.Unlock()
-}
-
-// eof closes the buffer. Reads from the buffer once all
-// the data has been consumed will receive os.EOF.
-func (b *buffer) eof() error {
-       b.Cond.L.Lock()
-       b.closed = true
-       b.Cond.Signal()
-       b.Cond.L.Unlock()
-       return nil
-}
-
-// Read reads data from the internal buffer in buf.  Reads will block
-// if no data is available, or until the buffer is closed.
-func (b *buffer) Read(buf []byte) (n int, err error) {
-       b.Cond.L.Lock()
-       defer b.Cond.L.Unlock()
-
-       for len(buf) > 0 {
-               // if there is data in b.head, copy it
-               if len(b.head.buf) > 0 {
-                       r := copy(buf, b.head.buf)
-                       buf, b.head.buf = buf[r:], b.head.buf[r:]
-                       n += r
-                       continue
-               }
-               // if there is a next buffer, make it the head
-               if len(b.head.buf) == 0 && b.head != b.tail {
-                       b.head = b.head.next
-                       continue
-               }
-
-               // if at least one byte has been copied, return
-               if n > 0 {
-                       break
-               }
-
-               // if nothing was read, and there is nothing outstanding
-               // check to see if the buffer is closed.
-               if b.closed {
-                       err = io.EOF
-                       break
-               }
-               // out of buffers, wait for producer
-               b.Cond.Wait()
-       }
-       return
-}

Reply via email to