Sha256: 0abe2038977c86910390cd61335e75ff9204bda59f40b8b78d408ef023580c2e
Contents?: true
Size: 1.52 KB
Versions: 3
Compression:
Stored size: 1.52 KB
Contents
# frozen_string_literal: true module Xml module Kit class KeyPair # :nodoc: attr_reader :certificate attr_reader :private_key attr_reader :public_key def initialize(certificate, private_key, passphrase, use) @certificate = ::Xml::Kit::Certificate.new(certificate, use: use) @private_key = if passphrase.present? OpenSSL::PKey::RSA.new(private_key, passphrase) else OpenSSL::PKey::RSA.new(private_key) end @public_key = @private_key.public_key end # Returns true if the key pair is the designated use. # # @param use [Symbol] Can be either `:signing` or `:encryption`. def for?(use) certificate.for?(use) end # Returns a generated self signed certificate with private key. # # @param use [Symbol] Can be either `:signing` or `:encryption`. # @param passphrase [String] the passphrase to use to encrypt the private key. # @param algorithm [String] the symmetric algorithm to use for encrypting the private key. def self.generate(use:, passphrase: SecureRandom.uuid, algorithm: Crypto::SymmetricCipher::DEFAULT_ALGORITHM) algorithm = Crypto::SymmetricCipher::ALGORITHMS[algorithm] certificate, private_key = SelfSignedCertificate.new.create( algorithm: algorithm, passphrase: passphrase ) new(certificate, private_key, passphrase, use) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
xml-kit-0.6.0 | lib/xml/kit/key_pair.rb |
xml-kit-0.5.0 | lib/xml/kit/key_pair.rb |
xml-kit-0.4.0 | lib/xml/kit/key_pair.rb |