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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

def message
  Binding.kms_ctx_message(self)
end