Documentation ¶
Index ¶
- func Version() string
- type Context
- func (c *Context) AddOperationResult(result 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(kmsProviders bsoncore.Document) error
- func (c *Context) State() State
- type Error
- type KmsContext
- type MongoCrypt
- func (m *MongoCrypt) Close()
- func (m *MongoCrypt) CreateDataKeyContext(kmsProvider string, opts *options.DataKeyOptions) (*Context, error)
- func (m *MongoCrypt) CreateDecryptionContext(cmd bsoncore.Document) (*Context, error)
- func (m *MongoCrypt) CreateEncryptionContext(db string, cmd bsoncore.Document) (*Context, error)
- func (m *MongoCrypt) CreateExplicitDecryptionContext(doc bsoncore.Document) (*Context, error)
- func (m *MongoCrypt) CreateExplicitEncryptionContext(doc bsoncore.Document, opts *options.ExplicitEncryptionOptions) (*Context, error)
- func (m *MongoCrypt) CryptSharedLibVersion() uint64
- func (m *MongoCrypt) CryptSharedLibVersionString() string
- func (m *MongoCrypt) GetKmsProviders() bsoncore.Document
- func (m *MongoCrypt) RewrapDataKeyContext(filter []byte, opts *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 ¶ added in v1.11.0
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(response []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(opts *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(kmsProvider string, opts *options.DataKeyOptions) (*Context, error)
CreateDataKeyContext creates a Context to use for creating a data key.
func (*MongoCrypt) CreateDecryptionContext ¶
func (m *MongoCrypt) CreateDecryptionContext(cmd 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(doc bsoncore.Document) (*Context, error)
CreateExplicitDecryptionContext creates a Context to use for explicit decryption.
func (*MongoCrypt) CreateExplicitEncryptionContext ¶
func (m *MongoCrypt) CreateExplicitEncryptionContext(doc bsoncore.Document, opts *options.ExplicitEncryptionOptions) (*Context, error)
CreateExplicitEncryptionContext creates a Context to use for explicit encryption.
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() bsoncore.Document
GetKmsProviders returns the originally configured KMS providers.
func (*MongoCrypt) RewrapDataKeyContext ¶ added in v1.10.0
func (m *MongoCrypt) RewrapDataKeyContext(filter []byte, opts *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.