class com.mongodb.client.internal.Crypt implements java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.mongodb.client.internal.Crypt
super_class: java.lang.Object
{
private final com.mongodb.crypt.capi.MongoCrypt mongoCrypt;
descriptor: Lcom/mongodb/crypt/capi/MongoCrypt;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.client.internal.CollectionInfoRetriever collectionInfoRetriever;
descriptor: Lcom/mongodb/client/internal/CollectionInfoRetriever;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.client.internal.CommandMarker commandMarker;
descriptor: Lcom/mongodb/client/internal/CommandMarker;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.client.internal.KeyRetriever keyRetriever;
descriptor: Lcom/mongodb/client/internal/KeyRetriever;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.client.internal.KeyManagementService keyManagementService;
descriptor: Lcom/mongodb/client/internal/KeyManagementService;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean bypassAutoEncryption;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$com$mongodb$crypt$capi$MongoCryptContext$State;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
void <init>(com.mongodb.crypt.capi.MongoCrypt, com.mongodb.client.internal.KeyRetriever, com.mongodb.client.internal.KeyManagementService);
descriptor: (Lcom/mongodb/crypt/capi/MongoCrypt;Lcom/mongodb/client/internal/KeyRetriever;Lcom/mongodb/client/internal/KeyManagementService;)V
flags: (0x0000)
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aconst_null
aconst_null
aload 2
aload 3
iconst_0
invokespecial com.mongodb.client.internal.Crypt.<init>:(Lcom/mongodb/crypt/capi/MongoCrypt;Lcom/mongodb/client/internal/CollectionInfoRetriever;Lcom/mongodb/client/internal/CommandMarker;Lcom/mongodb/client/internal/KeyRetriever;Lcom/mongodb/client/internal/KeyManagementService;Z)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/client/internal/Crypt;
0 2 1 mongoCrypt Lcom/mongodb/crypt/capi/MongoCrypt;
0 2 2 keyRetriever Lcom/mongodb/client/internal/KeyRetriever;
0 2 3 keyManagementService Lcom/mongodb/client/internal/KeyManagementService;
MethodParameters:
Name Flags
mongoCrypt final
keyRetriever final
keyManagementService final
void <init>(com.mongodb.crypt.capi.MongoCrypt, com.mongodb.client.internal.CollectionInfoRetriever, com.mongodb.client.internal.CommandMarker, com.mongodb.client.internal.KeyRetriever, com.mongodb.client.internal.KeyManagementService, boolean);
descriptor: (Lcom/mongodb/crypt/capi/MongoCrypt;Lcom/mongodb/client/internal/CollectionInfoRetriever;Lcom/mongodb/client/internal/CommandMarker;Lcom/mongodb/client/internal/KeyRetriever;Lcom/mongodb/client/internal/KeyManagementService;Z)V
flags: (0x0000)
Code:
stack=2, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.mongodb.client.internal.Crypt.mongoCrypt:Lcom/mongodb/crypt/capi/MongoCrypt;
2: aload 0
aload 2
putfield com.mongodb.client.internal.Crypt.collectionInfoRetriever:Lcom/mongodb/client/internal/CollectionInfoRetriever;
3: aload 0
aload 3
putfield com.mongodb.client.internal.Crypt.commandMarker:Lcom/mongodb/client/internal/CommandMarker;
4: aload 0
aload 4
putfield com.mongodb.client.internal.Crypt.keyRetriever:Lcom/mongodb/client/internal/KeyRetriever;
5: aload 0
aload 5
putfield com.mongodb.client.internal.Crypt.keyManagementService:Lcom/mongodb/client/internal/KeyManagementService;
6: aload 0
iload 6
putfield com.mongodb.client.internal.Crypt.bypassAutoEncryption:Z
7: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/mongodb/client/internal/Crypt;
0 8 1 mongoCrypt Lcom/mongodb/crypt/capi/MongoCrypt;
0 8 2 collectionInfoRetriever Lcom/mongodb/client/internal/CollectionInfoRetriever;
0 8 3 commandMarker Lcom/mongodb/client/internal/CommandMarker;
0 8 4 keyRetriever Lcom/mongodb/client/internal/KeyRetriever;
0 8 5 keyManagementService Lcom/mongodb/client/internal/KeyManagementService;
0 8 6 bypassAutoEncryption Z
RuntimeVisibleParameterAnnotations:
0:
1:
com.mongodb.lang.Nullable()
2:
com.mongodb.lang.Nullable()
3:
4:
5:
MethodParameters:
Name Flags
mongoCrypt final
collectionInfoRetriever final
commandMarker final
keyRetriever final
keyManagementService final
bypassAutoEncryption final
public org.bson.RawBsonDocument encrypt(java.lang.String, org.bson.RawBsonDocument);
descriptor: (Ljava/lang/String;Lorg/bson/RawBsonDocument;)Lorg/bson/RawBsonDocument;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: ldc "databaseName"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: ldc "command"
aload 2
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
getfield com.mongodb.client.internal.Crypt.bypassAutoEncryption:Z
ifeq 4
3: aload 2
areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.client.internal.Crypt.mongoCrypt:Lcom/mongodb/crypt/capi/MongoCrypt;
aload 1
aload 2
invokeinterface com.mongodb.crypt.capi.MongoCrypt.createEncryptionContext:(Ljava/lang/String;Lorg/bson/BsonDocument;)Lcom/mongodb/crypt/capi/MongoCryptContext;
astore 3
start local 3 5: aload 0
aload 3
aload 1
invokevirtual com.mongodb.client.internal.Crypt.executeStateMachine:(Lcom/mongodb/crypt/capi/MongoCryptContext;Ljava/lang/String;)Lorg/bson/RawBsonDocument;
astore 5
6: aload 3
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.close:()V
7: aload 5
areturn
8: StackMap locals: com.mongodb.client.internal.Crypt java.lang.String org.bson.RawBsonDocument com.mongodb.crypt.capi.MongoCryptContext
StackMap stack: java.lang.Throwable
astore 4
9: aload 3
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.close:()V
10: aload 4
athrow
end local 3 11: StackMap locals: com.mongodb.client.internal.Crypt java.lang.String org.bson.RawBsonDocument
StackMap stack: com.mongodb.crypt.capi.MongoCryptException
astore 3
start local 3 12: aload 0
aload 3
invokevirtual com.mongodb.client.internal.Crypt.wrapInClientException:(Ljava/lang/Throwable;)Lcom/mongodb/MongoClientException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/mongodb/client/internal/Crypt;
0 13 1 databaseName Ljava/lang/String;
0 13 2 command Lorg/bson/RawBsonDocument;
5 11 3 encryptionContext Lcom/mongodb/crypt/capi/MongoCryptContext;
12 13 3 e Lcom/mongodb/crypt/capi/MongoCryptException;
Exception table:
from to target type
5 6 8 any
4 7 11 Class com.mongodb.crypt.capi.MongoCryptException
8 11 11 Class com.mongodb.crypt.capi.MongoCryptException
MethodParameters:
Name Flags
databaseName final
command final
org.bson.RawBsonDocument decrypt(org.bson.RawBsonDocument);
descriptor: (Lorg/bson/RawBsonDocument;)Lorg/bson/RawBsonDocument;
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: ldc "commandResponse"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield com.mongodb.client.internal.Crypt.mongoCrypt:Lcom/mongodb/crypt/capi/MongoCrypt;
aload 1
invokeinterface com.mongodb.crypt.capi.MongoCrypt.createDecryptionContext:(Lorg/bson/BsonDocument;)Lcom/mongodb/crypt/capi/MongoCryptContext;
astore 2
start local 2 2: aload 0
aload 2
aconst_null
invokevirtual com.mongodb.client.internal.Crypt.executeStateMachine:(Lcom/mongodb/crypt/capi/MongoCryptContext;Ljava/lang/String;)Lorg/bson/RawBsonDocument;
astore 4
3: aload 2
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.close:()V
4: aload 4
areturn
5: StackMap locals: com.mongodb.client.internal.Crypt org.bson.RawBsonDocument com.mongodb.crypt.capi.MongoCryptContext
StackMap stack: java.lang.Throwable
astore 3
6: aload 2
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.close:()V
7: aload 3
athrow
end local 2 8: StackMap locals: com.mongodb.client.internal.Crypt org.bson.RawBsonDocument
StackMap stack: com.mongodb.crypt.capi.MongoCryptException
astore 2
start local 2 9: aload 0
aload 2
invokevirtual com.mongodb.client.internal.Crypt.wrapInClientException:(Ljava/lang/Throwable;)Lcom/mongodb/MongoClientException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/mongodb/client/internal/Crypt;
0 10 1 commandResponse Lorg/bson/RawBsonDocument;
2 8 2 decryptionContext Lcom/mongodb/crypt/capi/MongoCryptContext;
9 10 2 e Lcom/mongodb/crypt/capi/MongoCryptException;
Exception table:
from to target type
2 3 5 any
1 4 8 Class com.mongodb.crypt.capi.MongoCryptException
5 8 8 Class com.mongodb.crypt.capi.MongoCryptException
MethodParameters:
Name Flags
commandResponse final
org.bson.BsonDocument createDataKey(java.lang.String, com.mongodb.client.model.vault.DataKeyOptions);
descriptor: (Ljava/lang/String;Lcom/mongodb/client/model/vault/DataKeyOptions;)Lorg/bson/BsonDocument;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: ldc "kmsProvider"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: ldc "options"
aload 2
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
getfield com.mongodb.client.internal.Crypt.mongoCrypt:Lcom/mongodb/crypt/capi/MongoCrypt;
aload 1
3: invokestatic com.mongodb.crypt.capi.MongoDataKeyOptions.builder:()Lcom/mongodb/crypt/capi/MongoDataKeyOptions$Builder;
4: aload 2
invokevirtual com.mongodb.client.model.vault.DataKeyOptions.getKeyAltNames:()Ljava/util/List;
invokevirtual com.mongodb.crypt.capi.MongoDataKeyOptions$Builder.keyAltNames:(Ljava/util/List;)Lcom/mongodb/crypt/capi/MongoDataKeyOptions$Builder;
5: aload 2
invokevirtual com.mongodb.client.model.vault.DataKeyOptions.getMasterKey:()Lorg/bson/BsonDocument;
invokevirtual com.mongodb.crypt.capi.MongoDataKeyOptions$Builder.masterKey:(Lorg/bson/BsonDocument;)Lcom/mongodb/crypt/capi/MongoDataKeyOptions$Builder;
6: invokevirtual com.mongodb.crypt.capi.MongoDataKeyOptions$Builder.build:()Lcom/mongodb/crypt/capi/MongoDataKeyOptions;
7: invokeinterface com.mongodb.crypt.capi.MongoCrypt.createDataKeyContext:(Ljava/lang/String;Lcom/mongodb/crypt/capi/MongoDataKeyOptions;)Lcom/mongodb/crypt/capi/MongoCryptContext;
astore 3
start local 3 8: aload 0
aload 3
aconst_null
invokevirtual com.mongodb.client.internal.Crypt.executeStateMachine:(Lcom/mongodb/crypt/capi/MongoCryptContext;Ljava/lang/String;)Lorg/bson/RawBsonDocument;
astore 5
9: aload 3
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.close:()V
10: aload 5
areturn
11: StackMap locals: com.mongodb.client.internal.Crypt java.lang.String com.mongodb.client.model.vault.DataKeyOptions com.mongodb.crypt.capi.MongoCryptContext
StackMap stack: java.lang.Throwable
astore 4
12: aload 3
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.close:()V
13: aload 4
athrow
end local 3 14: StackMap locals: com.mongodb.client.internal.Crypt java.lang.String com.mongodb.client.model.vault.DataKeyOptions
StackMap stack: com.mongodb.crypt.capi.MongoCryptException
astore 3
start local 3 15: aload 0
aload 3
invokevirtual com.mongodb.client.internal.Crypt.wrapInClientException:(Ljava/lang/Throwable;)Lcom/mongodb/MongoClientException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/mongodb/client/internal/Crypt;
0 16 1 kmsProvider Ljava/lang/String;
0 16 2 options Lcom/mongodb/client/model/vault/DataKeyOptions;
8 14 3 dataKeyCreationContext Lcom/mongodb/crypt/capi/MongoCryptContext;
15 16 3 e Lcom/mongodb/crypt/capi/MongoCryptException;
Exception table:
from to target type
8 9 11 any
2 10 14 Class com.mongodb.crypt.capi.MongoCryptException
11 14 14 Class com.mongodb.crypt.capi.MongoCryptException
MethodParameters:
Name Flags
kmsProvider final
options final
org.bson.BsonBinary encryptExplicitly(org.bson.BsonValue, com.mongodb.client.model.vault.EncryptOptions);
descriptor: (Lorg/bson/BsonValue;Lcom/mongodb/client/model/vault/EncryptOptions;)Lorg/bson/BsonBinary;
flags: (0x0000)
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: ldc "value"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: ldc "options"
aload 2
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: invokestatic com.mongodb.crypt.capi.MongoExplicitEncryptOptions.builder:()Lcom/mongodb/crypt/capi/MongoExplicitEncryptOptions$Builder;
3: aload 2
invokevirtual com.mongodb.client.model.vault.EncryptOptions.getAlgorithm:()Ljava/lang/String;
invokevirtual com.mongodb.crypt.capi.MongoExplicitEncryptOptions$Builder.algorithm:(Ljava/lang/String;)Lcom/mongodb/crypt/capi/MongoExplicitEncryptOptions$Builder;
4: astore 3
start local 3 5: aload 2
invokevirtual com.mongodb.client.model.vault.EncryptOptions.getKeyId:()Lorg/bson/BsonBinary;
ifnull 7
6: aload 3
aload 2
invokevirtual com.mongodb.client.model.vault.EncryptOptions.getKeyId:()Lorg/bson/BsonBinary;
invokevirtual com.mongodb.crypt.capi.MongoExplicitEncryptOptions$Builder.keyId:(Lorg/bson/BsonBinary;)Lcom/mongodb/crypt/capi/MongoExplicitEncryptOptions$Builder;
pop
7: StackMap locals: com.mongodb.crypt.capi.MongoExplicitEncryptOptions$Builder
StackMap stack:
aload 2
invokevirtual com.mongodb.client.model.vault.EncryptOptions.getKeyAltName:()Ljava/lang/String;
ifnull 9
8: aload 3
aload 2
invokevirtual com.mongodb.client.model.vault.EncryptOptions.getKeyAltName:()Ljava/lang/String;
invokevirtual com.mongodb.crypt.capi.MongoExplicitEncryptOptions$Builder.keyAltName:(Ljava/lang/String;)Lcom/mongodb/crypt/capi/MongoExplicitEncryptOptions$Builder;
pop
9: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.client.internal.Crypt.mongoCrypt:Lcom/mongodb/crypt/capi/MongoCrypt;
10: new org.bson.BsonDocument
dup
ldc "v"
aload 1
invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
aload 3
invokevirtual com.mongodb.crypt.capi.MongoExplicitEncryptOptions$Builder.build:()Lcom/mongodb/crypt/capi/MongoExplicitEncryptOptions;
11: invokeinterface com.mongodb.crypt.capi.MongoCrypt.createExplicitEncryptionContext:(Lorg/bson/BsonDocument;Lcom/mongodb/crypt/capi/MongoExplicitEncryptOptions;)Lcom/mongodb/crypt/capi/MongoCryptContext;
astore 4
start local 4 12: aload 0
aload 4
aconst_null
invokevirtual com.mongodb.client.internal.Crypt.executeStateMachine:(Lcom/mongodb/crypt/capi/MongoCryptContext;Ljava/lang/String;)Lorg/bson/RawBsonDocument;
ldc "v"
invokevirtual org.bson.RawBsonDocument.getBinary:(Ljava/lang/Object;)Lorg/bson/BsonBinary;
astore 6
13: aload 4
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.close:()V
14: aload 6
areturn
15: StackMap locals: com.mongodb.client.internal.Crypt org.bson.BsonValue com.mongodb.client.model.vault.EncryptOptions com.mongodb.crypt.capi.MongoExplicitEncryptOptions$Builder com.mongodb.crypt.capi.MongoCryptContext
StackMap stack: java.lang.Throwable
astore 5
16: aload 4
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.close:()V
17: aload 5
athrow
end local 4 end local 3 18: StackMap locals: com.mongodb.client.internal.Crypt org.bson.BsonValue com.mongodb.client.model.vault.EncryptOptions
StackMap stack: com.mongodb.crypt.capi.MongoCryptException
astore 3
start local 3 19: aload 0
aload 3
invokevirtual com.mongodb.client.internal.Crypt.wrapInClientException:(Ljava/lang/Throwable;)Lcom/mongodb/MongoClientException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/mongodb/client/internal/Crypt;
0 20 1 value Lorg/bson/BsonValue;
0 20 2 options Lcom/mongodb/client/model/vault/EncryptOptions;
5 18 3 encryptOptionsBuilder Lcom/mongodb/crypt/capi/MongoExplicitEncryptOptions$Builder;
12 18 4 encryptionContext Lcom/mongodb/crypt/capi/MongoCryptContext;
19 20 3 e Lcom/mongodb/crypt/capi/MongoCryptException;
Exception table:
from to target type
12 13 15 any
2 14 18 Class com.mongodb.crypt.capi.MongoCryptException
15 18 18 Class com.mongodb.crypt.capi.MongoCryptException
MethodParameters:
Name Flags
value final
options final
org.bson.BsonValue decryptExplicitly(org.bson.BsonBinary);
descriptor: (Lorg/bson/BsonBinary;)Lorg/bson/BsonValue;
flags: (0x0000)
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: ldc "value"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield com.mongodb.client.internal.Crypt.mongoCrypt:Lcom/mongodb/crypt/capi/MongoCrypt;
new org.bson.BsonDocument
dup
ldc "v"
aload 1
invokespecial org.bson.BsonDocument.<init>:(Ljava/lang/String;Lorg/bson/BsonValue;)V
invokeinterface com.mongodb.crypt.capi.MongoCrypt.createExplicitDecryptionContext:(Lorg/bson/BsonDocument;)Lcom/mongodb/crypt/capi/MongoCryptContext;
astore 2
start local 2 2: aload 0
aload 2
aconst_null
invokevirtual com.mongodb.client.internal.Crypt.executeStateMachine:(Lcom/mongodb/crypt/capi/MongoCryptContext;Ljava/lang/String;)Lorg/bson/RawBsonDocument;
ldc "v"
invokevirtual org.bson.RawBsonDocument.get:(Ljava/lang/Object;)Lorg/bson/BsonValue;
astore 4
3: aload 2
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.close:()V
4: aload 4
areturn
5: StackMap locals: com.mongodb.client.internal.Crypt org.bson.BsonBinary com.mongodb.crypt.capi.MongoCryptContext
StackMap stack: java.lang.Throwable
astore 3
6: aload 2
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.close:()V
7: aload 3
athrow
end local 2 8: StackMap locals: com.mongodb.client.internal.Crypt org.bson.BsonBinary
StackMap stack: com.mongodb.crypt.capi.MongoCryptException
astore 2
start local 2 9: aload 0
aload 2
invokevirtual com.mongodb.client.internal.Crypt.wrapInClientException:(Ljava/lang/Throwable;)Lcom/mongodb/MongoClientException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/mongodb/client/internal/Crypt;
0 10 1 value Lorg/bson/BsonBinary;
2 8 2 decryptionContext Lcom/mongodb/crypt/capi/MongoCryptContext;
9 10 2 e Lcom/mongodb/crypt/capi/MongoCryptException;
Exception table:
from to target type
2 3 5 any
1 4 8 Class com.mongodb.crypt.capi.MongoCryptException
5 8 8 Class com.mongodb.crypt.capi.MongoCryptException
MethodParameters:
Name Flags
value final
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.client.internal.Crypt.mongoCrypt:Lcom/mongodb/crypt/capi/MongoCrypt;
invokeinterface com.mongodb.crypt.capi.MongoCrypt.close:()V
1: aload 0
getfield com.mongodb.client.internal.Crypt.commandMarker:Lcom/mongodb/client/internal/CommandMarker;
ifnull 3
2: aload 0
getfield com.mongodb.client.internal.Crypt.commandMarker:Lcom/mongodb/client/internal/CommandMarker;
invokevirtual com.mongodb.client.internal.CommandMarker.close:()V
3: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.client.internal.Crypt.keyRetriever:Lcom/mongodb/client/internal/KeyRetriever;
invokevirtual com.mongodb.client.internal.KeyRetriever.close:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/client/internal/Crypt;
private org.bson.RawBsonDocument executeStateMachine(com.mongodb.crypt.capi.MongoCryptContext, java.lang.String);
descriptor: (Lcom/mongodb/crypt/capi/MongoCryptContext;Ljava/lang/String;)Lorg/bson/RawBsonDocument;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: StackMap locals:
StackMap stack:
aload 1
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.getState:()Lcom/mongodb/crypt/capi/MongoCryptContext$State;
astore 3
start local 3 1: invokestatic com.mongodb.client.internal.Crypt.$SWITCH_TABLE$com$mongodb$crypt$capi$MongoCryptContext$State:()[I
aload 3
invokevirtual com.mongodb.crypt.capi.MongoCryptContext$State.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 2
2: 4
3: 6
4: 8
5: 10
default: 11
}
2: StackMap locals: com.mongodb.crypt.capi.MongoCryptContext$State
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual com.mongodb.client.internal.Crypt.collInfo:(Lcom/mongodb/crypt/capi/MongoCryptContext;Ljava/lang/String;)V
3: goto 0
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual com.mongodb.client.internal.Crypt.mark:(Lcom/mongodb/crypt/capi/MongoCryptContext;Ljava/lang/String;)V
5: goto 0
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.mongodb.client.internal.Crypt.fetchKeys:(Lcom/mongodb/crypt/capi/MongoCryptContext;)V
7: goto 0
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.mongodb.client.internal.Crypt.decryptKeys:(Lcom/mongodb/crypt/capi/MongoCryptContext;)V
9: goto 0
10: StackMap locals:
StackMap stack:
aload 1
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.finish:()Lorg/bson/RawBsonDocument;
areturn
11: StackMap locals:
StackMap stack:
new com.mongodb.MongoInternalException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported encryptor state + "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.mongodb.MongoInternalException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/mongodb/client/internal/Crypt;
0 12 1 cryptContext Lcom/mongodb/crypt/capi/MongoCryptContext;
0 12 2 databaseName Ljava/lang/String;
1 12 3 state Lcom/mongodb/crypt/capi/MongoCryptContext$State;
MethodParameters:
Name Flags
cryptContext final
databaseName final
private void collInfo(com.mongodb.crypt.capi.MongoCryptContext, java.lang.String);
descriptor: (Lcom/mongodb/crypt/capi/MongoCryptContext;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.mongodb.client.internal.Crypt.collectionInfoRetriever:Lcom/mongodb/client/internal/CollectionInfoRetriever;
aload 2
aload 1
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.getMongoOperation:()Lorg/bson/RawBsonDocument;
invokevirtual com.mongodb.client.internal.CollectionInfoRetriever.filter:(Ljava/lang/String;Lorg/bson/BsonDocument;)Lorg/bson/BsonDocument;
astore 3
start local 3 1: aload 3
ifnull 3
2: aload 1
aload 3
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.addMongoOperationResult:(Lorg/bson/BsonDocument;)V
3: StackMap locals: org.bson.BsonDocument
StackMap stack:
aload 1
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.completeMongoOperation:()V
end local 3 4: goto 7
StackMap locals: com.mongodb.client.internal.Crypt com.mongodb.crypt.capi.MongoCryptContext java.lang.String
StackMap stack: java.lang.Throwable
5: astore 3
start local 3 6: aload 3
invokestatic com.mongodb.MongoException.fromThrowableNonNull:(Ljava/lang/Throwable;)Lcom/mongodb/MongoException;
athrow
end local 3 7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/mongodb/client/internal/Crypt;
0 8 1 cryptContext Lcom/mongodb/crypt/capi/MongoCryptContext;
0 8 2 databaseName Ljava/lang/String;
1 4 3 collectionInfo Lorg/bson/BsonDocument;
6 7 3 t Ljava/lang/Throwable;
Exception table:
from to target type
0 4 5 Class java.lang.Throwable
MethodParameters:
Name Flags
cryptContext final
databaseName final
private void mark(com.mongodb.crypt.capi.MongoCryptContext, java.lang.String);
descriptor: (Lcom/mongodb/crypt/capi/MongoCryptContext;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.mongodb.client.internal.Crypt.commandMarker:Lcom/mongodb/client/internal/CommandMarker;
aload 2
aload 1
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.getMongoOperation:()Lorg/bson/RawBsonDocument;
invokevirtual com.mongodb.client.internal.CommandMarker.mark:(Ljava/lang/String;Lorg/bson/RawBsonDocument;)Lorg/bson/RawBsonDocument;
astore 3
start local 3 1: aload 1
aload 3
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.addMongoOperationResult:(Lorg/bson/BsonDocument;)V
2: aload 1
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.completeMongoOperation:()V
end local 3 3: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 3
start local 3 5: aload 0
aload 3
invokevirtual com.mongodb.client.internal.Crypt.wrapInClientException:(Ljava/lang/Throwable;)Lcom/mongodb/MongoClientException;
athrow
end local 3 6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/mongodb/client/internal/Crypt;
0 7 1 cryptContext Lcom/mongodb/crypt/capi/MongoCryptContext;
0 7 2 databaseName Ljava/lang/String;
1 3 3 markedCommand Lorg/bson/RawBsonDocument;
5 6 3 t Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.lang.Throwable
MethodParameters:
Name Flags
cryptContext final
databaseName final
private void fetchKeys(com.mongodb.crypt.capi.MongoCryptContext);
descriptor: (Lcom/mongodb/crypt/capi/MongoCryptContext;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.client.internal.Crypt.keyRetriever:Lcom/mongodb/client/internal/KeyRetriever;
aload 1
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.getMongoOperation:()Lorg/bson/RawBsonDocument;
invokevirtual com.mongodb.client.internal.KeyRetriever.find:(Lorg/bson/BsonDocument;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: com.mongodb.client.internal.Crypt com.mongodb.crypt.capi.MongoCryptContext top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bson.BsonDocument
astore 2
start local 2 2: aload 1
aload 2
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.addMongoOperationResult:(Lorg/bson/BsonDocument;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 1
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.completeMongoOperation:()V
5: goto 8
StackMap locals: com.mongodb.client.internal.Crypt com.mongodb.crypt.capi.MongoCryptContext
StackMap stack: java.lang.Throwable
6: astore 2
start local 2 7: aload 2
invokestatic com.mongodb.MongoException.fromThrowableNonNull:(Ljava/lang/Throwable;)Lcom/mongodb/MongoException;
athrow
end local 2 8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/mongodb/client/internal/Crypt;
0 9 1 keyBroker Lcom/mongodb/crypt/capi/MongoCryptContext;
2 3 2 bsonDocument Lorg/bson/BsonDocument;
7 8 2 t Ljava/lang/Throwable;
Exception table:
from to target type
0 5 6 Class java.lang.Throwable
MethodParameters:
Name Flags
keyBroker final
private void decryptKeys(com.mongodb.crypt.capi.MongoCryptContext);
descriptor: (Lcom/mongodb/crypt/capi/MongoCryptContext;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.nextKeyDecryptor:()Lcom/mongodb/crypt/capi/MongoKeyDecryptor;
astore 2
start local 2 1: goto 4
2: StackMap locals: com.mongodb.crypt.capi.MongoKeyDecryptor
StackMap stack:
aload 0
aload 2
invokevirtual com.mongodb.client.internal.Crypt.decryptKey:(Lcom/mongodb/crypt/capi/MongoKeyDecryptor;)V
3: aload 1
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.nextKeyDecryptor:()Lcom/mongodb/crypt/capi/MongoKeyDecryptor;
astore 2
4: StackMap locals:
StackMap stack:
aload 2
ifnonnull 2
5: aload 1
invokeinterface com.mongodb.crypt.capi.MongoCryptContext.completeKeyDecryptors:()V
end local 2 6: goto 9
StackMap locals: com.mongodb.client.internal.Crypt com.mongodb.crypt.capi.MongoCryptContext
StackMap stack: java.lang.Throwable
7: astore 2
start local 2 8: aload 0
aload 2
invokevirtual com.mongodb.client.internal.Crypt.wrapInClientException:(Ljava/lang/Throwable;)Lcom/mongodb/MongoClientException;
athrow
end local 2 9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/mongodb/client/internal/Crypt;
0 10 1 cryptContext Lcom/mongodb/crypt/capi/MongoCryptContext;
1 6 2 keyDecryptor Lcom/mongodb/crypt/capi/MongoKeyDecryptor;
8 9 2 t Ljava/lang/Throwable;
Exception table:
from to target type
0 6 7 Class java.lang.Throwable
MethodParameters:
Name Flags
cryptContext final
private void decryptKey(com.mongodb.crypt.capi.MongoKeyDecryptor);
descriptor: (Lcom/mongodb/crypt/capi/MongoKeyDecryptor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.client.internal.Crypt.keyManagementService:Lcom/mongodb/client/internal/KeyManagementService;
aload 1
invokeinterface com.mongodb.crypt.capi.MongoKeyDecryptor.getHostName:()Ljava/lang/String;
aload 1
invokeinterface com.mongodb.crypt.capi.MongoKeyDecryptor.getMessage:()Ljava/nio/ByteBuffer;
invokevirtual com.mongodb.client.internal.KeyManagementService.stream:(Ljava/lang/String;Ljava/nio/ByteBuffer;)Ljava/io/InputStream;
astore 2
start local 2 1: aload 1
invokeinterface com.mongodb.crypt.capi.MongoKeyDecryptor.bytesNeeded:()I
istore 3
start local 3 2: goto 7
3: StackMap locals: java.io.InputStream int
StackMap stack:
iload 3
newarray 8
astore 4
start local 4 4: aload 2
aload 4
iconst_0
aload 4
arraylength
invokevirtual java.io.InputStream.read:([BII)I
istore 5
start local 5 5: aload 1
aload 4
iconst_0
iload 5
invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
invokeinterface com.mongodb.crypt.capi.MongoKeyDecryptor.feed:(Ljava/nio/ByteBuffer;)V
6: aload 1
invokeinterface com.mongodb.crypt.capi.MongoKeyDecryptor.bytesNeeded:()I
istore 3
end local 5 end local 4 7: StackMap locals:
StackMap stack:
iload 3
ifgt 3
end local 3 8: goto 14
StackMap locals: com.mongodb.client.internal.Crypt com.mongodb.crypt.capi.MongoKeyDecryptor java.io.InputStream
StackMap stack: java.lang.Throwable
9: astore 6
10: aload 2
invokevirtual java.io.InputStream.close:()V
11: goto 13
StackMap locals: com.mongodb.client.internal.Crypt com.mongodb.crypt.capi.MongoKeyDecryptor java.io.InputStream top top top java.lang.Throwable
StackMap stack: java.io.IOException
12: pop
13: StackMap locals:
StackMap stack:
aload 6
athrow
14: StackMap locals: com.mongodb.client.internal.Crypt com.mongodb.crypt.capi.MongoKeyDecryptor java.io.InputStream
StackMap stack:
aload 2
invokevirtual java.io.InputStream.close:()V
15: goto 17
StackMap locals:
StackMap stack: java.io.IOException
16: pop
17: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/mongodb/client/internal/Crypt;
0 18 1 keyDecryptor Lcom/mongodb/crypt/capi/MongoKeyDecryptor;
1 18 2 inputStream Ljava/io/InputStream;
2 8 3 bytesNeeded I
4 7 4 bytes [B
5 7 5 bytesRead I
Exception table:
from to target type
1 9 9 any
10 11 12 Class java.io.IOException
14 15 16 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
keyDecryptor final
private com.mongodb.MongoClientException wrapInClientException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Lcom/mongodb/MongoClientException;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new com.mongodb.MongoClientException
dup
new java.lang.StringBuilder
dup
ldc "Exception in encryption library: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/client/internal/Crypt;
0 1 1 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t final
static int[] $SWITCH_TABLE$com$mongodb$crypt$capi$MongoCryptContext$State();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.mongodb.client.internal.Crypt.$SWITCH_TABLE$com$mongodb$crypt$capi$MongoCryptContext$State:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.mongodb.crypt.capi.MongoCryptContext$State.values:()[Lcom/mongodb/crypt/capi/MongoCryptContext$State;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.mongodb.crypt.capi.MongoCryptContext$State.DONE:Lcom/mongodb/crypt/capi/MongoCryptContext$State;
invokevirtual com.mongodb.crypt.capi.MongoCryptContext$State.ordinal:()I
bipush 6
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.mongodb.crypt.capi.MongoCryptContext$State.NEED_KMS:Lcom/mongodb/crypt/capi/MongoCryptContext$State;
invokevirtual com.mongodb.crypt.capi.MongoCryptContext$State.ordinal:()I
iconst_4
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.mongodb.crypt.capi.MongoCryptContext$State.NEED_MONGO_COLLINFO:Lcom/mongodb/crypt/capi/MongoCryptContext$State;
invokevirtual com.mongodb.crypt.capi.MongoCryptContext$State.ordinal:()I
iconst_1
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic com.mongodb.crypt.capi.MongoCryptContext$State.NEED_MONGO_KEYS:Lcom/mongodb/crypt/capi/MongoCryptContext$State;
invokevirtual com.mongodb.crypt.capi.MongoCryptContext$State.ordinal:()I
iconst_3
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic com.mongodb.crypt.capi.MongoCryptContext$State.NEED_MONGO_MARKINGS:Lcom/mongodb/crypt/capi/MongoCryptContext$State;
invokevirtual com.mongodb.crypt.capi.MongoCryptContext$State.ordinal:()I
iconst_2
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic com.mongodb.crypt.capi.MongoCryptContext$State.READY:Lcom/mongodb/crypt/capi/MongoCryptContext$State;
invokevirtual com.mongodb.crypt.capi.MongoCryptContext$State.ordinal:()I
iconst_5
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
dup
putstatic com.mongodb.client.internal.Crypt.$SWITCH_TABLE$com$mongodb$crypt$capi$MongoCryptContext$State:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
}
SourceFile: "Crypt.java"
InnerClasses:
public final State = com.mongodb.crypt.capi.MongoCryptContext$State of com.mongodb.crypt.capi.MongoCryptContext
public Builder = com.mongodb.crypt.capi.MongoDataKeyOptions$Builder of com.mongodb.crypt.capi.MongoDataKeyOptions
public Builder = com.mongodb.crypt.capi.MongoExplicitEncryptOptions$Builder of com.mongodb.crypt.capi.MongoExplicitEncryptOptions