Skip to content

Commit d819711

Browse files
authored
changes to allow for go1.11 to work (#207)
1 parent 6a8514b commit d819711

File tree

6 files changed

+49
-65
lines changed

6 files changed

+49
-65
lines changed

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ LINTIGNOREINFLECT='service/[^/]+/(api|errors|service)\.go:.+(method|const) .+ sh
66
LINTIGNOREINFLECTS3UPLOAD='service/s3/s3manager/upload\.go:.+struct field SSEKMSKeyId should be '
77
LINTIGNOREDEPS='vendor/.+\.go'
88
LINTIGNOREPKGCOMMENT='service/[^/]+/doc_custom.go:.+package comment should be of the form'
9+
LINTIGNOREENDPOINTS='aws/endpoints/defaults.go:.+(method|const) .+ should be '
910
UNIT_TEST_TAGS="example codegen awsinclude"
1011

1112
SDK_WITH_VENDOR_PKGS=$(shell go list -tags ${UNIT_TEST_TAGS} ./... | grep -v "/vendor/src")
@@ -143,7 +144,7 @@ verify: get-deps-verify lint vet
143144
lint:
144145
@echo "go lint SDK and vendor packages"
145146
@lint=`if [ \( -z "${SDK_GO_1_4}" \) -a \( -z "${SDK_GO_1_5}" \) ]; then golint ./...; else echo "skipping golint"; fi`; \
146-
lint=`echo "$$lint" | grep -E -v -e ${LINTIGNOREDOT} -e ${LINTIGNOREDOC} -e ${LINTIGNORECONST} -e ${LINTIGNORESTUTTER} -e ${LINTIGNOREINFLECT} -e ${LINTIGNOREDEPS} -e ${LINTIGNOREINFLECTS3UPLOAD} -e ${LINTIGNOREPKGCOMMENT}`; \
147+
lint=`echo "$$lint" | grep -E -v -e ${LINTIGNOREDOT} -e ${LINTIGNOREDOC} -e ${LINTIGNORECONST} -e ${LINTIGNORESTUTTER} -e ${LINTIGNOREINFLECT} -e ${LINTIGNOREDEPS} -e ${LINTIGNOREINFLECTS3UPLOAD} -e ${LINTIGNOREPKGCOMMENT} -e ${LINTIGNOREENDPOINTS}`; \
147148
echo "$$lint"; \
148149
if [ "$$lint" != "" ] && [ "$$lint" != "skipping golint" ]; then exit 1; fi
149150

aws/retryer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ func isNestedErrorRetryable(parentErr awserr.Error) bool {
9696
}
9797

9898
if t, ok := err.(temporaryError); ok {
99-
return t.Temporary()
99+
return t.Temporary() || isErrConnectionReset(err)
100100
}
101101

102102
return isErrConnectionReset(err)

internal/awstesting/mock/mock.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package mock
22

33
import (
4+
"crypto/rsa"
5+
"math/big"
46
"net/http"
57
"net/http/httptest"
68

@@ -42,3 +44,30 @@ func NewMockClient(cfg aws.Config) *aws.Client {
4244
},
4345
)
4446
}
47+
48+
// RSAPrivateKey is used for testing functionality that requires some
49+
// sort of private key. Taken from crypto/rsa/rsa_test.go
50+
//
51+
// Credit to golang 1.11
52+
var RSAPrivateKey = &rsa.PrivateKey{
53+
PublicKey: rsa.PublicKey{
54+
N: fromBase10("14314132931241006650998084889274020608918049032671858325988396851334124245188214251956198731333464217832226406088020736932173064754214329009979944037640912127943488972644697423190955557435910767690712778463524983667852819010259499695177313115447116110358524558307947613422897787329221478860907963827160223559690523660574329011927531289655711860504630573766609239332569210831325633840174683944553667352219670930408593321661375473885147973879086994006440025257225431977751512374815915392249179976902953721486040787792801849818254465486633791826766873076617116727073077821584676715609985777563958286637185868165868520557"),
55+
E: 3,
56+
},
57+
D: fromBase10("9542755287494004433998723259516013739278699355114572217325597900889416163458809501304132487555642811888150937392013824621448709836142886006653296025093941418628992648429798282127303704957273845127141852309016655778568546006839666463451542076964744073572349705538631742281931858219480985907271975884773482372966847639853897890615456605598071088189838676728836833012254065983259638538107719766738032720239892094196108713378822882383694456030043492571063441943847195939549773271694647657549658603365629458610273821292232646334717612674519997533901052790334279661754176490593041941863932308687197618671528035670452762731"),
58+
Primes: []*big.Int{
59+
fromBase10("130903255182996722426771613606077755295583329135067340152947172868415809027537376306193179624298874215608270802054347609836776473930072411958753044562214537013874103802006369634761074377213995983876788718033850153719421695468704276694983032644416930879093914927146648402139231293035971427838068945045019075433"),
60+
fromBase10("109348945610485453577574767652527472924289229538286649661240938988020367005475727988253438647560958573506159449538793540472829815903949343191091817779240101054552748665267574271163617694640513549693841337820602726596756351006149518830932261246698766355347898158548465400674856021497190430791824869615170301029"),
61+
},
62+
}
63+
64+
// Taken from crypto/rsa/rsa_test.go
65+
//
66+
// Credit to golang 1.11
67+
func fromBase10(base10 string) *big.Int {
68+
i, ok := new(big.Int).SetString(base10, 10)
69+
if !ok {
70+
panic("bad number: " + base10)
71+
}
72+
return i
73+
}

service/cloudfront/sign/sign_cookie_example_test.go

Lines changed: 8 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ package sign
33
import (
44
"fmt"
55
"io"
6-
"math/rand"
76
"net/http"
87
"time"
8+
9+
"github.com/aws/aws-sdk-go-v2/internal/awstesting/mock"
910
)
1011

1112
func examplePEMReader() io.Reader {
@@ -18,20 +19,7 @@ func examplePEMReader() io.Reader {
1819
}
1920

2021
func ExampleCookieSigner_Sign() {
21-
origRandReader := randReader
22-
randReader = newRandomReader(rand.New(rand.NewSource(1)))
23-
defer func() {
24-
randReader = origRandReader
25-
}()
26-
27-
// Load your private key so it can be used by the CookieSigner
28-
// To load private key from file use `sign.LoadPEMPrivKeyFile`.
29-
privKey, err := LoadPEMPrivKey(examplePEMReader())
30-
if err != nil {
31-
fmt.Println("failed to load private key", err)
32-
return
33-
}
34-
22+
privKey := mock.RSAPrivateKey
3523
cookieSigner := NewCookieSigner("keyID", privKey)
3624

3725
// Use the signer to sign the URL
@@ -45,17 +33,11 @@ func ExampleCookieSigner_Sign() {
4533
// Output:
4634
// Cookies:
4735
// CloudFront-Policy: eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cDovL2V4YW1wbGUuY29tL3NvbWVwYXRoLyoiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEyNTc4OTU4MDB9fX1dfQ__, , , false
48-
// CloudFront-Signature: o~jvj~CFkvGZB~yYED3elicKZag-CRijy8yD2E5yF1s7VNV7kNeQWC7MDtEcBQ8-eh7Xgjh0wMPQdAVdh09gBObd-hXDpKUyh8YKxogj~oloV~8KOvqE5xzWiKcqjdfJjmT5iEqIui~H1ExYjyKjgir79npmlyYkaJS5s62EQa8_, , , false
36+
// CloudFront-Signature: Gx67J8t1VanOFWN84BQlpN064aGCicJv916esnPr9Rdb2RKEzl7VoDOsh9Uez7SY5blWATkN5F3xNicTpOupdN-ywrTf5zCTLz5RmvLrIyEDS3Y1knTGoWvp6nnIb9FOuI1rSyBaJ8VKuNVQGmvqzXGXsnipgSBPjpkL6Ja3dBXeKIbUeaLKQBZrtMWv9nS5VyG4nOP-CRcTgQ5DA3-h~WP2ZzhONb6yoYXeOSvBu8HBl0IZI27InLpxiKlkWUchNncnkZ32Md0CwLLrA4wxFl0fYsxxg6Us2XBYRGmudugJHgkkopem9Cc4eOiDGMABcJGAuZprVXT0WuOBYJngTA__, , , false
4937
// CloudFront-Key-Pair-Id: keyID, , , false
5038
}
5139

5240
func ExampleCookieSigner_SignWithPolicy() {
53-
origRandReader := randReader
54-
randReader = newRandomReader(rand.New(rand.NewSource(1)))
55-
defer func() {
56-
randReader = origRandReader
57-
}()
58-
5941
// Sign cookie to be valid for 30 minutes from now, expires one hour
6042
// from now, and restricted to the 192.0.2.0/24 IP address range.
6143
// http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-setting-signed-cookie-custom-policy.html
@@ -78,13 +60,7 @@ func ExampleCookieSigner_SignWithPolicy() {
7860
},
7961
}
8062

81-
// Load your private key so it can be used by the CookieSigner
82-
// To load private key from file use `sign.LoadPEMPrivKeyFile`.
83-
privKey, err := LoadPEMPrivKey(examplePEMReader())
84-
if err != nil {
85-
fmt.Println("failed to load private key", err)
86-
return
87-
}
63+
privKey := mock.RSAPrivateKey
8864

8965
// Key ID that represents the key pair associated with the private key
9066
keyID := "privateKeyID"
@@ -104,24 +80,12 @@ func ExampleCookieSigner_SignWithPolicy() {
10480
// Output:
10581
// Cookies:
10682
// CloudFront-Policy: eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cDovL3N1Yi5jbG91ZGZyb250LmNvbSIsIkNvbmRpdGlvbiI6eyJJcEFkZHJlc3MiOnsiQVdTOlNvdXJjZUlwIjoiMTkyLjAuMi4wLzI0In0sIkRhdGVHcmVhdGVyVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxMjU3ODk1ODAwfSwiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEyNTc4OTc2MDB9fX1dfQ__, , , false
107-
// CloudFront-Signature: JaWdcbr98colrDAhOpkyxqCZev2IAxURu1RKKo1wS~sI5XdNXWYbZJs2FdpbJ475ZvmhZ1-r4ENUqBXAlRfPfOc21Hm4~24jRmPTO3512D4uuJHrPVxSfgeGuFeigfCGWAqyfYYH1DsFl5JQDpzetsNI3ZhGRkQb8V-oYFanddg_, , , false
83+
// CloudFront-Signature: Ixn4bF1LLrLcB8XG-t5bZbIB0vfwSF2s4gkef~PcNBdx73MVvZD3v8DZ5GzcqNrybMiqdYJY5KqK6vTsf5JXDgwFFz-h98wdsbV-izcuonPdzMHp4Ay4qyXM6Ed5jB9dUWYGwMkA6rsWXpftfX8xmk4tG1LwFuJV6nAsx4cfpuKwo4vU2Hyr2-fkA7MZG8AHkpDdVUnjm1q-Re9HdG0nCq-2lnBAdOchBpJt37narOj-Zg6cbx~6rzQLVQd8XIv-Bn7VTc1tkBAJVtGOHb0q~PLzSRmtNGYTnpL0z~gp3tq8lhZc2HuvJW5-tZaYP9yufeIzk5bqsT6DT4iDuclKKw__, , , false
10884
// CloudFront-Key-Pair-Id: privateKeyID, , , false
10985
}
11086

11187
func ExampleCookieOptions() {
112-
origRandReader := randReader
113-
randReader = newRandomReader(rand.New(rand.NewSource(1)))
114-
defer func() {
115-
randReader = origRandReader
116-
}()
117-
118-
// Load your private key so it can be used by the CookieSigner
119-
// To load private key from file use `sign.LoadPEMPrivKeyFile`.
120-
privKey, err := LoadPEMPrivKey(examplePEMReader())
121-
if err != nil {
122-
fmt.Println("failed to load private key", err)
123-
return
124-
}
88+
privKey := mock.RSAPrivateKey
12589

12690
// Create the CookieSigner with options set. These options can be set
12791
// directly with cookieSigner.Opts. These values can be overridden on
@@ -151,7 +115,7 @@ func ExampleCookieOptions() {
151115
// Output:
152116
// Cookies:
153117
// CloudFront-Policy: eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cCo6Ly8qIiwiQ29uZGl0aW9uIjp7IkRhdGVMZXNzVGhhbiI6eyJBV1M6RXBvY2hUaW1lIjoxMjU3ODk1ODAwfX19XX0_, /mypath/, .cNameAssociatedWithMyDistribution.com, true
154-
// CloudFront-Signature: Yco06vgowwvSYgTSY9XbXpBcTlUlqpyyYXgRhus3nfnC74A7oQ~fMBH0we-rGxvph8ZyHnTxC5ubbPKSzo3EHUm2IcQeEo4p6WCgZZMzCuLlkpeMKhMAkCqX7rmUfkXhTslBHe~ylcmaZqo-hdnOiWrXk2U974ZQbbt5cOjwQG0_, /mypath/, .cNameAssociatedWithMyDistribution.com, true
118+
// CloudFront-Signature: DBXEcU6NoyAelecgEcr6mE1IHCqqlHdGwAC2X1dYn0QOLZ8Ar~oehlMub~hEh~UEMijR15ii-yUYf-3ML0b1SwWkh4rTa-SFURWDVuu~vW3cQzRZ4wQrgDR3DGJINrtGtEsDSzA6zdwtZsfvc1W9IRPn9rnVmwDdUurSrcp9M7CdcjkEw9Au~gULX7aUuW87DI5GI7jLo6emmBB1p4V~xAv8rDqOyxdhBzWKDTvl6ErIXnzHitgMclNZrkn-m27BhTQsJOs2R~gT2VrQw-IWX6NMD8r0TDH4DE2HQ8N7jZ0nf8gezbyFk-OhD1P9FUNb1PlwcZWfXtfgHQmM-BmrSQ__, /mypath/, .cNameAssociatedWithMyDistribution.com, true
155119
// CloudFront-Key-Pair-Id: keyID, /mypath/, .cNameAssociatedWithMyDistribution.com, true
156120
}
157121

service/cloudfront/sign/sign_url_test.go

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package sign
22

33
import (
4-
"crypto/rsa"
5-
"math/rand"
64
"strings"
75
"testing"
86
"time"
7+
8+
"github.com/aws/aws-sdk-go-v2/internal/awstesting/mock"
99
)
1010

1111
var testSignTime = time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
@@ -20,11 +20,11 @@ var testSignURL = []struct {
2020
}{
2121
{
2222
"http://example.com/a", NewCannedPolicy("http://example.com/a", testSignTime), time.Time{}, true, false,
23-
"http://example.com/a?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cDovL2V4YW1wbGUuY29tL2EiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEyNTc4OTQwMDB9fX1dfQ__&Signature=Y6qvWOZNl99uNPMGprvrKXEmXpLWJ-xXKVHL~nmF0BR1jPb2XA2jor0MUYKBE4ViTkWZZ1dz46zSFMsEEfw~n6-SVYXZ2QHBBTkSAoxGtH6dH33Ph9pz~f9Wy7aYXq~9I-Ah0E6yC~BMiQuXe5qAOucuMPorKgPfC0dvLMw2EF0_&Key-Pair-Id=KeyID",
23+
"http://example.com/a?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cDovL2V4YW1wbGUuY29tL2EiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEyNTc4OTQwMDB9fX1dfQ__&Signature=cMutWOvPMOPuh0KFDsOdbML~1fe0eEBC1hdMLGRbYr3mTRrVbKDdUXL6l3vlbE0Og3rTRS6mlaSORTwesN1srESH1pXFUyCVba8tWqNy1frEiL7jZLyzA1KndH0olfJDfgHXdw-Edtk0m8mqY~AnGIYGYDu659dWeP49jVeYn30XF9sYkRCdS5IezAkqh8TO9tTDNGS4Ic6DQue4agHUFLNv1VErTafUxlSBp8hlPCuMdtZLEBLr9UJVc3oWJI3zc1~9JgVTDjbXYV1-HgTn8qQsbAU2KcieUonIzTme2td-7c2FCC0EAbOF~6QXTHWcAiSB5nVmbxn-Mx-QMVsiLw__&Key-Pair-Id=KeyID",
2424
},
2525
{
2626
"http://example.com/a", nil, testSignTime, false, false,
27-
"http://example.com/a?Expires=1257894000&Signature=Y6qvWOZNl99uNPMGprvrKXEmXpLWJ-xXKVHL~nmF0BR1jPb2XA2jor0MUYKBE4ViTkWZZ1dz46zSFMsEEfw~n6-SVYXZ2QHBBTkSAoxGtH6dH33Ph9pz~f9Wy7aYXq~9I-Ah0E6yC~BMiQuXe5qAOucuMPorKgPfC0dvLMw2EF0_&Key-Pair-Id=KeyID",
27+
"http://example.com/a?Expires=1257894000&Signature=cMutWOvPMOPuh0KFDsOdbML~1fe0eEBC1hdMLGRbYr3mTRrVbKDdUXL6l3vlbE0Og3rTRS6mlaSORTwesN1srESH1pXFUyCVba8tWqNy1frEiL7jZLyzA1KndH0olfJDfgHXdw-Edtk0m8mqY~AnGIYGYDu659dWeP49jVeYn30XF9sYkRCdS5IezAkqh8TO9tTDNGS4Ic6DQue4agHUFLNv1VErTafUxlSBp8hlPCuMdtZLEBLr9UJVc3oWJI3zc1~9JgVTDjbXYV1-HgTn8qQsbAU2KcieUonIzTme2td-7c2FCC0EAbOF~6QXTHWcAiSB5nVmbxn-Mx-QMVsiLw__&Key-Pair-Id=KeyID",
2828
},
2929
{
3030
"http://example.com/Ƿ", nil, testSignTime, false, true,
@@ -40,27 +40,17 @@ var testSignURL = []struct {
4040
},
4141
{
4242
"rtmp://example.com/a", nil, testSignTime, false, false,
43-
"a?Expires=1257894000&Signature=Ds9NbpGwIcDKG1iZDyjfPXp0ZFYSIzfvGzJj-x28XlXfrarHrJbTOQj3bec~aAyb8NAqghBYRdKF9~RdjNrdyxyiequo-SCjFgFHnRNIk0FiqH0fVt2NO63f0X8-Kbur9cPtJoHR9Jzk0I1CQnECqhL6A0OgPhijTfKUITocmzA_&Key-Pair-Id=KeyID",
43+
"a?Expires=1257894000&Signature=GIOIWRaT1u5~JyNhyvsbvLfu1eYjmObAHPpV3p7wNL3X-Vts9uj2JPW3bX-xZp4HD~deps5f-GpPkIE7RPq7VCOZMLdckC4V9bvSphmMYP~OVoHwPiRMHgVW8pt9lsODGMAKVcMK-h2WROOxgzwDhfcGJQ~afs~Cz04Cus9tKScLFTNYHbLxpN0VI-vJwOvDW0tavGKxOmLeMDLTgLZSh90MjgESMME8zssks8rXngWxDgV-bLySe1VYHOcC07BMb5RkPaO036gjHJnw5hXhUCug0rkKcSxwU1IsJnGpgTkf7dVo453L2sLeRzK8R-6z9O2Onv6ow-ZoHx7fVw8rww__&Key-Pair-Id=KeyID",
4444
},
4545
{
4646
"rtmp://example.com/a", NewCannedPolicy("a", testSignTime), time.Time{}, true, false,
47-
"a?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiYSIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTI1Nzg5NDAwMH19fV19&Signature=Ds9NbpGwIcDKG1iZDyjfPXp0ZFYSIzfvGzJj-x28XlXfrarHrJbTOQj3bec~aAyb8NAqghBYRdKF9~RdjNrdyxyiequo-SCjFgFHnRNIk0FiqH0fVt2NO63f0X8-Kbur9cPtJoHR9Jzk0I1CQnECqhL6A0OgPhijTfKUITocmzA_&Key-Pair-Id=KeyID",
47+
"a?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiYSIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTI1Nzg5NDAwMH19fV19&Signature=GIOIWRaT1u5~JyNhyvsbvLfu1eYjmObAHPpV3p7wNL3X-Vts9uj2JPW3bX-xZp4HD~deps5f-GpPkIE7RPq7VCOZMLdckC4V9bvSphmMYP~OVoHwPiRMHgVW8pt9lsODGMAKVcMK-h2WROOxgzwDhfcGJQ~afs~Cz04Cus9tKScLFTNYHbLxpN0VI-vJwOvDW0tavGKxOmLeMDLTgLZSh90MjgESMME8zssks8rXngWxDgV-bLySe1VYHOcC07BMb5RkPaO036gjHJnw5hXhUCug0rkKcSxwU1IsJnGpgTkf7dVo453L2sLeRzK8R-6z9O2Onv6ow-ZoHx7fVw8rww__&Key-Pair-Id=KeyID",
4848
},
4949
}
5050

51-
// TODO Sign URL HTTP
5251
// TODO Sign URL RMTP
5352
func TestSignURL(t *testing.T) {
54-
origRandReader := randReader
55-
randReader = newRandomReader(rand.New(rand.NewSource(1)))
56-
defer func() {
57-
randReader = origRandReader
58-
}()
59-
60-
privKey, err := rsa.GenerateKey(randReader, 1024)
61-
if err != nil {
62-
t.Fatalf("Unexpected priv key error, %#v", err)
63-
}
53+
privKey := mock.RSAPrivateKey
6454

6555
s := NewURLSigner("KeyID", privKey)
6656

service/s3/s3manager/upload_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ func TestUploadOrderMulti(t *testing.T) {
129129
}
130130

131131
if "VERSION-ID" != *resp.VersionID {
132-
t.Errorf("Expected %q, but received %q", "VERSION-ID", resp.VersionID)
132+
t.Errorf("Expected %q, but received %q", "VERSION-ID", *resp.VersionID)
133133
}
134134

135135
// Validate input values
@@ -302,7 +302,7 @@ func TestUploadOrderSingle(t *testing.T) {
302302
}
303303

304304
if e := "VERSION-ID"; e != *resp.VersionID {
305-
t.Errorf("Expected %q, but received %q", e, resp.VersionID)
305+
t.Errorf("Expected %q, but received %q", e, *resp.VersionID)
306306
}
307307

308308
if len(resp.UploadID) > 0 {

0 commit comments

Comments
 (0)