summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2019-06-06 21:36:43 -0700
committerTim Smith <tsmith84@gmail.com>2019-08-06 20:33:17 -0700
commit63d1ccbaa80b6647e2e199f792d08ebcae26cf4a (patch)
tree7f89f71a5ebcad1f588213b242599fba12843a52
parenta5195e9688430eb089963c9383870ef1528510e9 (diff)
downloadmixlib-authentication-63d1ccbaa80b6647e2e199f792d08ebcae26cf4a.tar.gz
Chefstyle autocorrects
Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r--lib/mixlib/authentication.rb2
-rw-r--r--lib/mixlib/authentication/http_authentication_request.rb2
-rw-r--r--lib/mixlib/authentication/version.rb2
-rw-r--r--spec/mixlib/authentication/http_authentication_request_spec.rb16
-rw-r--r--spec/mixlib/authentication/mixlib_authentication_spec.rb172
5 files changed, 97 insertions, 97 deletions
diff --git a/lib/mixlib/authentication.rb b/lib/mixlib/authentication.rb
index 167ed22..b2019ee 100644
--- a/lib/mixlib/authentication.rb
+++ b/lib/mixlib/authentication.rb
@@ -18,7 +18,7 @@
module Mixlib
module Authentication
- DEFAULT_SERVER_API_VERSION = "0"
+ DEFAULT_SERVER_API_VERSION = "0".freeze
attr_accessor :logger
module_function :logger, :logger=
diff --git a/lib/mixlib/authentication/http_authentication_request.rb b/lib/mixlib/authentication/http_authentication_request.rb
index 967c0e3..8e45b4b 100644
--- a/lib/mixlib/authentication/http_authentication_request.rb
+++ b/lib/mixlib/authentication/http_authentication_request.rb
@@ -22,7 +22,7 @@ module Mixlib
module Authentication
class HTTPAuthenticationRequest
- MANDATORY_HEADERS = [:x_ops_sign, :x_ops_userid, :x_ops_timestamp, :host, :x_ops_content_hash]
+ MANDATORY_HEADERS = [:x_ops_sign, :x_ops_userid, :x_ops_timestamp, :host, :x_ops_content_hash].freeze
attr_reader :request
diff --git a/lib/mixlib/authentication/version.rb b/lib/mixlib/authentication/version.rb
index 99d74d0..cade16a 100644
--- a/lib/mixlib/authentication/version.rb
+++ b/lib/mixlib/authentication/version.rb
@@ -16,6 +16,6 @@
module Mixlib
module Authentication
- VERSION = "3.0.2"
+ VERSION = "3.0.2".freeze
end
end
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