Method: Gem::Security.get_public_key

Defined in:
lib/rubygems/security.rb

.get_public_key(key) ⇒ Object

Gets the right public key from a PKey instance



425
426
427
428
429
430
431
432
433
# File 'lib/rubygems/security.rb', line 425

def self.get_public_key(key)
  # Ruby 3.0 (Ruby/OpenSSL 2.2) or later
  return OpenSSL::PKey.read(key.public_to_der) if key.respond_to?(:public_to_der)
  return key.public_key unless key.is_a?(OpenSSL::PKey::EC)

  ec_key = OpenSSL::PKey::EC.new(key.group.curve_name)
  ec_key.public_key = key.public_key
  ec_key
end