mongocrypt

package
v1.17.0-beta1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 12, 2024 License: Apache-2.0 Imports: 3 Imported by: 22

Documentation

Overview

Package mongocrypt is intended for internal use only. It is made available to facilitate use cases that require access to internal MongoDB driver functionality and state. The API of this package is not stable and there is no backward compatibility guarantee.

WARNING: THIS PACKAGE IS EXPERIMENTAL AND MAY BE MODIFIED OR REMOVED WITHOUT NOTICE! USE WITH EXTREME CAUTION!

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Version added in v1.10.1

func Version() string

Version returns the version string for the loaded libmongocrypt, or an empty string if libmongocrypt was not loaded.

Types

type Context

type Context struct{}

Context represents a mongocrypt_ctx_t handle

func (*Context) AddOperationResult

func (c *Context) AddOperationResult(bsoncore.Document) error

AddOperationResult feeds the result of a database operation to mongocrypt.

func (*Context) Close

func (c *Context) Close()

Close cleans up any resources associated with the given Context instance.

func (*Context) CompleteOperation

func (c *Context) CompleteOperation() error

CompleteOperation signals a database operation has been completed.

func (*Context) Finish

func (c *Context) Finish() (bsoncore.Document, error)

Finish performs the final operations for the context and returns the resulting document.

func (*Context) FinishKmsContexts

func (c *Context) FinishKmsContexts() error

FinishKmsContexts signals that all KMS contexts have been completed.

func (*Context) NextKmsContext

func (c *Context) NextKmsContext() *KmsContext

NextKmsContext returns the next KmsContext, or nil if there are no more.

func (*Context) NextOperation

func (c *Context) NextOperation() (bsoncore.Document, error)

NextOperation gets the document for the next database operation to run.

func (*Context) ProvideKmsProviders added in v1.11.0

func (c *Context) ProvideKmsProviders(bsoncore.Document) error

ProvideKmsProviders provides the KMS providers when in the NeedKmsCredentials state.

func (*Context) State

func (c *Context) State() State

State returns the current State of the Context.

type Error

type Error struct {
	Code    int32
	Message string
}

Error represents an error from an operation on a MongoCrypt instance.

func (Error) Error

func (Error) Error() string

Error implements the error interface

type KmsContext

type KmsContext struct{}

KmsContext represents a mongocrypt_kms_ctx_t handle.

func (*KmsContext) BytesNeeded

func (kc *KmsContext) BytesNeeded() int32

BytesNeeded returns the number of bytes that should be received from the KMS. After sending the message to the KMS, this message should be called in a loop until the number returned is 0.

func (*KmsContext) FeedResponse

func (kc *KmsContext) FeedResponse([]byte) error

FeedResponse feeds the bytes received from the KMS to mongocrypt.

func (*KmsContext) HostName

func (kc *KmsContext) HostName() (string, error)

HostName gets the host name of the KMS.

func (*KmsContext) KMSProvider added in v1.8.0

func (kc *KmsContext) KMSProvider() string

KMSProvider gets the KMS provider of the KMS context.

func (*KmsContext) Message

func (kc *KmsContext) Message() ([]byte, error)

Message returns the message to send to the KMS.

type MongoCrypt

type MongoCrypt struct{}

MongoCrypt represents a mongocrypt_t handle.

func NewMongoCrypt

func NewMongoCrypt(*options.MongoCryptOptions) (*MongoCrypt, error)

NewMongoCrypt constructs a new MongoCrypt instance configured using the provided MongoCryptOptions.

func (*MongoCrypt) Close

func (m *MongoCrypt) Close()

Close cleans up any resources associated with the given MongoCrypt instance.

func (*MongoCrypt) CreateDataKeyContext

func (m *MongoCrypt) CreateDataKeyContext(string, *options.DataKeyOptions) (*Context, error)

CreateDataKeyContext creates a Context to use for creating a data key.

func (*MongoCrypt) CreateDecryptionContext

func (m *MongoCrypt) CreateDecryptionContext(bsoncore.Document) (*Context, error)

CreateDecryptionContext creates a Context to use for decryption.

func (*MongoCrypt) CreateEncryptionContext

func (m *MongoCrypt) CreateEncryptionContext(string, bsoncore.Document) (*Context, error)

CreateEncryptionContext creates a Context to use for encryption.

func (*MongoCrypt) CreateExplicitDecryptionContext

func (m *MongoCrypt) CreateExplicitDecryptionContext(bsoncore.Document) (*Context, error)

CreateExplicitDecryptionContext creates a Context to use for explicit decryption.

func (*MongoCrypt) CreateExplicitEncryptionContext

func (m *MongoCrypt) CreateExplicitEncryptionContext(bsoncore.Document, *options.ExplicitEncryptionOptions) (*Context, error)

CreateExplicitEncryptionContext creates a Context to use for explicit encryption.

func (*MongoCrypt) CreateExplicitEncryptionExpressionContext added in v1.12.0

func (m *MongoCrypt) CreateExplicitEncryptionExpressionContext(bsoncore.Document, *options.ExplicitEncryptionOptions) (*Context, error)

CreateExplicitEncryptionExpressionContext creates a Context to use for explicit encryption of an expression.

func (*MongoCrypt) CryptSharedLibVersion added in v1.10.0

func (m *MongoCrypt) CryptSharedLibVersion() uint64

CryptSharedLibVersion returns the version number for the loaded crypt_shared library, or 0 if the crypt_shared library was not loaded.

func (*MongoCrypt) CryptSharedLibVersionString added in v1.10.0

func (m *MongoCrypt) CryptSharedLibVersionString() string

CryptSharedLibVersionString returns the version string for the loaded crypt_shared library, or an empty string if the crypt_shared library was not loaded.

func (*MongoCrypt) GetKmsProviders added in v1.11.0

func (m *MongoCrypt) GetKmsProviders(context.Context) (bsoncore.Document, error)

GetKmsProviders returns the originally configured KMS providers.

func (*MongoCrypt) RewrapDataKeyContext added in v1.10.0

func (m *MongoCrypt) RewrapDataKeyContext([]byte, *options.RewrapManyDataKeyOptions) (*Context, error)

RewrapDataKeyContext creates a Context to use for rewrapping a data key.

type State

type State int

State represents a state that a MongocryptContext can be in.

const (
	StateError         State = 0
	NeedMongoCollInfo  State = 1
	NeedMongoMarkings  State = 2
	NeedMongoKeys      State = 3
	NeedKms            State = 4
	Ready              State = 5
	Done               State = 6
	NeedKmsCredentials State = 7
)

These constants are valid values for the State type. The values must match the values defined in the mongocrypt_ctx_state_t enum in libmongocrypt.

func (State) String

func (s State) String() string

String implements the Stringer interface.

Directories

Path Synopsis
Package options is intended for internal use only.
Package options is intended for internal use only.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL