diff options
Diffstat (limited to 'spec/mixlib')
-rw-r--r-- | spec/mixlib/authentication/http_authentication_request_spec.rb | 16 | ||||
-rw-r--r-- | spec/mixlib/authentication/mixlib_authentication_spec.rb | 172 |
2 files changed, 94 insertions, 94 deletions
diff --git a/spec/mixlib/authentication/http_authentication_request_spec.rb b/spec/mixlib/authentication/http_authentication_request_spec.rb index d62d67e..bd265bb 100644 --- a/spec/mixlib/authentication/http_authentication_request_spec.rb +++ b/spec/mixlib/authentication/http_authentication_request_spec.rb @@ -115,14 +115,14 @@ describe Mixlib::Authentication::HTTPAuthenticationRequest do end it "rebuilds the request signature from the headers" do - expected = <<-SIG -jVHrNniWzpbez/eGWjFnO6lINRIuKOg40ZTIQudcFe47Z9e/HvrszfVXlKG4 -NMzYZgyooSvU85qkIUmKuCqgG2AIlvYa2Q/2ctrMhoaHhLOCWWoqYNMaEqPc -3tKHE+CfvP+WuPdWk4jv4wpIkAz6ZLxToxcGhXmZbXpk56YTmqgBW2cbbw4O -IWPZDHSiPcw//AYNgW1CCDptt+UFuaFYbtqZegcBd2n/jzcWODA7zL4KWEUy -9q4rlh/+1tBReg60QdsmDRsw/cdO1GZrKtuCwbuD4+nbRdVBKv72rqHX9cu0 -utju9jzczCyB+sSAQWrxSsXB/b8vV2qs0l4VD2ML+w== -SIG + expected = <<~SIG + jVHrNniWzpbez/eGWjFnO6lINRIuKOg40ZTIQudcFe47Z9e/HvrszfVXlKG4 + NMzYZgyooSvU85qkIUmKuCqgG2AIlvYa2Q/2ctrMhoaHhLOCWWoqYNMaEqPc + 3tKHE+CfvP+WuPdWk4jv4wpIkAz6ZLxToxcGhXmZbXpk56YTmqgBW2cbbw4O + IWPZDHSiPcw//AYNgW1CCDptt+UFuaFYbtqZegcBd2n/jzcWODA7zL4KWEUy + 9q4rlh/+1tBReg60QdsmDRsw/cdO1GZrKtuCwbuD4+nbRdVBKv72rqHX9cu0 + utju9jzczCyB+sSAQWrxSsXB/b8vV2qs0l4VD2ML+w== + SIG expect(@http_authentication_request.request_signature).to eq(expected.chomp) end diff --git a/spec/mixlib/authentication/mixlib_authentication_spec.rb b/spec/mixlib/authentication/mixlib_authentication_spec.rb index 7d9b484..1861dd6 100644 --- a/spec/mixlib/authentication/mixlib_authentication_spec.rb +++ b/spec/mixlib/authentication/mixlib_authentication_spec.rb @@ -64,7 +64,7 @@ class MockFile end # Uncomment this to get some more info from the methods we're testing. -#Mixlib::Authentication.logger.level = :trace +# Mixlib::Authentication.logger.level = :trace describe "Mixlib::Authentication::SignedHeaderAuth" do @@ -233,7 +233,7 @@ describe "Mixlib::Authentication::SignatureVerification" do mock_request = MockRequest.new(PATH, MERB_REQUEST_PARAMS, headers, BODY) allow(Time).to receive(:now).and_return(TIMESTAMP_OBJ) - #Time.stub!(:now).and_return(TIMESTAMP_OBJ) + # Time.stub!(:now).and_return(TIMESTAMP_OBJ) auth_req = Mixlib::Authentication::SignatureVerification.new expect { auth_req.authenticate_user_request(mock_request, @user_private_key) }.to raise_error(Mixlib::Authentication::AuthenticationError) @@ -305,15 +305,15 @@ describe "Mixlib::Authentication::SignatureVerification" do end end -USER_ID = "spec-user" +USER_ID = "spec-user".freeze DIGESTED_USER_ID = Base64.encode64(Digest::SHA1.new.digest(USER_ID)).chomp -BODY = "Spec Body" -HASHED_BODY = "DFteJZPVv6WKdQmMqZUQUumUyRs=" # Base64.encode64(Digest::SHA1.digest("Spec Body")).chomp -HASHED_BODY_SHA256 = "hDlKNZhIhgso3Fs0S0pZwJ0xyBWtR1RBaeHs1DrzOho=" -TIMESTAMP_ISO8601 = "2009-01-01T12:00:00Z" +BODY = "Spec Body".freeze +HASHED_BODY = "DFteJZPVv6WKdQmMqZUQUumUyRs=".freeze # Base64.encode64(Digest::SHA1.digest("Spec Body")).chomp +HASHED_BODY_SHA256 = "hDlKNZhIhgso3Fs0S0pZwJ0xyBWtR1RBaeHs1DrzOho=".freeze +TIMESTAMP_ISO8601 = "2009-01-01T12:00:00Z".freeze TIMESTAMP_OBJ = Time.parse("Thu Jan 01 12:00:00 -0000 2009") -PATH = "/organizations/clownco" -HASHED_CANONICAL_PATH = "YtBWDn1blGGuFIuKksdwXzHU9oE=" # Base64.encode64(Digest::SHA1.digest("/organizations/clownco")).chomp +PATH = "/organizations/clownco".freeze +HASHED_CANONICAL_PATH = "YtBWDn1blGGuFIuKksdwXzHU9oE=".freeze # Base64.encode64(Digest::SHA1.digest("/organizations/clownco")).chomp V1_0_ARGS = { body: BODY, @@ -322,7 +322,7 @@ V1_0_ARGS = { timestamp: TIMESTAMP_ISO8601, # fixed timestamp so we get back the same answer each time. file: MockFile.new, path: PATH, -} +}.freeze V1_1_ARGS = { body: BODY, @@ -332,7 +332,7 @@ V1_1_ARGS = { file: MockFile.new, path: PATH, proto_version: 1.1, -} +}.freeze V1_3_ARGS_SHA256 = { body: BODY, @@ -344,9 +344,9 @@ V1_3_ARGS_SHA256 = { proto_version: "1.3", headers: { "X-OpS-SeRvEr-ApI-VerSiOn" => "1", - } + }, # This defaults to sha256 -} +}.freeze LONG_PATH_LONG_USER_ARGS = { body: BODY, @@ -355,13 +355,13 @@ LONG_PATH_LONG_USER_ARGS = { timestamp: TIMESTAMP_ISO8601, # fixed timestamp so we get back the same answer each time. file: MockFile.new, path: PATH + "/nodes/#{"A" * 250}", -} +}.freeze -REQUESTING_ACTOR_ID = "c0f8a68c52bffa1020222a56b23cccfa" +REQUESTING_ACTOR_ID = "c0f8a68c52bffa1020222a56b23cccfa".freeze # Content hash is ???TODO -X_OPS_CONTENT_HASH = "DFteJZPVv6WKdQmMqZUQUumUyRs=" -X_OPS_CONTENT_HASH_SHA256 = "hDlKNZhIhgso3Fs0S0pZwJ0xyBWtR1RBaeHs1DrzOho=" +X_OPS_CONTENT_HASH = "DFteJZPVv6WKdQmMqZUQUumUyRs=".freeze +X_OPS_CONTENT_HASH_SHA256 = "hDlKNZhIhgso3Fs0S0pZwJ0xyBWtR1RBaeHs1DrzOho=".freeze X_OPS_AUTHORIZATION_LINES_V1_0 = [ "jVHrNniWzpbez/eGWjFnO6lINRIuKOg40ZTIQudcFe47Z9e/HvrszfVXlKG4", @@ -370,7 +370,7 @@ X_OPS_AUTHORIZATION_LINES_V1_0 = [ "IWPZDHSiPcw//AYNgW1CCDptt+UFuaFYbtqZegcBd2n/jzcWODA7zL4KWEUy", "9q4rlh/+1tBReg60QdsmDRsw/cdO1GZrKtuCwbuD4+nbRdVBKv72rqHX9cu0", "utju9jzczCyB+sSAQWrxSsXB/b8vV2qs0l4VD2ML+w==", -] +].freeze X_OPS_AUTHORIZATION_LINES = [ "UfZD9dRz6rFu6LbP5Mo1oNHcWYxpNIcUfFCffJS1FQa0GtfU/vkt3/O5HuCM", @@ -379,7 +379,7 @@ X_OPS_AUTHORIZATION_LINES = [ "vMnl5MF3/OIlsZc8cemq6eKYstp8a8KYq9OmkB5IXIX6qVMJHA6fRvQEB/7j", "281Q7oI/O+lE8AmVyBbwruPb7Mp6s4839eYiOdjbDwFjYtbS3XgAjrHlaD7W", "FDlbAG7H8Dmvo+wBxmtNkszhzbBnEYtuwQqT8nM/8A==", -] +].freeze X_OPS_AUTHORIZATION_LINES_V1_3_SHA256 = [ "FZOmXAyOBAZQV/uw188iBljBJXOm+m8xQ/8KTGLkgGwZNcRFxk1m953XjE3W", @@ -388,9 +388,9 @@ X_OPS_AUTHORIZATION_LINES_V1_3_SHA256 = [ "H9h9E0qWlYGqmiNCVrBnpe6Si1gU/Jl+rXlRSNbLJ4GlArAPuL976iTYJTzE", "MmbLUIm3JRYi00Yb01IUCCKdI90vUq1HHNtlTEu93YZfQaJwRxXlGkCNwIJe", "fy49QzaCIEu1XiOx5Jn+4GmkrZch/RrK9VzQWXgs+w==", -] +].freeze -SSH_AGENT_RESPONSE = "\x00\x00\x00\frsa-sha2-256\x00\x00\x01\x00\x15\x93\xA6\\\f\x8E\x04\x06PW\xFB\xB0\xD7\xCF\"\x06X\xC1%s\xA6\xFAo1C\xFF\nLb\xE4\x80l\x195\xC4E\xC6Mf\xF7\x9D\xD7\x8CM\xD6Tl\xB5tT\xFB\xE8\xA7\x9A5i\x8F\b\xDBC\x9A\x9A\xDF\x1Fi\xDA\xE5FE\xB5\xF2\xC8*\xB3\xEF\xEF\x19\xBC\xD1_\xA5\xCCL\xD3w\xD5\x81\xC2\xC7\xCF\xE3gY\xF4\xDF\x95\xF4\x8ERU\xF7\v\xFEU\xAB\xAEZ]\xC9\xB7\xDCx\x90\xB9\x8C\xE7\x0F\xE6\xDC\xDF%u\x94!<\e\xE9\x9D\xC4\xAE\r\xC3Su!\x1F\xD8}\x13J\x96\x95\x81\xAA\x9A#BV\xB0g\xA5\xEE\x92\x8BX\x14\xFC\x99~\xADyQH\xD6\xCB'\x81\xA5\x02\xB0\x0F\xB8\xBF{\xEA$\xD8%<\xC42f\xCBP\x89\xB7%\x16\"\xD3F\e\xD3R\x14\b\"\x9D#\xDD/R\xADG\x1C\xDBeLK\xBD\xDD\x86_A\xA2pG\x15\xE5\x1A@\x8D\xC0\x82^\x7F.=C6\x82 K\xB5^#\xB1\xE4\x99\xFE\xE0i\xA4\xAD\x97!\xFD\x1A\xCA\xF5\\\xD0Yx,\xFB" +SSH_AGENT_RESPONSE = "\x00\x00\x00\frsa-sha2-256\x00\x00\x01\x00\x15\x93\xA6\\\f\x8E\x04\x06PW\xFB\xB0\xD7\xCF\"\x06X\xC1%s\xA6\xFAo1C\xFF\nLb\xE4\x80l\x195\xC4E\xC6Mf\xF7\x9D\xD7\x8CM\xD6Tl\xB5tT\xFB\xE8\xA7\x9A5i\x8F\b\xDBC\x9A\x9A\xDF\x1Fi\xDA\xE5FE\xB5\xF2\xC8*\xB3\xEF\xEF\x19\xBC\xD1_\xA5\xCCL\xD3w\xD5\x81\xC2\xC7\xCF\xE3gY\xF4\xDF\x95\xF4\x8ERU\xF7\v\xFEU\xAB\xAEZ]\xC9\xB7\xDCx\x90\xB9\x8C\xE7\x0F\xE6\xDC\xDF%u\x94!<\e\xE9\x9D\xC4\xAE\r\xC3Su!\x1F\xD8}\x13J\x96\x95\x81\xAA\x9A#BV\xB0g\xA5\xEE\x92\x8BX\x14\xFC\x99~\xADyQH\xD6\xCB'\x81\xA5\x02\xB0\x0F\xB8\xBF{\xEA$\xD8%<\xC42f\xCBP\x89\xB7%\x16\"\xD3F\e\xD3R\x14\b\"\x9D#\xDD/R\xADG\x1C\xDBeLK\xBD\xDD\x86_A\xA2pG\x15\xE5\x1A@\x8D\xC0\x82^\x7F.=C6\x82 K\xB5^#\xB1\xE4\x99\xFE\xE0i\xA4\xAD\x97!\xFD\x1A\xCA\xF5\\\xD0Yx,\xFB".freeze # We expect Mixlib::Authentication::SignedHeaderAuth#sign to return this # if passed the BODY above, based on version @@ -405,7 +405,7 @@ EXPECTED_SIGN_RESULT_V1_0 = { "X-Ops-Authorization-5" => X_OPS_AUTHORIZATION_LINES_V1_0[4], "X-Ops-Authorization-6" => X_OPS_AUTHORIZATION_LINES_V1_0[5], "X-Ops-Timestamp" => TIMESTAMP_ISO8601, -} +}.freeze EXPECTED_SIGN_RESULT_V1_1 = { "X-Ops-Content-Hash" => X_OPS_CONTENT_HASH, @@ -418,7 +418,7 @@ EXPECTED_SIGN_RESULT_V1_1 = { "X-Ops-Authorization-5" => X_OPS_AUTHORIZATION_LINES[4], "X-Ops-Authorization-6" => X_OPS_AUTHORIZATION_LINES[5], "X-Ops-Timestamp" => TIMESTAMP_ISO8601, -} +}.freeze EXPECTED_SIGN_RESULT_V1_3_SHA256 = { "X-Ops-Content-Hash" => X_OPS_CONTENT_HASH_SHA256, @@ -431,7 +431,7 @@ EXPECTED_SIGN_RESULT_V1_3_SHA256 = { "X-Ops-Authorization-5" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[4], "X-Ops-Authorization-6" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[5], "X-Ops-Timestamp" => TIMESTAMP_ISO8601, -} +}.freeze OTHER_HEADERS = { # An arbitrary sampling of non-HTTP_* headers are in here to @@ -441,13 +441,13 @@ OTHER_HEADERS = { "REQUEST_PATH" => "/organizations/local-test-org/cookbooks", "CONTENT_TYPE" => "multipart/form-data; boundary=----RubyMultipartClient6792ZZZZZ", "CONTENT_LENGTH" => "394", -} +}.freeze # This is what will be in request.params for the Merb case. MERB_REQUEST_PARAMS = { "name" => "zsh", "action" => "create", "controller" => "chef_server_api/cookbooks", "organization_id" => "local-test-org", "requesting_actor_id" => REQUESTING_ACTOR_ID -} +}.freeze MERB_HEADERS_V1_3_SHA256 = { # These are used by signatureverification. @@ -502,10 +502,10 @@ MERB_HEADERS_V1_0 = { PASSENGER_REQUEST_PARAMS = { "action" => "create", - #"tarball"=>#<File:/tmp/RackMultipart20091120-25570-mgq2sa-0>, + # "tarball"=>#<File:/tmp/RackMultipart20091120-25570-mgq2sa-0>, "controller" => "api/v1/cookbooks", "cookbook" => "{\"category\":\"databases\"}", -} +}.freeze PASSENGER_HEADERS_V1_1 = { # These are used by signatureverification. @@ -542,78 +542,78 @@ PASSENGER_HEADERS_V1_0 = { # generated with # openssl genrsa -out private.pem 2048 # openssl rsa -in private.pem -out public.pem -pubout -PUBLIC_KEY_DATA = <<EOS ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ueqo76MXuP6XqZBILFz -iH/9AI7C6PaN5W0dSvkr9yInyGHSz/IR1+4tqvP2qlfKVKI4CP6BFH251Ft9qMUB -uAsnlAVQ1z0exDtIFFOyQCdR7iXmjBIWMSS4buBwRQXwDK7id1OxtU23qVJv+xwE -V0IzaaSJmaGLIbvRBD+qatfUuQJBMU/04DdJIwvLtZBYdC2219m5dUBQaa4bimL+ -YN9EcsDzD9h9UxQo5ReK7b3cNMzJBKJWLzFBcJuePMzAnLFktr/RufX4wpXe6XJx -oVPaHo72GorLkwnQ0HYMTY8rehT4mDi1FI969LHCFFaFHSAaRnwdXaQkJmSfcxzC -YQIDAQAB ------END PUBLIC KEY----- +PUBLIC_KEY_DATA = <<~EOS.freeze + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ueqo76MXuP6XqZBILFz + iH/9AI7C6PaN5W0dSvkr9yInyGHSz/IR1+4tqvP2qlfKVKI4CP6BFH251Ft9qMUB + uAsnlAVQ1z0exDtIFFOyQCdR7iXmjBIWMSS4buBwRQXwDK7id1OxtU23qVJv+xwE + V0IzaaSJmaGLIbvRBD+qatfUuQJBMU/04DdJIwvLtZBYdC2219m5dUBQaa4bimL+ + YN9EcsDzD9h9UxQo5ReK7b3cNMzJBKJWLzFBcJuePMzAnLFktr/RufX4wpXe6XJx + oVPaHo72GorLkwnQ0HYMTY8rehT4mDi1FI969LHCFFaFHSAaRnwdXaQkJmSfcxzC + YQIDAQAB + -----END PUBLIC KEY----- EOS PUBLIC_KEY = OpenSSL::PKey::RSA.new(PUBLIC_KEY_DATA) -PRIVATE_KEY_DATA = <<EOS ------BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEA0ueqo76MXuP6XqZBILFziH/9AI7C6PaN5W0dSvkr9yInyGHS -z/IR1+4tqvP2qlfKVKI4CP6BFH251Ft9qMUBuAsnlAVQ1z0exDtIFFOyQCdR7iXm -jBIWMSS4buBwRQXwDK7id1OxtU23qVJv+xwEV0IzaaSJmaGLIbvRBD+qatfUuQJB -MU/04DdJIwvLtZBYdC2219m5dUBQaa4bimL+YN9EcsDzD9h9UxQo5ReK7b3cNMzJ -BKJWLzFBcJuePMzAnLFktr/RufX4wpXe6XJxoVPaHo72GorLkwnQ0HYMTY8rehT4 -mDi1FI969LHCFFaFHSAaRnwdXaQkJmSfcxzCYQIDAQABAoIBAQCW3I4sKN5B9jOe -xq/pkeWBq4OvhW8Ys1yW0zFT8t6nHbB1XrwscQygd8gE9BPqj3e0iIEqtdphbPmj -VHqTYbC0FI6QDClifV7noTwTBjeIOlgZ0NSUN0/WgVzIOxUz2mZ2vBZUovKILPqG -TOi7J7RXMoySMdcXpP1f+PgvYNcnKsT72UcWaSXEV8/zo+Zm/qdGPVWwJonri5Mp -DVm5EQSENBiRyt028rU6ElXORNmoQpVjDVqZ1gipzXkifdjGyENw2rt4V/iKYD7V -5iqXOsvP6Cemf4gbrjunAgDG08S00kiUgvVWcdXW+dlsR2nCvH4DOEe3AYYh/aH8 -DxEE7FbtAoGBAPcNO8fJ56mNw0ow4Qg38C+Zss/afhBOCfX4O/SZKv/roRn5+gRM -KRJYSVXNnsjPI1plzqR4OCyOrjAhtuvL4a0DinDzf1+fiztyNohwYsW1vYmqn3ti -EN0GhSgE7ppZjqvLQ3f3LUTxynhA0U+k9wflb4irIlViTUlCsOPkrNJDAoGBANqL -Q+vvuGSsmRLU/Cenjy+Mjj6+QENg51dz34o8JKuVKIPKU8pNnyeLa5fat0qD2MHm -OB9opeQOcw0dStodxr6DB3wi83bpjeU6BWUGITNiWEaZEBrQ0aiqNJJKrrHm8fAZ -9o4l4oHc4hI0kYVYYDuxtKuVJrzZiEapTwoOcYiLAoGBAI/EWbeIHZIj9zOjgjEA -LHvm25HtulLOtyk2jd1njQhlHNk7CW2azIPqcLLH99EwCYi/miNH+pijZ2aHGCXb -/bZrSxM0ADmrZKDxdB6uGCyp+GS2sBxjEyEsfCyvwhJ8b3Q100tqwiNO+d5FCglp -HICx2dgUjuRVUliBwOK93nx1AoGAUI8RhIEjOYkeDAESyhNMBr0LGjnLOosX+/as -qiotYkpjWuFULbibOFp+WMW41vDvD9qrSXir3fstkeIAW5KqVkO6mJnRoT3Knnra -zjiKOITCAZQeiaP8BO5o3pxE9TMqb9VCO3ffnPstIoTaN4syPg7tiGo8k1SklVeH -2S8lzq0CgYAKG2fljIYWQvGH628rp4ZcXS4hWmYohOxsnl1YrszbJ+hzR+IQOhGl -YlkUQYXhy9JixmUUKtH+NXkKX7Lyc8XYw5ETr7JBT3ifs+G7HruDjVG78EJVojbd -8uLA+DdQm5mg4vd1GTiSK65q/3EeoBlUaVor3HhLFki+i9qpT8CBsg== ------END RSA PRIVATE KEY----- +PRIVATE_KEY_DATA = <<~EOS.freeze + -----BEGIN RSA PRIVATE KEY----- + MIIEpAIBAAKCAQEA0ueqo76MXuP6XqZBILFziH/9AI7C6PaN5W0dSvkr9yInyGHS + z/IR1+4tqvP2qlfKVKI4CP6BFH251Ft9qMUBuAsnlAVQ1z0exDtIFFOyQCdR7iXm + jBIWMSS4buBwRQXwDK7id1OxtU23qVJv+xwEV0IzaaSJmaGLIbvRBD+qatfUuQJB + MU/04DdJIwvLtZBYdC2219m5dUBQaa4bimL+YN9EcsDzD9h9UxQo5ReK7b3cNMzJ + BKJWLzFBcJuePMzAnLFktr/RufX4wpXe6XJxoVPaHo72GorLkwnQ0HYMTY8rehT4 + mDi1FI969LHCFFaFHSAaRnwdXaQkJmSfcxzCYQIDAQABAoIBAQCW3I4sKN5B9jOe + xq/pkeWBq4OvhW8Ys1yW0zFT8t6nHbB1XrwscQygd8gE9BPqj3e0iIEqtdphbPmj + VHqTYbC0FI6QDClifV7noTwTBjeIOlgZ0NSUN0/WgVzIOxUz2mZ2vBZUovKILPqG + TOi7J7RXMoySMdcXpP1f+PgvYNcnKsT72UcWaSXEV8/zo+Zm/qdGPVWwJonri5Mp + DVm5EQSENBiRyt028rU6ElXORNmoQpVjDVqZ1gipzXkifdjGyENw2rt4V/iKYD7V + 5iqXOsvP6Cemf4gbrjunAgDG08S00kiUgvVWcdXW+dlsR2nCvH4DOEe3AYYh/aH8 + DxEE7FbtAoGBAPcNO8fJ56mNw0ow4Qg38C+Zss/afhBOCfX4O/SZKv/roRn5+gRM + KRJYSVXNnsjPI1plzqR4OCyOrjAhtuvL4a0DinDzf1+fiztyNohwYsW1vYmqn3ti + EN0GhSgE7ppZjqvLQ3f3LUTxynhA0U+k9wflb4irIlViTUlCsOPkrNJDAoGBANqL + Q+vvuGSsmRLU/Cenjy+Mjj6+QENg51dz34o8JKuVKIPKU8pNnyeLa5fat0qD2MHm + OB9opeQOcw0dStodxr6DB3wi83bpjeU6BWUGITNiWEaZEBrQ0aiqNJJKrrHm8fAZ + 9o4l4oHc4hI0kYVYYDuxtKuVJrzZiEapTwoOcYiLAoGBAI/EWbeIHZIj9zOjgjEA + LHvm25HtulLOtyk2jd1njQhlHNk7CW2azIPqcLLH99EwCYi/miNH+pijZ2aHGCXb + /bZrSxM0ADmrZKDxdB6uGCyp+GS2sBxjEyEsfCyvwhJ8b3Q100tqwiNO+d5FCglp + HICx2dgUjuRVUliBwOK93nx1AoGAUI8RhIEjOYkeDAESyhNMBr0LGjnLOosX+/as + qiotYkpjWuFULbibOFp+WMW41vDvD9qrSXir3fstkeIAW5KqVkO6mJnRoT3Knnra + zjiKOITCAZQeiaP8BO5o3pxE9TMqb9VCO3ffnPstIoTaN4syPg7tiGo8k1SklVeH + 2S8lzq0CgYAKG2fljIYWQvGH628rp4ZcXS4hWmYohOxsnl1YrszbJ+hzR+IQOhGl + YlkUQYXhy9JixmUUKtH+NXkKX7Lyc8XYw5ETr7JBT3ifs+G7HruDjVG78EJVojbd + 8uLA+DdQm5mg4vd1GTiSK65q/3EeoBlUaVor3HhLFki+i9qpT8CBsg== + -----END RSA PRIVATE KEY----- EOS PRIVATE_KEY = OpenSSL::PKey::RSA.new(PRIVATE_KEY_DATA) -V1_0_CANONICAL_REQUEST_DATA = <<EOS -Method:POST -Hashed Path:#{HASHED_CANONICAL_PATH} -X-Ops-Content-Hash:#{HASHED_BODY} -X-Ops-Timestamp:#{TIMESTAMP_ISO8601} -X-Ops-UserId:#{USER_ID} +V1_0_CANONICAL_REQUEST_DATA = <<~EOS.freeze + Method:POST + Hashed Path:#{HASHED_CANONICAL_PATH} + X-Ops-Content-Hash:#{HASHED_BODY} + X-Ops-Timestamp:#{TIMESTAMP_ISO8601} + X-Ops-UserId:#{USER_ID} EOS V1_0_CANONICAL_REQUEST = V1_0_CANONICAL_REQUEST_DATA.chomp -V1_1_CANONICAL_REQUEST_DATA = <<EOS -Method:POST -Hashed Path:#{HASHED_CANONICAL_PATH} -X-Ops-Content-Hash:#{HASHED_BODY} -X-Ops-Timestamp:#{TIMESTAMP_ISO8601} -X-Ops-UserId:#{DIGESTED_USER_ID} +V1_1_CANONICAL_REQUEST_DATA = <<~EOS.freeze + Method:POST + Hashed Path:#{HASHED_CANONICAL_PATH} + X-Ops-Content-Hash:#{HASHED_BODY} + X-Ops-Timestamp:#{TIMESTAMP_ISO8601} + X-Ops-UserId:#{DIGESTED_USER_ID} EOS V1_1_CANONICAL_REQUEST = V1_1_CANONICAL_REQUEST_DATA.chomp -V1_3_SHA256_CANONICAL_REQUEST_DATA = <<EOS -Method:POST -Path:#{PATH} -X-Ops-Content-Hash:#{HASHED_BODY_SHA256} -X-Ops-Sign:version=1.3 -X-Ops-Timestamp:#{TIMESTAMP_ISO8601} -X-Ops-UserId:#{USER_ID} -X-Ops-Server-API-Version:1 +V1_3_SHA256_CANONICAL_REQUEST_DATA = <<~EOS.freeze + Method:POST + Path:#{PATH} + X-Ops-Content-Hash:#{HASHED_BODY_SHA256} + X-Ops-Sign:version=1.3 + X-Ops-Timestamp:#{TIMESTAMP_ISO8601} + X-Ops-UserId:#{USER_ID} + X-Ops-Server-API-Version:1 EOS V1_3_SHA256_CANONICAL_REQUEST = V1_3_SHA256_CANONICAL_REQUEST_DATA.chomp |