/// <inheritdoc /> void IInternalKmsKeyId.SetCredentials(ContextSafeHandle context, Status status) { IntPtr regionPointer = (IntPtr)Marshal.StringToHGlobalAnsi(Region); try { IntPtr customerMasterKeyPointer = (IntPtr)Marshal.StringToHGlobalAnsi(CustomerMasterKey); try { // Let mongocrypt run strlen context.Check( status, Library.mongocrypt_ctx_setopt_masterkey_aws(context, regionPointer, -1, customerMasterKeyPointer, -1)); } finally { Marshal.FreeHGlobal(customerMasterKeyPointer); } } finally { Marshal.FreeHGlobal(regionPointer); } if (Endpoint != null) { IntPtr endPointKeyPointer = (IntPtr)Marshal.StringToHGlobalAnsi(Endpoint); try { // Let mongocrypt run strlen context.Check( status, Library.mongocrypt_ctx_setopt_masterkey_aws_endpoint(context, endPointKeyPointer, -1)); } finally { Marshal.FreeHGlobal(endPointKeyPointer); } } ((IInternalKmsKeyId)this).SetAlternateKeyNames(context, status); }