class Aws::Plugins::S3SseCpk::Handler
Public Instance Methods
call(context)
click to toggle source
# File lib/aws-sdk-core/plugins/s3_sse_cpk.rb, line 16 def call(context) compute_key_md5(context) @handler.call(context) end
Private Instance Methods
base64(str)
click to toggle source
# File lib/aws-sdk-core/plugins/s3_sse_cpk.rb, line 53 def base64(str) Base64.encode64(str).strip end
compute_key_md5(context)
click to toggle source
# File lib/aws-sdk-core/plugins/s3_sse_cpk.rb, line 23 def compute_key_md5(context) params = context.params if key = params[:sse_customer_key] require_https(context) params[:sse_customer_key] = base64(key) params[:sse_customer_key_md5] = base64(md5(key)) end if key = params[:copy_source_sse_customer_key] require_https(context) params[:copy_source_sse_customer_key] = base64(key) params[:copy_source_sse_customer_key_md5] = base64(md5(key)) end end
md5(str)
click to toggle source
# File lib/aws-sdk-core/plugins/s3_sse_cpk.rb, line 49 def md5(str) OpenSSL::Digest::MD5.digest(str) end
require_https(context)
click to toggle source
# File lib/aws-sdk-core/plugins/s3_sse_cpk.rb, line 37 def require_https(context) unless URI::HTTPS === context.config.endpoint msg = " Attempting to send customer-provided-keys for S3 server-side-encryption over HTTP; Please configure a HTTPS endpoint. If you are attempting to use a test endpoint, you can disable this check via `:require_https_for_sse_cpk` ".strip.gsub("\n", ' ') raise ArgumentError, msg end end