@ -108,19 +108,19 @@ func TestNewACMEClient(t *testing.T) {
tc := run ( t )
tc := run ( t )
i := 0
i := 0
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r eq * http . Request ) {
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r * http . Request ) {
assert . Equals ( t , "step-http-client/1.0" , r eq . Header . Get ( "User-Agent" ) ) // check default User-Agent header
assert . Equals ( t , "step-http-client/1.0" , r . Header . Get ( "User-Agent" ) ) // check default User-Agent header
switch {
switch {
case i == 0 :
case i == 0 :
render . JSONStatus ( w , tc. r1 , tc . rc1 )
render . JSONStatus ( w , r, tc. r1 , tc . rc1 )
i ++
i ++
case i == 1 :
case i == 1 :
w . Header ( ) . Set ( "Replay-Nonce" , "abc123" )
w . Header ( ) . Set ( "Replay-Nonce" , "abc123" )
render . JSONStatus ( w , [ ] byte { } , 200 )
render . JSONStatus ( w , r , [ ] byte { } , 200 )
i ++
i ++
default :
default :
w . Header ( ) . Set ( "Location" , accLocation )
w . Header ( ) . Set ( "Location" , accLocation )
render . JSONStatus ( w , tc. r2 , tc . rc2 )
render . JSONStatus ( w , r, tc. r2 , tc . rc2 )
}
}
} )
} )
@ -203,10 +203,10 @@ func TestACMEClient_GetNonce(t *testing.T) {
t . Run ( name , func ( t * testing . T ) {
t . Run ( name , func ( t * testing . T ) {
tc := run ( t )
tc := run ( t )
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r eq * http . Request ) {
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r * http . Request ) {
assert . Equals ( t , "step-http-client/1.0" , r eq . Header . Get ( "User-Agent" ) ) // check default User-Agent header
assert . Equals ( t , "step-http-client/1.0" , r . Header . Get ( "User-Agent" ) ) // check default User-Agent header
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
render . JSONStatus ( w , tc. r1 , tc . rc1 )
render . JSONStatus ( w , r, tc. r1 , tc . rc1 )
} )
} )
if nonce , err := ac . GetNonce ( ) ; err != nil {
if nonce , err := ac . GetNonce ( ) ; err != nil {
@ -310,18 +310,18 @@ func TestACMEClient_post(t *testing.T) {
tc := run ( t )
tc := run ( t )
i := 0
i := 0
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r eq * http . Request ) {
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r * http . Request ) {
assert . Equals ( t , "step-http-client/1.0" , r eq . Header . Get ( "User-Agent" ) ) // check default User-Agent header
assert . Equals ( t , "step-http-client/1.0" , r . Header . Get ( "User-Agent" ) ) // check default User-Agent header
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
if i == 0 {
if i == 0 {
render . JSONStatus ( w , tc. r1 , tc . rc1 )
render . JSONStatus ( w , r, tc. r1 , tc . rc1 )
i ++
i ++
return
return
}
}
// validate jws request protected headers and body
// validate jws request protected headers and body
body , err := io . ReadAll ( r eq . Body )
body , err := io . ReadAll ( r . Body )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
jws , err := jose . ParseJWS ( string ( body ) )
jws , err := jose . ParseJWS ( string ( body ) )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
@ -338,7 +338,7 @@ func TestACMEClient_post(t *testing.T) {
assert . Equals ( t , hdr . KeyID , ac . kid )
assert . Equals ( t , hdr . KeyID , ac . kid )
}
}
render . JSONStatus ( w , tc. r2 , tc . rc2 )
render . JSONStatus ( w , r, tc. r2 , tc . rc2 )
} )
} )
if resp , err := tc . client . post ( tc . payload , url , tc . ops ... ) ; err != nil {
if resp , err := tc . client . post ( tc . payload , url , tc . ops ... ) ; err != nil {
@ -450,18 +450,18 @@ func TestACMEClient_NewOrder(t *testing.T) {
tc := run ( t )
tc := run ( t )
i := 0
i := 0
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r eq * http . Request ) {
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r * http . Request ) {
assert . Equals ( t , "step-http-client/1.0" , r eq . Header . Get ( "User-Agent" ) ) // check default User-Agent header
assert . Equals ( t , "step-http-client/1.0" , r . Header . Get ( "User-Agent" ) ) // check default User-Agent header
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
if i == 0 {
if i == 0 {
render . JSONStatus ( w , tc. r1 , tc . rc1 )
render . JSONStatus ( w , r, tc. r1 , tc . rc1 )
i ++
i ++
return
return
}
}
// validate jws request protected headers and body
// validate jws request protected headers and body
body , err := io . ReadAll ( r eq . Body )
body , err := io . ReadAll ( r . Body )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
jws , err := jose . ParseJWS ( string ( body ) )
jws , err := jose . ParseJWS ( string ( body ) )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
@ -477,7 +477,7 @@ func TestACMEClient_NewOrder(t *testing.T) {
assert . FatalError ( t , err )
assert . FatalError ( t , err )
assert . Equals ( t , payload , norb )
assert . Equals ( t , payload , norb )
render . JSONStatus ( w , tc. r2 , tc . rc2 )
render . JSONStatus ( w , r, tc. r2 , tc . rc2 )
} )
} )
if res , err := ac . NewOrder ( norb ) ; err != nil {
if res , err := ac . NewOrder ( norb ) ; err != nil {
@ -572,18 +572,18 @@ func TestACMEClient_GetOrder(t *testing.T) {
tc := run ( t )
tc := run ( t )
i := 0
i := 0
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r eq * http . Request ) {
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r * http . Request ) {
assert . Equals ( t , "step-http-client/1.0" , r eq . Header . Get ( "User-Agent" ) ) // check default User-Agent header
assert . Equals ( t , "step-http-client/1.0" , r . Header . Get ( "User-Agent" ) ) // check default User-Agent header
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
if i == 0 {
if i == 0 {
render . JSONStatus ( w , tc. r1 , tc . rc1 )
render . JSONStatus ( w , r, tc. r1 , tc . rc1 )
i ++
i ++
return
return
}
}
// validate jws request protected headers and body
// validate jws request protected headers and body
body , err := io . ReadAll ( r eq . Body )
body , err := io . ReadAll ( r . Body )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
jws , err := jose . ParseJWS ( string ( body ) )
jws , err := jose . ParseJWS ( string ( body ) )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
@ -599,7 +599,7 @@ func TestACMEClient_GetOrder(t *testing.T) {
assert . FatalError ( t , err )
assert . FatalError ( t , err )
assert . Equals ( t , len ( payload ) , 0 )
assert . Equals ( t , len ( payload ) , 0 )
render . JSONStatus ( w , tc. r2 , tc . rc2 )
render . JSONStatus ( w , r, tc. r2 , tc . rc2 )
} )
} )
if res , err := ac . GetOrder ( url ) ; err != nil {
if res , err := ac . GetOrder ( url ) ; err != nil {
@ -694,18 +694,18 @@ func TestACMEClient_GetAuthz(t *testing.T) {
tc := run ( t )
tc := run ( t )
i := 0
i := 0
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r eq * http . Request ) {
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r * http . Request ) {
assert . Equals ( t , "step-http-client/1.0" , r eq . Header . Get ( "User-Agent" ) ) // check default User-Agent header
assert . Equals ( t , "step-http-client/1.0" , r . Header . Get ( "User-Agent" ) ) // check default User-Agent header
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
if i == 0 {
if i == 0 {
render . JSONStatus ( w , tc. r1 , tc . rc1 )
render . JSONStatus ( w , r, tc. r1 , tc . rc1 )
i ++
i ++
return
return
}
}
// validate jws request protected headers and body
// validate jws request protected headers and body
body , err := io . ReadAll ( r eq . Body )
body , err := io . ReadAll ( r . Body )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
jws , err := jose . ParseJWS ( string ( body ) )
jws , err := jose . ParseJWS ( string ( body ) )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
@ -721,7 +721,7 @@ func TestACMEClient_GetAuthz(t *testing.T) {
assert . FatalError ( t , err )
assert . FatalError ( t , err )
assert . Equals ( t , len ( payload ) , 0 )
assert . Equals ( t , len ( payload ) , 0 )
render . JSONStatus ( w , tc. r2 , tc . rc2 )
render . JSONStatus ( w , r, tc. r2 , tc . rc2 )
} )
} )
if res , err := ac . GetAuthz ( url ) ; err != nil {
if res , err := ac . GetAuthz ( url ) ; err != nil {
@ -816,18 +816,18 @@ func TestACMEClient_GetChallenge(t *testing.T) {
tc := run ( t )
tc := run ( t )
i := 0
i := 0
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r eq * http . Request ) {
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r * http . Request ) {
assert . Equals ( t , "step-http-client/1.0" , r eq . Header . Get ( "User-Agent" ) ) // check default User-Agent header
assert . Equals ( t , "step-http-client/1.0" , r . Header . Get ( "User-Agent" ) ) // check default User-Agent header
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
if i == 0 {
if i == 0 {
render . JSONStatus ( w , tc. r1 , tc . rc1 )
render . JSONStatus ( w , r, tc. r1 , tc . rc1 )
i ++
i ++
return
return
}
}
// validate jws request protected headers and body
// validate jws request protected headers and body
body , err := io . ReadAll ( r eq . Body )
body , err := io . ReadAll ( r . Body )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
jws , err := jose . ParseJWS ( string ( body ) )
jws , err := jose . ParseJWS ( string ( body ) )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
@ -844,7 +844,7 @@ func TestACMEClient_GetChallenge(t *testing.T) {
assert . Equals ( t , len ( payload ) , 0 )
assert . Equals ( t , len ( payload ) , 0 )
render . JSONStatus ( w , tc. r2 , tc . rc2 )
render . JSONStatus ( w , r, tc. r2 , tc . rc2 )
} )
} )
if res , err := ac . GetChallenge ( url ) ; err != nil {
if res , err := ac . GetChallenge ( url ) ; err != nil {
@ -939,18 +939,18 @@ func TestACMEClient_ValidateChallenge(t *testing.T) {
tc := run ( t )
tc := run ( t )
i := 0
i := 0
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r eq * http . Request ) {
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r * http . Request ) {
assert . Equals ( t , "step-http-client/1.0" , r eq . Header . Get ( "User-Agent" ) ) // check default User-Agent header
assert . Equals ( t , "step-http-client/1.0" , r . Header . Get ( "User-Agent" ) ) // check default User-Agent header
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
if i == 0 {
if i == 0 {
render . JSONStatus ( w , tc. r1 , tc . rc1 )
render . JSONStatus ( w , r, tc. r1 , tc . rc1 )
i ++
i ++
return
return
}
}
// validate jws request protected headers and body
// validate jws request protected headers and body
body , err := io . ReadAll ( r eq . Body )
body , err := io . ReadAll ( r . Body )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
jws , err := jose . ParseJWS ( string ( body ) )
jws , err := jose . ParseJWS ( string ( body ) )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
@ -967,7 +967,7 @@ func TestACMEClient_ValidateChallenge(t *testing.T) {
assert . Equals ( t , payload , [ ] byte ( "{}" ) )
assert . Equals ( t , payload , [ ] byte ( "{}" ) )
render . JSONStatus ( w , tc. r2 , tc . rc2 )
render . JSONStatus ( w , r, tc. r2 , tc . rc2 )
} )
} )
if err := ac . ValidateChallenge ( url ) ; err != nil {
if err := ac . ValidateChallenge ( url ) ; err != nil {
@ -983,22 +983,22 @@ func TestACMEClient_ValidateWithPayload(t *testing.T) {
key , err := jose . GenerateJWK ( "EC" , "P-256" , "ES256" , "sig" , "" , 0 )
key , err := jose . GenerateJWK ( "EC" , "P-256" , "ES256" , "sig" , "" , 0 )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
srv := httptest . NewServer ( http . HandlerFunc ( func ( w http . ResponseWriter , r eq * http . Request ) {
srv := httptest . NewServer ( http . HandlerFunc ( func ( w http . ResponseWriter , r * http . Request ) {
assert . Equals ( t , "step-http-client/1.0" , r eq . Header . Get ( "User-Agent" ) ) // check default User-Agent header
assert . Equals ( t , "step-http-client/1.0" , r . Header . Get ( "User-Agent" ) ) // check default User-Agent header
t . Log ( r eq . RequestURI )
t . Log ( r . RequestURI )
w . Header ( ) . Set ( "Replay-Nonce" , "nonce" )
w . Header ( ) . Set ( "Replay-Nonce" , "nonce" )
switch r eq . RequestURI {
switch r . RequestURI {
case "/nonce" :
case "/nonce" :
render . JSONStatus ( w , [ ] byte { } , 200 )
render . JSONStatus ( w , r , [ ] byte { } , 200 )
return
return
case "/fail-nonce" :
case "/fail-nonce" :
render . JSONStatus ( w , acme. NewError ( acme . ErrorMalformedType , "malformed request" ) , 400 )
render . JSONStatus ( w , r, acme. NewError ( acme . ErrorMalformedType , "malformed request" ) , 400 )
return
return
}
}
// validate jws request protected headers and body
// validate jws request protected headers and body
body , err := io . ReadAll ( r eq . Body )
body , err := io . ReadAll ( r . Body )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
jws , err := jose . ParseJWS ( string ( body ) )
jws , err := jose . ParseJWS ( string ( body ) )
@ -1015,15 +1015,15 @@ func TestACMEClient_ValidateWithPayload(t *testing.T) {
assert . FatalError ( t , err )
assert . FatalError ( t , err )
assert . Equals ( t , payload , [ ] byte ( "the-payload" ) )
assert . Equals ( t , payload , [ ] byte ( "the-payload" ) )
switch r eq . RequestURI {
switch r . RequestURI {
case "/ok" :
case "/ok" :
render . JSONStatus ( w , acme. Challenge {
render . JSONStatus ( w , r, acme. Challenge {
Type : "device-attestation-01" ,
Type : "device-attestation-01" ,
Status : "valid" ,
Status : "valid" ,
Token : "foo" ,
Token : "foo" ,
} , 200 )
} , 200 )
case "/fail" :
case "/fail" :
render . JSONStatus ( w , acme. NewError ( acme . ErrorMalformedType , "malformed request" ) , 400 )
render . JSONStatus ( w , r, acme. NewError ( acme . ErrorMalformedType , "malformed request" ) , 400 )
}
}
} ) )
} ) )
defer srv . Close ( )
defer srv . Close ( )
@ -1160,18 +1160,18 @@ func TestACMEClient_FinalizeOrder(t *testing.T) {
tc := run ( t )
tc := run ( t )
i := 0
i := 0
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r eq * http . Request ) {
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r * http . Request ) {
assert . Equals ( t , "step-http-client/1.0" , r eq . Header . Get ( "User-Agent" ) ) // check default User-Agent header
assert . Equals ( t , "step-http-client/1.0" , r . Header . Get ( "User-Agent" ) ) // check default User-Agent header
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
if i == 0 {
if i == 0 {
render . JSONStatus ( w , tc. r1 , tc . rc1 )
render . JSONStatus ( w , r, tc. r1 , tc . rc1 )
i ++
i ++
return
return
}
}
// validate jws request protected headers and body
// validate jws request protected headers and body
body , err := io . ReadAll ( r eq . Body )
body , err := io . ReadAll ( r . Body )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
jws , err := jose . ParseJWS ( string ( body ) )
jws , err := jose . ParseJWS ( string ( body ) )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
@ -1187,7 +1187,7 @@ func TestACMEClient_FinalizeOrder(t *testing.T) {
assert . FatalError ( t , err )
assert . FatalError ( t , err )
assert . Equals ( t , payload , frb )
assert . Equals ( t , payload , frb )
render . JSONStatus ( w , tc. r2 , tc . rc2 )
render . JSONStatus ( w , r, tc. r2 , tc . rc2 )
} )
} )
if err := ac . FinalizeOrder ( url , csr ) ; err != nil {
if err := ac . FinalizeOrder ( url , csr ) ; err != nil {
@ -1289,18 +1289,18 @@ func TestACMEClient_GetAccountOrders(t *testing.T) {
tc := run ( t )
tc := run ( t )
i := 0
i := 0
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r eq * http . Request ) {
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r * http . Request ) {
assert . Equals ( t , "step-http-client/1.0" , r eq . Header . Get ( "User-Agent" ) ) // check default User-Agent header
assert . Equals ( t , "step-http-client/1.0" , r . Header . Get ( "User-Agent" ) ) // check default User-Agent header
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
if i == 0 {
if i == 0 {
render . JSONStatus ( w , tc. r1 , tc . rc1 )
render . JSONStatus ( w , r, tc. r1 , tc . rc1 )
i ++
i ++
return
return
}
}
// validate jws request protected headers and body
// validate jws request protected headers and body
body , err := io . ReadAll ( r eq . Body )
body , err := io . ReadAll ( r . Body )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
jws , err := jose . ParseJWS ( string ( body ) )
jws , err := jose . ParseJWS ( string ( body ) )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
@ -1316,7 +1316,7 @@ func TestACMEClient_GetAccountOrders(t *testing.T) {
assert . FatalError ( t , err )
assert . FatalError ( t , err )
assert . Equals ( t , len ( payload ) , 0 )
assert . Equals ( t , len ( payload ) , 0 )
render . JSONStatus ( w , tc. r2 , tc . rc2 )
render . JSONStatus ( w , r, tc. r2 , tc . rc2 )
} )
} )
if res , err := tc . client . GetAccountOrders ( ) ; err != nil {
if res , err := tc . client . GetAccountOrders ( ) ; err != nil {
@ -1420,18 +1420,18 @@ func TestACMEClient_GetCertificate(t *testing.T) {
tc := run ( t )
tc := run ( t )
i := 0
i := 0
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r eq * http . Request ) {
srv . Config . Handler = http . HandlerFunc ( func ( w http . ResponseWriter , r * http . Request ) {
assert . Equals ( t , "step-http-client/1.0" , r eq . Header . Get ( "User-Agent" ) ) // check default User-Agent header
assert . Equals ( t , "step-http-client/1.0" , r . Header . Get ( "User-Agent" ) ) // check default User-Agent header
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
w . Header ( ) . Set ( "Replay-Nonce" , expectedNonce )
if i == 0 {
if i == 0 {
render . JSONStatus ( w , tc. r1 , tc . rc1 )
render . JSONStatus ( w , r, tc. r1 , tc . rc1 )
i ++
i ++
return
return
}
}
// validate jws request protected headers and body
// validate jws request protected headers and body
body , err := io . ReadAll ( r eq . Body )
body , err := io . ReadAll ( r . Body )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
jws , err := jose . ParseJWS ( string ( body ) )
jws , err := jose . ParseJWS ( string ( body ) )
assert . FatalError ( t , err )
assert . FatalError ( t , err )
@ -1450,7 +1450,7 @@ func TestACMEClient_GetCertificate(t *testing.T) {
if tc . certBytes != nil {
if tc . certBytes != nil {
w . Write ( tc . certBytes )
w . Write ( tc . certBytes )
} else {
} else {
render . JSONStatus ( w , tc. r2 , tc . rc2 )
render . JSONStatus ( w , r, tc. r2 , tc . rc2 )
}
}
} )
} )