class Crusade::APNS::SignatureGenerator

Constants

FLAG

Attributes

configuration[RW]

Public Class Methods

new(configuration) click to toggle source
# File lib/crusade/apns/push_package/signature_generator.rb, line 9
def initialize configuration
  self.configuration = configuration
end

Public Instance Methods

sign(manifest) click to toggle source
# File lib/crusade/apns/push_package/signature_generator.rb, line 13
def sign manifest
  dir = File.dirname manifest
  signature_file = File.join(dir, 'signature')

  File.open(signature_file, 'wb') do |file|
    file.write generate_signature manifest
  end
end

Private Instance Methods

certificate() click to toggle source
# File lib/crusade/apns/push_package/signature_generator.rb, line 36
def certificate
  crt = OpenSSL::PKCS12.new(File.read(configuration.certificate), certificate_password)
end
certificate_password() click to toggle source
# File lib/crusade/apns/push_package/signature_generator.rb, line 40
def certificate_password
  configuration.certificate_password
end
generate_signature(manifest) click to toggle source
# File lib/crusade/apns/push_package/signature_generator.rb, line 26
def generate_signature manifest
  crt = certificate

  signature = OpenSSL::PKCS7::sign(crt.certificate, crt.key, File.read(manifest), [], FLAG  )
  signature = signature.to_s.split("\n")
  signature = signature[1..signature.length-2].join("\n")

  Base64.decode64 signature.to_s
end