123456789_123456789_123456789_123456789_123456789_

Class: Mongo::Crypt::KmsContext

Relationships & Source Files
Inherits: Object
Defined in: lib/mongo/crypt/kms_context.rb

Overview

Wraps a libmongocrypt mongocrypt_kms_ctx_t object. Contains information about making an HTTP request to fetch information about a KMS data key.

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(kms_ctx) ⇒ KmsContext

Create a new KmsContext object.

Parameters:

  • kms_ctx (FFI::Pointer)

    A pointer to a mongocrypt_kms_ctx_t object. This object is managed by the mongocrypt_ctx_t object that created it; this class is not responsible for de-allocating resources.

[ GitHub ]

  
# File 'lib/mongo/crypt/kms_context.rb', line 30

def initialize(kms_ctx)
  @kms_ctx_p = kms_ctx
end

Instance Attribute Details

#kms_ctx_pFFI::Pointer (readonly)

Return the pointer to the underlying mongocrypt_kms_ctx_t object.

Returns:

  • (FFI::Pointer)

    A pointer to a mongocrypt_kms_ctx_t object.

[ GitHub ]

  
# File 'lib/mongo/crypt/kms_context.rb', line 37

attr_reader :kms_ctx_p

Instance Method Details

#bytes_neededInteger

Return the number of bytes still needed by libmongocrypt to complete the request for information about the AWS data key.

Returns:

  • (Integer)

    The number of bytes needed.

[ GitHub ]

  
# File 'lib/mongo/crypt/kms_context.rb', line 58

def bytes_needed
  Binding.kms_ctx_bytes_needed(self)
end

#endpointString

Return the endpoint at which to make the HTTP request.

Returns:

  • (String)

    The endpoint.

[ GitHub ]

  
# File 'lib/mongo/crypt/kms_context.rb', line 42

def endpoint
  Binding.kms_ctx_endpoint(self)
end

#feed(data)

Feed a response from the HTTP request to libmongocrypt.

Parameters:

  • data (String)

    Data to feed to libmongocrypt.

[ GitHub ]

  
# File 'lib/mongo/crypt/kms_context.rb', line 65

def feed(data)
  Binding.kms_ctx_feed(self, data)
end

#messageString

Return the HTTP message to send to fetch information about the relevant KMS data key.

Returns:

  • (String)

    The HTTP message.

[ GitHub ]

  
# File 'lib/mongo/crypt/kms_context.rb', line 50

def message
  Binding.kms_ctx_message(self)
end