class Passifier::Signing

Class for Pass signing functionality

Public Class Methods

new(key_pem, pass_phrase, certificate_pem) click to toggle source

@param [String] key_pem The key pem file location @param [String] pass_phrase The key pass phrase @param [String] certificate_pem The certificate pem file location

# File lib/passifier/signing.rb, line 11
def initialize(key_pem, pass_phrase, certificate_pem)
  @certificate = File.read(certificate_pem)
  @key = File.read(key_pem)
  @pass_phrase = pass_phrase
end

Public Instance Methods

sha(content) click to toggle source

Generate a digest of the given content @param [String] content The content to generate a digest from @return [String] The resulting digest

# File lib/passifier/signing.rb, line 20
def sha(content)
  signed_contents = sign(content)
  Digest::SHA1.hexdigest(signed_contents)
end
sign(content) click to toggle source

Sign the given content @param [String] content The content to generate a signing of @return [String] The resulting signing

# File lib/passifier/signing.rb, line 28
def sign(content)
  key = OpenSSL::PKey::RSA.new(@key, @pass_phrase)
  certificate = OpenSSL::X509::Certificate.new(@certificate)
  OpenSSL::PKCS7.sign(certificate, key, content, nil, OpenSSL::PKCS7::BINARY | OpenSSL::PKCS7::NOATTR | OpenSSL::PKCS7::DETACHED).to_der
end