lib/chamber/files/signature.rb in chamber-2.13.1 vs lib/chamber/files/signature.rb in chamber-2.14.0

- old
+ new

@@ -6,28 +6,30 @@ module Chamber module Files class Signature SIGNATURE_HEADER = '-----BEGIN CHAMBER SIGNATURE-----' - SIGNATURE_HEADER_PATTERN = /\-\-\-\-\-BEGIN\sCHAMBER\sSIGNATURE\-\-\-\-\-/.freeze + SIGNATURE_HEADER_PATTERN = /-----BEGIN\sCHAMBER\sSIGNATURE-----/.freeze SIGNATURE_FOOTER = '-----END CHAMBER SIGNATURE-----' - SIGNATURE_FOOTER_PATTERN = /\-\-\-\-\-END\sCHAMBER\sSIGNATURE\-\-\-\-\-/.freeze + SIGNATURE_FOOTER_PATTERN = /-----END\sCHAMBER\sSIGNATURE-----/.freeze SIGNATURE_IN_FILE_PATTERN = / #{SIGNATURE_HEADER_PATTERN}\n # Header (.*)\n # Signature Body #{SIGNATURE_FOOTER_PATTERN} # Footer /x.freeze attr_accessor :settings_content, - :settings_filename + :settings_filename, + :signature_name attr_reader :signature_key - def initialize(settings_filename, settings_content, signature_key) + def initialize(settings_filename, settings_content, signature_key, signature_name) self.signature_key = signature_key self.settings_content = settings_content self.settings_filename = Pathname.new(settings_filename) + self.signature_name = signature_name end def signature_key=(keyish) @signature_key = if keyish.is_a?(OpenSSL::PKey::RSA) keyish @@ -39,11 +41,11 @@ end end def write signature_filename.write(<<-HEREDOC, 0, mode: 'w+') -Signed By: #{`git config --get 'user.name'`.chomp} +Signed By: #{signature_name} Signed At: #{Time.now.utc.iso8601} #{SIGNATURE_HEADER} #{encoded_signature} #{SIGNATURE_FOOTER} @@ -59,33 +61,33 @@ def encoded_signature @encoded_signature ||= Base64.strict_encode64(raw_signature) end def raw_signature - @raw_signature ||= signature_key. - sign(digest, settings_content) + @raw_signature ||= signature_key + .sign(digest, settings_content) end def signature_filename - @signature_filename ||= settings_filename. - sub('.yml', '.sig'). - sub('.erb', '') + @signature_filename ||= settings_filename + .sub('.yml', '.sig') + .sub('.erb', '') end def encoded_signature_content - @encoded_signature_content ||= signature_filename. - read. - match(SIGNATURE_IN_FILE_PATTERN) do |match| + @encoded_signature_content ||= signature_filename + .read + .match(SIGNATURE_IN_FILE_PATTERN) do |match| match[1] end end def signature_content @signature_content ||= Base64.strict_decode64(encoded_signature_content) end def digest - @digest ||= OpenSSL::Digest::SHA512.new + @digest ||= OpenSSL::Digest.new('SHA512') end end end end