From 24496cd0b278352b44e9411d924185e306fa346b Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Mon, 13 Mar 2017 16:43:00 -0400 Subject: Removing goamz (#5753) --- .../goamz/goamz/cloudfront/cloudfront.go | 135 --------------------- .../goamz/goamz/cloudfront/cloudfront_test.go | 52 -------- .../goamz/goamz/cloudfront/testdata/key.pem | 15 --- .../goamz/goamz/cloudfront/testdata/key.pub | 6 - 4 files changed, 208 deletions(-) delete mode 100644 vendor/github.com/goamz/goamz/cloudfront/cloudfront.go delete mode 100644 vendor/github.com/goamz/goamz/cloudfront/cloudfront_test.go delete mode 100644 vendor/github.com/goamz/goamz/cloudfront/testdata/key.pem delete mode 100644 vendor/github.com/goamz/goamz/cloudfront/testdata/key.pub (limited to 'vendor/github.com/goamz/goamz/cloudfront') diff --git a/vendor/github.com/goamz/goamz/cloudfront/cloudfront.go b/vendor/github.com/goamz/goamz/cloudfront/cloudfront.go deleted file mode 100644 index 745060f1c..000000000 --- a/vendor/github.com/goamz/goamz/cloudfront/cloudfront.go +++ /dev/null @@ -1,135 +0,0 @@ -package cloudfront - -import ( - "crypto" - "crypto/rand" - "crypto/rsa" - "crypto/sha1" - "encoding/base64" - "encoding/json" - "fmt" - "net/url" - "strconv" - "strings" - "time" -) - -type CloudFront struct { - BaseURL string - keyPairId string - key *rsa.PrivateKey -} - -var base64Replacer = strings.NewReplacer("=", "_", "+", "-", "/", "~") - -func New(baseurl string, key *rsa.PrivateKey, keyPairId string) *CloudFront { - return &CloudFront{ - BaseURL: baseurl, - keyPairId: keyPairId, - key: key, - } -} - -type epochTime struct { - EpochTime int64 `json:"AWS:EpochTime"` -} - -type condition struct { - DateLessThan epochTime -} - -type statement struct { - Resource string - Condition condition -} - -type policy struct { - Statement []statement -} - -func buildPolicy(resource string, expireTime time.Time) ([]byte, error) { - p := &policy{ - Statement: []statement{ - statement{ - Resource: resource, - Condition: condition{ - DateLessThan: epochTime{ - EpochTime: expireTime.Truncate(time.Millisecond).Unix(), - }, - }, - }, - }, - } - - return json.Marshal(p) -} - -func (cf *CloudFront) generateSignature(policy []byte) (string, error) { - hash := sha1.New() - if _, err := hash.Write(policy); err != nil { - return "", err - } - - hashed := hash.Sum(nil) - - signed, err := rsa.SignPKCS1v15(rand.Reader, cf.key, crypto.SHA1, hashed) - if err != nil { - return "", err - } - - encoded := base64Replacer.Replace(base64.StdEncoding.EncodeToString(signed)) - - return encoded, nil -} - -// Creates a signed url using RSAwithSHA1 as specified by -// http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-canned-policy.html#private-content-canned-policy-creating-signature -func (cf *CloudFront) CannedSignedURL(path, queryString string, expires time.Time) (string, error) { - resource := cf.BaseURL + path - if queryString != "" { - resource = path + "?" + queryString - } - - policy, err := buildPolicy(resource, expires) - if err != nil { - return "", err - } - - signature, err := cf.generateSignature(policy) - if err != nil { - return "", err - } - - // TOOD: Do this once - uri, err := url.Parse(cf.BaseURL) - if err != nil { - return "", err - } - - uri.RawQuery = queryString - if queryString != "" { - uri.RawQuery += "&" - } - - expireTime := expires.Truncate(time.Millisecond).Unix() - - uri.Path = path - uri.RawQuery += fmt.Sprintf("Expires=%d&Signature=%s&Key-Pair-Id=%s", expireTime, signature, cf.keyPairId) - - return uri.String(), nil -} - -func (cloudfront *CloudFront) SignedURL(path, querystrings string, expires time.Time) string { - policy := `{"Statement":[{"Resource":"` + path + "?" + querystrings + `,"Condition":{"DateLessThan":{"AWS:EpochTime":` + strconv.FormatInt(expires.Truncate(time.Millisecond).Unix(), 10) + `}}}]}` - - hash := sha1.New() - hash.Write([]byte(policy)) - b := hash.Sum(nil) - he := base64.StdEncoding.EncodeToString(b) - - policySha1 := he - - url := cloudfront.BaseURL + path + "?" + querystrings + "&Expires=" + strconv.FormatInt(expires.Unix(), 10) + "&Signature=" + policySha1 + "&Key-Pair-Id=" + cloudfront.keyPairId - - return url -} diff --git a/vendor/github.com/goamz/goamz/cloudfront/cloudfront_test.go b/vendor/github.com/goamz/goamz/cloudfront/cloudfront_test.go deleted file mode 100644 index 63744d1cb..000000000 --- a/vendor/github.com/goamz/goamz/cloudfront/cloudfront_test.go +++ /dev/null @@ -1,52 +0,0 @@ -package cloudfront - -import ( - "crypto/x509" - "encoding/pem" - "io/ioutil" - "net/url" - "testing" - "time" -) - -func TestSignedCannedURL(t *testing.T) { - rawKey, err := ioutil.ReadFile("testdata/key.pem") - if err != nil { - t.Fatal(err) - } - - pemKey, _ := pem.Decode(rawKey) - privateKey, err := x509.ParsePKCS1PrivateKey(pemKey.Bytes) - if err != nil { - t.Fatal(err) - } - - cf := &CloudFront{ - key: privateKey, - keyPairId: "test-key-pair-1231245", - BaseURL: "https://cloudfront.com", - } - - expireTime, err := time.Parse(time.RFC3339, "2014-03-28T14:00:21Z") - if err != nil { - t.Fatal(err) - } - - query := make(url.Values) - query.Add("test", "value") - - uri, err := cf.CannedSignedURL("test", "test=value", expireTime) - if err != nil { - t.Fatal(err) - } - - parsed, err := url.Parse(uri) - if err != nil { - t.Fatal(err) - } - - signature := parsed.Query().Get("Signature") - if signature == "" { - t.Fatal("Encoded signature is empty") - } -} diff --git a/vendor/github.com/goamz/goamz/cloudfront/testdata/key.pem b/vendor/github.com/goamz/goamz/cloudfront/testdata/key.pem deleted file mode 100644 index 96e820a2c..000000000 --- a/vendor/github.com/goamz/goamz/cloudfront/testdata/key.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQC0yMzp9DkPAE99DhsEaGkqougLvtmDKri4bZj0fFjmGmjyyjz9 -hlrsr87LHVWzH/7igK7040HG1UqypX3ijtJa9+6BKHwBBctboU3y4GfwFwVAOumY -9UytFpyPlgUFrffZLQAywKkT24OgcfEj0G5kiQn760wFnmSUtOuITo708QIDAQAB -AoGAJUA6+PoZx72Io3wElSPuh5qJteHdb+mdpmLu4XG936wRc/W4G4VTtvGC6tdg -kUhGfOWHJ26sXwwUGDuBdO146m0DkBTuIooy97afpL6hXgL5v4ELHbbuFJcf4Geg -/UAuexvRT1HenYFQ/iXM0LlqI33i8cFRc1A+j0Gseo07gAECQQDYFCn7OUokX+Q8 -M2Cwhu7JT1obmP2HwsBtXl0CDDxtOQkuYJP/UqvtdYPz/kRn3yQjoynaCTHYrFz/ -H8oN1nNhAkEA1i9TEpo7RbanIyT4vbc1/5xfjE7Pj0lnGku0QXFp/S+8YxbqhjrQ -4Qp7TTXIPPqvQhhEpAGGspM460K3F6h7kQJBANJCbMeFa9wRY2ohJIkiA+HoUWph -aPNeUxkZpa+EcJhn08NJPzpIG/ypSYl3duEMhYIYF3WPVO3ea2/mYxsr/oECQFj5 -td/fdEoEk7AU1sQxDNyPwF2QC8dxbcRNuKcLD0Wfg/oB9hEm88jYytoLQpCabx3c -6P7cp3EdmaKZx2erlRECQDYTSK2tS0+VoXSV9JbU08Pbu53j3Zhmp4l0csP+l7EU -U+rRQzKho4X9vpR/VpRGXbw8tTIhojNpHh5ofryVfgk= ------END RSA PRIVATE KEY----- diff --git a/vendor/github.com/goamz/goamz/cloudfront/testdata/key.pub b/vendor/github.com/goamz/goamz/cloudfront/testdata/key.pub deleted file mode 100644 index 7d0b5b4d6..000000000 --- a/vendor/github.com/goamz/goamz/cloudfront/testdata/key.pub +++ /dev/null @@ -1,6 +0,0 @@ ------BEGIN PUBLIC KEY----- -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0yMzp9DkPAE99DhsEaGkqougL -vtmDKri4bZj0fFjmGmjyyjz9hlrsr87LHVWzH/7igK7040HG1UqypX3ijtJa9+6B -KHwBBctboU3y4GfwFwVAOumY9UytFpyPlgUFrffZLQAywKkT24OgcfEj0G5kiQn7 -60wFnmSUtOuITo708QIDAQAB ------END PUBLIC KEY----- -- cgit v1.2.3-1-g7c22