class OCI::Auth::SessionKeySupplier

A supplier which can vend a public and private key to be used for signing requests

Constants

PUBLIC_EXPONENT

Public Class Methods

new(key_size: 2048) click to toggle source
# File lib/oci/auth/session_key_supplier.rb, line 11
def initialize(key_size: 2048)
  @key_size = key_size
  @refresh_lock = Mutex.new

  @private_key = OpenSSL::PKey::RSA.generate(@key_size, PUBLIC_EXPONENT)
end

Public Instance Methods

key_pair() click to toggle source

Retrieves a public key and private key @return [Hash] A 2 element hash, where the key 'private_key' retrieves the private key and the public key can be retrieved by using the key 'public_key'

# File lib/oci/auth/session_key_supplier.rb, line 20
def key_pair
  @refresh_lock.lock
  private_key = @private_key
  @refresh_lock.unlock

  { 'private_key': private_key, 'public_key': private_key.public_key }
end
refresh() click to toggle source

Generates a new public and private key

# File lib/oci/auth/session_key_supplier.rb, line 29
def refresh
  @refresh_lock.lock
  @private_key = OpenSSL::PKey::RSA.generate(@key_size, PUBLIC_EXPONENT)
ensure
  @refresh_lock.unlock if @refresh_lock.locked? && @refresh_lock.owned?
end