Class: Mongo::Crypt::KmsContext

Inherits:
Object
  • Object
show all
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.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(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.



30
31
32
# 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.



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

def kms_ctx_p
  @kms_ctx_p
end

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.



58
59
60
# 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.



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

def endpoint
  Binding.kms_ctx_endpoint(self)
end

#feed(data) ⇒ Object

Feed a response from the HTTP request to libmongocrypt.

Parameters:

  • data (String)

    Data to feed to libmongocrypt.



65
66
67
# 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.



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

def message
  Binding.kms_ctx_message(self)
end