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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

def message
  Binding.kms_ctx_message(self)
end