diff --git a/config/spotbugs/exclude.xml b/config/spotbugs/exclude.xml
index 9ce5b944cb4..488c797a6a0 100644
--- a/config/spotbugs/exclude.xml
+++ b/config/spotbugs/exclude.xml
@@ -262,7 +262,7 @@
This class is not part of the public API and may be removed or changed at any time
diff --git a/driver-reactive-streams/src/main/com/mongodb/reactivestreams/client/internal/crypt/Crypts.java b/driver-reactive-streams/src/main/com/mongodb/reactivestreams/client/internal/crypt/Crypts.java index d59b1e03696..b06af01d476 100644 --- a/driver-reactive-streams/src/main/com/mongodb/reactivestreams/client/internal/crypt/Crypts.java +++ b/driver-reactive-streams/src/main/com/mongodb/reactivestreams/client/internal/crypt/Crypts.java @@ -21,8 +21,8 @@ import com.mongodb.MongoClientException; import com.mongodb.MongoClientSettings; import com.mongodb.MongoNamespace; -import com.mongodb.crypt.capi.MongoCrypt; -import com.mongodb.crypt.capi.MongoCrypts; +import com.mongodb.internal.crypt.capi.MongoCrypt; +import com.mongodb.internal.crypt.capi.MongoCrypts; import com.mongodb.reactivestreams.client.MongoClient; import com.mongodb.reactivestreams.client.MongoClients; diff --git a/driver-reactive-streams/src/main/com/mongodb/reactivestreams/client/internal/crypt/KeyManagementService.java b/driver-reactive-streams/src/main/com/mongodb/reactivestreams/client/internal/crypt/KeyManagementService.java index 465ffc02e80..019445e6cde 100644 --- a/driver-reactive-streams/src/main/com/mongodb/reactivestreams/client/internal/crypt/KeyManagementService.java +++ b/driver-reactive-streams/src/main/com/mongodb/reactivestreams/client/internal/crypt/KeyManagementService.java @@ -24,7 +24,6 @@ import com.mongodb.connection.AsyncCompletionHandler; import com.mongodb.connection.SocketSettings; import com.mongodb.connection.SslSettings; -import com.mongodb.crypt.capi.MongoKeyDecryptor; import com.mongodb.internal.TimeoutContext; import com.mongodb.internal.TimeoutSettings; import com.mongodb.internal.connection.AsynchronousChannelStream; @@ -33,6 +32,7 @@ import com.mongodb.internal.connection.Stream; import com.mongodb.internal.connection.StreamFactory; import com.mongodb.internal.connection.TlsChannelStreamFactoryFactory; +import com.mongodb.internal.crypt.capi.MongoKeyDecryptor; import com.mongodb.internal.diagnostics.logging.Logger; import com.mongodb.internal.diagnostics.logging.Loggers; import com.mongodb.internal.time.Timeout; diff --git a/driver-sync/src/main/com/mongodb/client/internal/CommandMarker.java b/driver-sync/src/main/com/mongodb/client/internal/CommandMarker.java index 9e2d7b3889b..73eed8efd01 100644 --- a/driver-sync/src/main/com/mongodb/client/internal/CommandMarker.java +++ b/driver-sync/src/main/com/mongodb/client/internal/CommandMarker.java @@ -26,7 +26,7 @@ import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoDatabase; -import com.mongodb.crypt.capi.MongoCrypt; +import com.mongodb.internal.crypt.capi.MongoCrypt; import com.mongodb.internal.time.Timeout; import com.mongodb.lang.Nullable; import org.bson.RawBsonDocument; diff --git a/driver-sync/src/main/com/mongodb/client/internal/Crypt.java b/driver-sync/src/main/com/mongodb/client/internal/Crypt.java index 990f196f62c..b910f0ab01c 100644 --- a/driver-sync/src/main/com/mongodb/client/internal/Crypt.java +++ b/driver-sync/src/main/com/mongodb/client/internal/Crypt.java @@ -23,13 +23,13 @@ import com.mongodb.client.model.vault.DataKeyOptions; import com.mongodb.client.model.vault.EncryptOptions; import com.mongodb.client.model.vault.RewrapManyDataKeyOptions; -import com.mongodb.crypt.capi.MongoCrypt; -import com.mongodb.crypt.capi.MongoCryptContext; import com.mongodb.crypt.capi.MongoCryptException; -import com.mongodb.crypt.capi.MongoDataKeyOptions; -import com.mongodb.crypt.capi.MongoKeyDecryptor; -import com.mongodb.crypt.capi.MongoRewrapManyDataKeyOptions; import com.mongodb.internal.capi.MongoCryptHelper; +import com.mongodb.internal.crypt.capi.MongoCrypt; +import com.mongodb.internal.crypt.capi.MongoCryptContext; +import com.mongodb.internal.crypt.capi.MongoDataKeyOptions; +import com.mongodb.internal.crypt.capi.MongoKeyDecryptor; +import com.mongodb.internal.crypt.capi.MongoRewrapManyDataKeyOptions; import com.mongodb.internal.time.Timeout; import com.mongodb.lang.Nullable; import org.bson.BsonBinary; @@ -46,8 +46,8 @@ import static com.mongodb.assertions.Assertions.assertNotNull; import static com.mongodb.assertions.Assertions.notNull; -import static com.mongodb.crypt.capi.MongoCryptContext.State; import static com.mongodb.internal.client.vault.EncryptOptionsHelper.asMongoExplicitEncryptOptions; +import static com.mongodb.internal.crypt.capi.MongoCryptContext.State; import static com.mongodb.internal.thread.InterruptionUtil.translateInterruptedException; /** diff --git a/driver-sync/src/main/com/mongodb/client/internal/Crypts.java b/driver-sync/src/main/com/mongodb/client/internal/Crypts.java index 55274fcc786..30319bbf4f8 100644 --- a/driver-sync/src/main/com/mongodb/client/internal/Crypts.java +++ b/driver-sync/src/main/com/mongodb/client/internal/Crypts.java @@ -22,8 +22,8 @@ import com.mongodb.MongoNamespace; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; -import com.mongodb.crypt.capi.MongoCrypt; -import com.mongodb.crypt.capi.MongoCrypts; +import com.mongodb.internal.crypt.capi.MongoCrypt; +import com.mongodb.internal.crypt.capi.MongoCrypts; import javax.net.ssl.SSLContext; import java.util.Map; diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptException.java b/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptException.java index 63074e20bc9..f2fdaeb7699 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptException.java +++ b/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptException.java @@ -18,18 +18,24 @@ package com.mongodb.crypt.capi; -import com.mongodb.crypt.capi.CAPI.mongocrypt_status_t; - -import static com.mongodb.crypt.capi.CAPI.mongocrypt_status_code; -import static org.bson.assertions.Assertions.isTrue; - /** - * Top level Exception for all Mongo Crypt CAPI exceptions + * Exception thrown for errors originating in the mongodb-crypt module. */ public class MongoCryptException extends RuntimeException { private static final long serialVersionUID = -5524416583514807953L; private final int code; + /** + * Construct an instance + * + * @param message the message + * @param code the code + */ + public MongoCryptException(final String message, final int code) { + super(message); + this.code = code; + } + /** * @param msg the message */ @@ -47,17 +53,6 @@ public MongoCryptException(final String msg, final Throwable cause) { this.code = -1; } - /** - * Construct an instance from a {@code mongocrypt_status_t}. - * - * @param status the status - */ - MongoCryptException(final mongocrypt_status_t status) { - super(CAPI.mongocrypt_status_message(status, null).toString()); - isTrue("status not ok", !CAPI.mongocrypt_status_ok(status)); - code = mongocrypt_status_code(status); - } - /** * @return the error code for the exception. */ diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/BinaryHolder.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/BinaryHolder.java similarity index 87% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/BinaryHolder.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/BinaryHolder.java index 60570bd1180..14c7c7b29b6 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/BinaryHolder.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/BinaryHolder.java @@ -15,11 +15,11 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; -import com.mongodb.crypt.capi.CAPI.mongocrypt_binary_t; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_binary_t; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_binary_destroy; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_binary_destroy; // Wrap JNA memory and a mongocrypt_binary_t that references that memory, in order to ensure that the JNA Memory is not GC'd before the // mongocrypt_binary_t is destroyed diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/CAPI.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/CAPI.java similarity index 99% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/CAPI.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/CAPI.java index d6567bdaf7c..b8e2cacc677 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/CAPI.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/CAPI.java @@ -15,7 +15,7 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; import com.sun.jna.Callback; import com.sun.jna.Memory; diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/CAPIHelper.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/CAPIHelper.java similarity index 94% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/CAPIHelper.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/CAPIHelper.java index c1de63e8c8c..ba612e1d217 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/CAPIHelper.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/CAPIHelper.java @@ -15,9 +15,9 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; -import com.mongodb.crypt.capi.CAPI.mongocrypt_binary_t; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_binary_t; import com.sun.jna.Pointer; import org.bson.BsonBinaryWriter; import org.bson.BsonDocument; @@ -31,7 +31,7 @@ import java.nio.ByteBuffer; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_binary_new_from_data; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_binary_new_from_data; import static java.lang.String.format; final class CAPIHelper { diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/CipherCallback.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/CipherCallback.java similarity index 83% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/CipherCallback.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/CipherCallback.java index b10c0f21c67..2e4888d9857 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/CipherCallback.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/CipherCallback.java @@ -15,12 +15,12 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; -import com.mongodb.crypt.capi.CAPI.cstring; -import com.mongodb.crypt.capi.CAPI.mongocrypt_binary_t; -import com.mongodb.crypt.capi.CAPI.mongocrypt_crypto_fn; -import com.mongodb.crypt.capi.CAPI.mongocrypt_status_t; +import com.mongodb.internal.crypt.capi.CAPI.cstring; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_binary_t; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_crypto_fn; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_t; import com.sun.jna.Pointer; import javax.crypto.Cipher; @@ -30,10 +30,10 @@ import java.security.NoSuchAlgorithmException; import java.util.concurrent.ConcurrentLinkedDeque; -import static com.mongodb.crypt.capi.CAPI.MONGOCRYPT_STATUS_ERROR_CLIENT; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_status_set; -import static com.mongodb.crypt.capi.CAPIHelper.toByteArray; -import static com.mongodb.crypt.capi.CAPIHelper.writeByteArrayToBinary; +import static com.mongodb.internal.crypt.capi.CAPI.MONGOCRYPT_STATUS_ERROR_CLIENT; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_set; +import static com.mongodb.internal.crypt.capi.CAPIHelper.toByteArray; +import static com.mongodb.internal.crypt.capi.CAPIHelper.writeByteArrayToBinary; class CipherCallback implements mongocrypt_crypto_fn { private final String algorithm; diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/DisposableMemory.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/DisposableMemory.java similarity index 95% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/DisposableMemory.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/DisposableMemory.java index fdcfb268fea..924b1cc90b1 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/DisposableMemory.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/DisposableMemory.java @@ -15,7 +15,7 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; import com.sun.jna.Memory; diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/JULLogger.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/JULLogger.java similarity index 98% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/JULLogger.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/JULLogger.java index 9a53e850d15..43c15bbf489 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/JULLogger.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/JULLogger.java @@ -16,7 +16,7 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; import java.util.logging.Level; diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/Logger.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/Logger.java similarity index 98% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/Logger.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/Logger.java index 38e82c235b8..e3ea361af4d 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/Logger.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/Logger.java @@ -16,7 +16,7 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; /** * Not part of the public API diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/Loggers.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/Loggers.java similarity index 96% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/Loggers.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/Loggers.java index c57cd3994e4..a5ce431fbcf 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/Loggers.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/Loggers.java @@ -15,7 +15,7 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; /** * This class is not part of the public API. diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MacCallback.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MacCallback.java similarity index 73% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/MacCallback.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MacCallback.java index 2ea09550bb4..98a0e833faa 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MacCallback.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MacCallback.java @@ -15,21 +15,21 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; -import com.mongodb.crypt.capi.CAPI.cstring; -import com.mongodb.crypt.capi.CAPI.mongocrypt_binary_t; -import com.mongodb.crypt.capi.CAPI.mongocrypt_hmac_fn; -import com.mongodb.crypt.capi.CAPI.mongocrypt_status_t; +import com.mongodb.internal.crypt.capi.CAPI.cstring; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_binary_t; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_hmac_fn; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_t; import com.sun.jna.Pointer; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; -import static com.mongodb.crypt.capi.CAPI.MONGOCRYPT_STATUS_ERROR_CLIENT; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_status_set; -import static com.mongodb.crypt.capi.CAPIHelper.toByteArray; -import static com.mongodb.crypt.capi.CAPIHelper.writeByteArrayToBinary; +import static com.mongodb.internal.crypt.capi.CAPI.MONGOCRYPT_STATUS_ERROR_CLIENT; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_set; +import static com.mongodb.internal.crypt.capi.CAPIHelper.toByteArray; +import static com.mongodb.internal.crypt.capi.CAPIHelper.writeByteArrayToBinary; class MacCallback implements mongocrypt_hmac_fn { private final String algorithm; diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MessageDigestCallback.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MessageDigestCallback.java similarity index 71% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/MessageDigestCallback.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MessageDigestCallback.java index 861290d0a8f..35e6a8f78ed 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MessageDigestCallback.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MessageDigestCallback.java @@ -15,20 +15,20 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; -import com.mongodb.crypt.capi.CAPI.cstring; -import com.mongodb.crypt.capi.CAPI.mongocrypt_binary_t; -import com.mongodb.crypt.capi.CAPI.mongocrypt_hash_fn; -import com.mongodb.crypt.capi.CAPI.mongocrypt_status_t; +import com.mongodb.internal.crypt.capi.CAPI.cstring; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_binary_t; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_hash_fn; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_t; import com.sun.jna.Pointer; import java.security.MessageDigest; -import static com.mongodb.crypt.capi.CAPI.MONGOCRYPT_STATUS_ERROR_CLIENT; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_status_set; -import static com.mongodb.crypt.capi.CAPIHelper.toByteArray; -import static com.mongodb.crypt.capi.CAPIHelper.writeByteArrayToBinary; +import static com.mongodb.internal.crypt.capi.CAPI.MONGOCRYPT_STATUS_ERROR_CLIENT; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_set; +import static com.mongodb.internal.crypt.capi.CAPIHelper.toByteArray; +import static com.mongodb.internal.crypt.capi.CAPIHelper.writeByteArrayToBinary; class MessageDigestCallback implements mongocrypt_hash_fn { diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoAwsKmsProviderOptions.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoAwsKmsProviderOptions.java similarity index 98% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoAwsKmsProviderOptions.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoAwsKmsProviderOptions.java index 4824197510d..d37f0b7f91f 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoAwsKmsProviderOptions.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoAwsKmsProviderOptions.java @@ -15,7 +15,7 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; import static org.bson.assertions.Assertions.notNull; diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCrypt.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoCrypt.java similarity index 98% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCrypt.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoCrypt.java index 74816dbe42c..506b6428d8b 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCrypt.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoCrypt.java @@ -16,7 +16,7 @@ */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; import org.bson.BsonDocument; diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptContext.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoCryptContext.java similarity index 97% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptContext.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoCryptContext.java index 2c3aa250b87..573e1cdf881 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptContext.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoCryptContext.java @@ -15,8 +15,9 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; +import com.mongodb.crypt.capi.MongoCryptException; import org.bson.BsonDocument; import org.bson.RawBsonDocument; diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptContextImpl.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoCryptContextImpl.java similarity index 68% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptContextImpl.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoCryptContextImpl.java index 34aaafe7344..502784fdb72 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptContextImpl.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoCryptContextImpl.java @@ -15,31 +15,34 @@ * */ -package com.mongodb.crypt.capi; +package com.mongodb.internal.crypt.capi; -import com.mongodb.crypt.capi.CAPI.mongocrypt_binary_t; -import com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_t; -import com.mongodb.crypt.capi.CAPI.mongocrypt_kms_ctx_t; +import com.mongodb.crypt.capi.MongoCryptException; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_binary_t; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_t; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_kms_ctx_t; import org.bson.BsonDocument; import org.bson.RawBsonDocument; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_binary_destroy; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_binary_new; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_destroy; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_finalize; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_kms_done; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_mongo_done; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_mongo_feed; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_mongo_op; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_next_kms_ctx; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_provide_kms_providers; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_state; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_status; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_status_destroy; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_status_new; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_status_t; -import static com.mongodb.crypt.capi.CAPIHelper.toBinary; -import static com.mongodb.crypt.capi.CAPIHelper.toDocument; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_binary_destroy; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_binary_new; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_destroy; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_finalize; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_kms_done; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_mongo_done; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_mongo_feed; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_mongo_op; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_next_kms_ctx; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_provide_kms_providers; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_state; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_status; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_code; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_destroy; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_message; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_new; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_t; +import static com.mongodb.internal.crypt.capi.CAPIHelper.toBinary; +import static com.mongodb.internal.crypt.capi.CAPIHelper.toDocument; import static org.bson.assertions.Assertions.isTrue; import static org.bson.assertions.Assertions.notNull; @@ -153,7 +156,8 @@ public void close() { static void throwExceptionFromStatus(final mongocrypt_ctx_t wrapped) { mongocrypt_status_t status = mongocrypt_status_new(); mongocrypt_ctx_status(wrapped, status); - MongoCryptException e = new MongoCryptException(status); + MongoCryptException e = new MongoCryptException(mongocrypt_status_message(status, null).toString(), + mongocrypt_status_code(status)); mongocrypt_status_destroy(status); throw e; } diff --git a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptImpl.java b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoCryptImpl.java similarity index 79% rename from mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptImpl.java rename to mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoCryptImpl.java index 2949e2a11e4..37f2263da69 100644 --- a/mongodb-crypt/src/main/com/mongodb/crypt/capi/MongoCryptImpl.java +++ b/mongodb-crypt/src/main/com/mongodb/internal/crypt/capi/MongoCryptImpl.java @@ -15,13 +15,14 @@ * */ -package com.mongodb.crypt.capi; - -import com.mongodb.crypt.capi.CAPI.cstring; -import com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_t; -import com.mongodb.crypt.capi.CAPI.mongocrypt_log_fn_t; -import com.mongodb.crypt.capi.CAPI.mongocrypt_status_t; -import com.mongodb.crypt.capi.CAPI.mongocrypt_t; +package com.mongodb.internal.crypt.capi; + +import com.mongodb.crypt.capi.MongoCryptException; +import com.mongodb.internal.crypt.capi.CAPI.cstring; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_t; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_log_fn_t; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_t; +import com.mongodb.internal.crypt.capi.CAPI.mongocrypt_t; import com.sun.jna.Pointer; import org.bson.BsonBinary; import org.bson.BsonDocument; @@ -33,49 +34,51 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Supplier; -import static com.mongodb.crypt.capi.CAPI.MONGOCRYPT_LOG_LEVEL_ERROR; -import static com.mongodb.crypt.capi.CAPI.MONGOCRYPT_LOG_LEVEL_FATAL; -import static com.mongodb.crypt.capi.CAPI.MONGOCRYPT_LOG_LEVEL_INFO; -import static com.mongodb.crypt.capi.CAPI.MONGOCRYPT_LOG_LEVEL_TRACE; -import static com.mongodb.crypt.capi.CAPI.MONGOCRYPT_LOG_LEVEL_WARNING; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_crypt_shared_lib_version_string; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_datakey_init; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_decrypt_init; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_encrypt_init; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_explicit_decrypt_init; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_explicit_encrypt_expression_init; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_explicit_encrypt_init; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_new; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_rewrap_many_datakey_init; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_setopt_algorithm; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_setopt_algorithm_range; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_setopt_contention_factor; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_setopt_key_alt_name; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_setopt_key_encryption_key; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_setopt_key_id; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_setopt_key_material; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_ctx_setopt_query_type; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_destroy; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_init; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_is_crypto_available; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_new; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_aes_256_ctr; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_append_crypt_shared_lib_search_path; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_bypass_query_analysis; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_crypto_hooks; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_encrypted_field_config_map; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_kms_provider_aws; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_kms_provider_local; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_kms_providers; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_log_handler; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_schema_map; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_set_crypt_shared_lib_path_override; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_setopt_use_need_kms_credentials_state; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_status; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_status_destroy; -import static com.mongodb.crypt.capi.CAPI.mongocrypt_status_new; -import static com.mongodb.crypt.capi.CAPIHelper.toBinary; +import static com.mongodb.internal.crypt.capi.CAPI.MONGOCRYPT_LOG_LEVEL_ERROR; +import static com.mongodb.internal.crypt.capi.CAPI.MONGOCRYPT_LOG_LEVEL_FATAL; +import static com.mongodb.internal.crypt.capi.CAPI.MONGOCRYPT_LOG_LEVEL_INFO; +import static com.mongodb.internal.crypt.capi.CAPI.MONGOCRYPT_LOG_LEVEL_TRACE; +import static com.mongodb.internal.crypt.capi.CAPI.MONGOCRYPT_LOG_LEVEL_WARNING; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_crypt_shared_lib_version_string; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_datakey_init; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_decrypt_init; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_encrypt_init; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_explicit_decrypt_init; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_explicit_encrypt_expression_init; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_explicit_encrypt_init; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_new; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_rewrap_many_datakey_init; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_setopt_algorithm; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_setopt_algorithm_range; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_setopt_contention_factor; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_setopt_key_alt_name; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_setopt_key_encryption_key; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_setopt_key_id; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_setopt_key_material; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_ctx_setopt_query_type; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_destroy; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_init; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_is_crypto_available; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_new; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_aes_256_ctr; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_append_crypt_shared_lib_search_path; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_bypass_query_analysis; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_crypto_hooks; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_encrypted_field_config_map; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_kms_provider_aws; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_kms_provider_local; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_kms_providers; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_log_handler; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_schema_map; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_set_crypt_shared_lib_path_override; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_setopt_use_need_kms_credentials_state; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_code; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_destroy; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_message; +import static com.mongodb.internal.crypt.capi.CAPI.mongocrypt_status_new; +import static com.mongodb.internal.crypt.capi.CAPIHelper.toBinary; import static org.bson.assertions.Assertions.isTrue; import static org.bson.assertions.Assertions.notNull; @@ -395,7 +398,8 @@ private void configure(final Supplier