Sha256: 477ce56595a426687a5eca0810f5706700767899961685505ff45546cd9e3735

Contents?: true

Size: 734 Bytes

Versions: 3

Compression:

Stored size: 734 Bytes

Contents

require "ba_upload/version"
require "openssl"

module BaUpload
  def self.export_certificate(file_path:, passphrase:)
    cert = OpenSSL::PKCS12.new(File.read(file_path), passphrase)
    {
      key: Tempfile.new(['key','.pem']).tap{|f| f.write(cert.key.to_s); f.flush},
      cert: Tempfile.new(['cert','.pem']).tap{|f| f.write(cert.certificate.to_s); f.flush},
      ca_cert: Tempfile.new(['ca_cert','.pem']).tap{|f| f.write(cert.ca_certs.reverse.join("\n")); f.flush }
    }
  end

  def self.open_connection(file_path:, passphrase:)
    cert = BaUpload.export_certificate(file_path: file_path, passphrase: passphrase)
    BaUpload::Connection.new(cert[:key], cert[:cert], cert[:ca_cert])
  end
end

require 'ba_upload/connection'

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ba_upload-0.3.0 lib/ba_upload.rb
ba_upload-0.2.0 lib/ba_upload.rb
ba_upload-0.1.0 lib/ba_upload.rb