@@ -48,13 +48,13 @@ type AuthnHeader struct {
4848 Date string
4949}
5050
51- func Signiture4 (secretKey string , req * http.Request , header * AuthnHeader ) (bool , error ) {
51+ func Signiture4 (secretKey string , req * http.Request , header * AuthnHeader , region string ) (bool , error ) {
5252 meta := & metadata {
5353 algorithm : header .Algorithm ,
5454 credentialScope : header .Scope ,
5555 signedHeaders : header .SignedHeader ,
5656 date : header .Date ,
57- region : "us-west-1" ,
57+ region : region ,
5858 service : "hyper" ,
5959 }
6060
@@ -70,7 +70,7 @@ func Signiture4(secretKey string, req *http.Request, header *AuthnHeader) (bool,
7070 return signature == header .Signature , nil
7171}
7272
73- func Sign4 (accessKey , secretKey string , req * http.Request ) * http.Request {
73+ func Sign4 (accessKey , secretKey string , req * http.Request , region string ) * http.Request {
7474
7575 prepareRequestV4 (req )
7676 meta := & metadata {}
@@ -79,7 +79,7 @@ func Sign4(accessKey, secretKey string, req *http.Request) *http.Request {
7979 hashedCanonReq := hashedCanonicalRequestV4 (req , meta )
8080
8181 // Task 2
82- stringToSign := stringToSignV4 (req , hashedCanonReq , meta )
82+ stringToSign := stringToSignV4 (req , hashedCanonReq , meta , region )
8383
8484 // Task 3
8585 signingKey := signingKeyV4 (secretKey , meta .date , meta .region , meta .service )
@@ -179,13 +179,13 @@ func canonicalRequestV4FromMeta(request *http.Request, meta *metadata) (string,
179179 return canonicalRequest , true
180180}
181181
182- func stringToSignV4 (request * http.Request , hashedCanonReq string , meta * metadata ) string {
182+ func stringToSignV4 (request * http.Request , hashedCanonReq string , meta * metadata , region string ) string {
183183 // TASK 2. http://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html
184184
185185 requestTs := request .Header .Get (headerDate )
186186
187187 meta .algorithm = metaAlgorithm
188- meta .service , meta .region = serviceAndRegion (request .Host )
188+ meta .service , meta .region = serviceAndRegion (request .Host , region )
189189 meta .date = tsDateV4 (requestTs )
190190 meta .credentialScope = concat ("/" , meta .date , meta .region , meta .service , keyPartsRequest )
191191
@@ -343,9 +343,9 @@ func normquery(v url.Values) string {
343343}
344344
345345// serviceAndRegion parsers a hostname to find out which ones it is.
346- func serviceAndRegion (host string ) (service string , region string ) {
346+ func serviceAndRegion (host , r string ) (service string , region string ) {
347347 // These are the defaults if the hostname doesn't suggest something else
348- region = "us-west-1"
348+ region = r
349349 service = "hyper"
350350
351351 // region.hyper.sh
0 commit comments