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 ¶
- func Version() string
- type Context
- func (c *Context) AddOperationResult(bsoncore.Document) error
- func (c *Context) Close()
- func (c *Context) CompleteOperation() error
- func (c *Context) Finish() (bsoncore.Document, error)
- func (c *Context) FinishKmsContexts() error
- func (c *Context) NextKmsContext() *KmsContext
- func (c *Context) NextOperation() (bsoncore.Document, error)
- func (c *Context) ProvideKmsProviders(bsoncore.Document) error
- func (c *Context) State() State
- type Error
- type KmsContext
- type MongoCrypt
- func (m *MongoCrypt) Close()
- func (m *MongoCrypt) CreateDataKeyContext(string, *options.DataKeyOptions) (*Context, error)
- func (m *MongoCrypt) CreateDecryptionContext(bsoncore.Document) (*Context, error)
- func (m *MongoCrypt) CreateEncryptionContext(string, bsoncore.Document) (*Context, error)
- func (m *MongoCrypt) CreateExplicitDecryptionContext(bsoncore.Document) (*Context, error)
- func (m *MongoCrypt) CreateExplicitEncryptionContext(bsoncore.Document, *options.ExplicitEncryptionOptions) (*Context, error)
- func (m *MongoCrypt) CreateExplicitEncryptionExpressionContext(bsoncore.Document, *options.ExplicitEncryptionOptions) (*Context, error)
- func (m *MongoCrypt) CryptSharedLibVersion() uint64
- func (m *MongoCrypt) CryptSharedLibVersionString() string
- func (m *MongoCrypt) GetKmsProviders(context.Context) (bsoncore.Document, error)
- func (m *MongoCrypt) RewrapDataKeyContext([]byte, *options.RewrapManyDataKeyOptions) (*Context, error)
- type State
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Context ¶
type Context struct{}
Context represents a mongocrypt_ctx_t handle
func (*Context) AddOperationResult ¶
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 ¶
CompleteOperation signals a database operation has been completed.
func (*Context) Finish ¶
Finish performs the final operations for the context and returns the resulting document.
func (*Context) FinishKmsContexts ¶
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 ¶
NextOperation gets the document for the next database operation to run.
func (*Context) ProvideKmsProviders ¶
ProvideKmsProviders provides the KMS providers when in the NeedKmsCredentials state.
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
GetKmsProviders returns the originally configured KMS providers.
func (*MongoCrypt) RewrapDataKeyContext ¶
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.