public final class com.mongodb.internal.capi.MongoCryptHelper
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.mongodb.internal.capi.MongoCryptHelper
super_class: java.lang.Object
{
public static com.mongodb.crypt.capi.MongoCryptOptions createMongoCryptOptions(java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>>, java.util.Map<java.lang.String, org.bson.BsonDocument>);
descriptor: (Ljava/util/Map;Ljava/util/Map;)Lcom/mongodb/crypt/capi/MongoCryptOptions;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: invokestatic com.mongodb.crypt.capi.MongoCryptOptions.builder:()Lcom/mongodb/crypt/capi/MongoCryptOptions$Builder;
astore 2
start local 2 1: aload 0
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 19
StackMap locals: java.util.Map java.util.Map com.mongodb.crypt.capi.MongoCryptOptions$Builder top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 3
start local 3 3: aload 3
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
ldc "aws"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
4: aload 2
5: invokestatic com.mongodb.crypt.capi.MongoAwsKmsProviderOptions.builder:()Lcom/mongodb/crypt/capi/MongoAwsKmsProviderOptions$Builder;
6: aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Map
ldc "accessKeyId"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual com.mongodb.crypt.capi.MongoAwsKmsProviderOptions$Builder.accessKeyId:(Ljava/lang/String;)Lcom/mongodb/crypt/capi/MongoAwsKmsProviderOptions$Builder;
7: aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Map
ldc "secretAccessKey"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual com.mongodb.crypt.capi.MongoAwsKmsProviderOptions$Builder.secretAccessKey:(Ljava/lang/String;)Lcom/mongodb/crypt/capi/MongoAwsKmsProviderOptions$Builder;
8: invokevirtual com.mongodb.crypt.capi.MongoAwsKmsProviderOptions$Builder.build:()Lcom/mongodb/crypt/capi/MongoAwsKmsProviderOptions;
9: invokevirtual com.mongodb.crypt.capi.MongoCryptOptions$Builder.awsKmsProviderOptions:(Lcom/mongodb/crypt/capi/MongoAwsKmsProviderOptions;)Lcom/mongodb/crypt/capi/MongoCryptOptions$Builder;
pop
10: goto 19
StackMap locals: java.util.Map java.util.Map com.mongodb.crypt.capi.MongoCryptOptions$Builder java.util.Map$Entry java.util.Iterator
StackMap stack:
11: aload 3
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
ldc "local"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
12: aload 2
13: invokestatic com.mongodb.crypt.capi.MongoLocalKmsProviderOptions.builder:()Lcom/mongodb/crypt/capi/MongoLocalKmsProviderOptions$Builder;
14: aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Map
ldc "key"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast byte[]
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
invokevirtual com.mongodb.crypt.capi.MongoLocalKmsProviderOptions$Builder.localMasterKey:(Ljava/nio/ByteBuffer;)Lcom/mongodb/crypt/capi/MongoLocalKmsProviderOptions$Builder;
15: invokevirtual com.mongodb.crypt.capi.MongoLocalKmsProviderOptions$Builder.build:()Lcom/mongodb/crypt/capi/MongoLocalKmsProviderOptions;
16: invokevirtual com.mongodb.crypt.capi.MongoCryptOptions$Builder.localKmsProviderOptions:(Lcom/mongodb/crypt/capi/MongoLocalKmsProviderOptions;)Lcom/mongodb/crypt/capi/MongoCryptOptions$Builder;
pop
17: goto 19
18: StackMap locals:
StackMap stack:
new com.mongodb.MongoClientException
dup
new java.lang.StringBuilder
dup
ldc "Unrecognized KMS provider key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;)V
athrow
end local 3 19: StackMap locals: java.util.Map java.util.Map com.mongodb.crypt.capi.MongoCryptOptions$Builder top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
20: aload 2
aload 1
invokevirtual com.mongodb.crypt.capi.MongoCryptOptions$Builder.localSchemaMap:(Ljava/util/Map;)Lcom/mongodb/crypt/capi/MongoCryptOptions$Builder;
pop
21: aload 2
invokevirtual com.mongodb.crypt.capi.MongoCryptOptions$Builder.build:()Lcom/mongodb/crypt/capi/MongoCryptOptions;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 kmsProviders Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;
0 22 1 namespaceToLocalSchemaDocumentMap Ljava/util/Map<Ljava/lang/String;Lorg/bson/BsonDocument;>;
1 22 2 mongoCryptOptionsBuilder Lcom/mongodb/crypt/capi/MongoCryptOptions$Builder;
3 19 3 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;Ljava/util/Map<Ljava/lang/String;Lorg/bson/BsonDocument;>;)Lcom/mongodb/crypt/capi/MongoCryptOptions;
MethodParameters:
Name Flags
kmsProviders final
namespaceToLocalSchemaDocumentMap final
public static java.util.List<java.lang.String> createMongocryptdSpawnArgs(java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Ljava/util/Map;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
ldc "mongocryptdSpawnPath"
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 3
2: aload 0
ldc "mongocryptdSpawnPath"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
goto 4
3: StackMap locals: java.util.List
StackMap stack:
ldc "mongocryptd"
4: StackMap locals:
StackMap stack: java.lang.String
astore 2
start local 2 5: aload 1
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: aload 0
ldc "mongocryptdSpawnArgs"
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 8
7: aload 1
aload 0
ldc "mongocryptdSpawnArgs"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
8: StackMap locals: java.lang.String
StackMap stack:
aload 1
ldc "--idleShutdownTimeoutSecs"
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 11
9: aload 1
ldc "--idleShutdownTimeoutSecs"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: aload 1
ldc "60"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 options Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
1 12 1 spawnArgs Ljava/util/List<Ljava/lang/String;>;
5 12 2 path Ljava/lang/String;
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
options final
public static com.mongodb.MongoClientSettings createMongocryptdClientSettings(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/mongodb/MongoClientSettings;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: invokestatic com.mongodb.MongoClientSettings.builder:()Lcom/mongodb/MongoClientSettings$Builder;
1: new com.mongodb.internal.capi.MongoCryptHelper$1
dup
invokespecial com.mongodb.internal.capi.MongoCryptHelper$1.<init>:()V
invokevirtual com.mongodb.MongoClientSettings$Builder.applyToClusterSettings:(Lcom/mongodb/Block;)Lcom/mongodb/MongoClientSettings$Builder;
2: new com.mongodb.internal.capi.MongoCryptHelper$2
dup
invokespecial com.mongodb.internal.capi.MongoCryptHelper$2.<init>:()V
invokevirtual com.mongodb.MongoClientSettings$Builder.applyToSocketSettings:(Lcom/mongodb/Block;)Lcom/mongodb/MongoClientSettings$Builder;
3: new com.mongodb.ConnectionString
dup
aload 0
ifnull 5
4: aload 0
goto 6
StackMap locals: java.lang.String
StackMap stack: com.mongodb.MongoClientSettings$Builder new 3 new 3
5: ldc "mongodb://localhost:27020"
6: StackMap locals: java.lang.String
StackMap stack: com.mongodb.MongoClientSettings$Builder new 3 new 3 java.lang.String
invokespecial com.mongodb.ConnectionString.<init>:(Ljava/lang/String;)V
invokevirtual com.mongodb.MongoClientSettings$Builder.applyConnectionString:(Lcom/mongodb/ConnectionString;)Lcom/mongodb/MongoClientSettings$Builder;
7: invokevirtual com.mongodb.MongoClientSettings$Builder.build:()Lcom/mongodb/MongoClientSettings;
8: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 connectionString Ljava/lang/String;
MethodParameters:
Name Flags
connectionString final
public static java.lang.ProcessBuilder createProcessBuilder(java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Ljava/util/Map;)Ljava/lang/ProcessBuilder;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.ProcessBuilder
dup
aload 0
invokestatic com.mongodb.internal.capi.MongoCryptHelper.createMongocryptdSpawnArgs:(Ljava/util/Map;)Ljava/util/List;
invokespecial java.lang.ProcessBuilder.<init>:(Ljava/util/List;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 options Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Ljava/lang/ProcessBuilder;
MethodParameters:
Name Flags
options final
public static void startProcess(java.lang.ProcessBuilder);
descriptor: (Ljava/lang/ProcessBuilder;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual java.lang.ProcessBuilder.redirectErrorStream:(Z)Ljava/lang/ProcessBuilder;
pop
1: aload 0
2: new java.io.File
dup
ldc "os.name"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
ldc "Windows"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 3
ldc "NUL"
goto 4
StackMap locals: java.lang.ProcessBuilder
StackMap stack: java.lang.ProcessBuilder new 2 new 2
3: ldc "/dev/null"
StackMap locals: java.lang.ProcessBuilder
StackMap stack: java.lang.ProcessBuilder new 2 new 2 java.lang.String
4: invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.lang.ProcessBuilder.redirectOutput:(Ljava/io/File;)Ljava/lang/ProcessBuilder;
pop
5: aload 0
invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
pop
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 1
start local 1 8: new com.mongodb.MongoClientException
dup
ldc "Exception starting mongocryptd process. Is `mongocryptd` on the system path?"
aload 1
invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 processBuilder Ljava/lang/ProcessBuilder;
8 9 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 6 7 Class java.lang.Throwable
MethodParameters:
Name Flags
processBuilder final
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/internal/capi/MongoCryptHelper;
}
SourceFile: "MongoCryptHelper.java"
NestMembers:
com.mongodb.internal.capi.MongoCryptHelper$1 com.mongodb.internal.capi.MongoCryptHelper$2
InnerClasses:
public final Builder = com.mongodb.MongoClientSettings$Builder of com.mongodb.MongoClientSettings
public final Builder = com.mongodb.connection.ClusterSettings$Builder of com.mongodb.connection.ClusterSettings
public final Builder = com.mongodb.connection.SocketSettings$Builder of com.mongodb.connection.SocketSettings
public Builder = com.mongodb.crypt.capi.MongoAwsKmsProviderOptions$Builder of com.mongodb.crypt.capi.MongoAwsKmsProviderOptions
public Builder = com.mongodb.crypt.capi.MongoCryptOptions$Builder of com.mongodb.crypt.capi.MongoCryptOptions
public Builder = com.mongodb.crypt.capi.MongoLocalKmsProviderOptions$Builder of com.mongodb.crypt.capi.MongoLocalKmsProviderOptions
com.mongodb.internal.capi.MongoCryptHelper$1
com.mongodb.internal.capi.MongoCryptHelper$2
public abstract Entry = java.util.Map$Entry of java.util.Map