class Izokatu::Openssl::PublicKey::EC::KeysGenerator

OpenSSL EC keys generator

Constants

DEFAULT_OPTIONS

Default options for OpenSSL EC keys generation

Attributes

cipher[R]

@return [String] cipher for keys generation

Public Class Methods

new(cipher:) click to toggle source

Initialize option for OpenSSL EC keys generation

@param cipher (cipher)

@since 0.1.0

Calls superclass method
# File lib/izokatu/openssl/public_key/ec/keys_generator.rb, line 25
def initialize(cipher:)
  super()
  @cipher = cipher || DEFAULT_OPTIONS[:cipher]
end

Public Instance Methods

perform() click to toggle source

Performing generation of OpenSSL EC private and public keys

@return [Hash] OpenSSL EC public and private keys

@since 0.1.0

Calls superclass method Izokatu::KeysGenerator#perform
# File lib/izokatu/openssl/public_key/ec/keys_generator.rb, line 36
def perform
  validate_ec_cipher!
  super.transform_values(&:to_pem)
end

Private Instance Methods

generate_private_key() click to toggle source

Performing generation of OpenSSL EC private key

@return [OpenSSL::PKey::EC] OpenSSL private key

@since 0.1.0

# File lib/izokatu/openssl/public_key/ec/keys_generator.rb, line 58
def generate_private_key
  OpenSSL::PKey::EC.new(cipher).generate_key
end
generate_public_key(private_key) click to toggle source

Performing generation of OpenSSL EC private key

@return [OpenSSL::PKey::EC] OpenSSL private key

@since 0.1.0

# File lib/izokatu/openssl/public_key/ec/keys_generator.rb, line 68
def generate_public_key(private_key)
  private_key_copy = OpenSSL::PKey::EC.new(private_key.public_key.group)
  private_key_copy.public_key = private_key.public_key
  private_key_copy
end
validate_ec_cipher!() click to toggle source

Verifying EC cipher

@raise RuntimeError

@since 0.1.0

# File lib/izokatu/openssl/public_key/ec/keys_generator.rb, line 48
def validate_ec_cipher!
  raise 'ERROR: Unknown EC cipher!' unless PBKEY_EC_CIPHERS.include?(cipher)
end