class com.microsoft.sqlserver.jdbc.AASAttestationResponse extends com.microsoft.sqlserver.jdbc.BaseAttestationResponse
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.microsoft.sqlserver.jdbc.AASAttestationResponse
super_class: com.microsoft.sqlserver.jdbc.BaseAttestationResponse
{
private byte[] attestationToken;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private static java.util.Hashtable<java.lang.String, com.microsoft.sqlserver.jdbc.JWTCertificateEntry> certificateCache;
descriptor: Ljava/util/Hashtable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Hashtable<Ljava/lang/String;Lcom/microsoft/sqlserver/jdbc/JWTCertificateEntry;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putstatic com.microsoft.sqlserver.jdbc.AASAttestationResponse.certificateCache:Ljava/util/Hashtable;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(byte[]);
descriptor: ([B)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.microsoft.sqlserver.jdbc.BaseAttestationResponse.<init>:()V
1: aload 1
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
astore 2
start local 2 2: aload 0
aload 2
invokevirtual java.nio.ByteBuffer.getInt:()I
putfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.totalSize:I
3: aload 0
aload 2
invokevirtual java.nio.ByteBuffer.getInt:()I
putfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.identitySize:I
4: aload 0
aload 2
invokevirtual java.nio.ByteBuffer.getInt:()I
putfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.attestationTokenSize:I
5: aload 0
aload 2
invokevirtual java.nio.ByteBuffer.getInt:()I
putfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.enclaveType:I
6: aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.identitySize:I
newarray 8
putfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.enclavePK:[B
7: aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.attestationTokenSize:I
newarray 8
putfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.attestationToken:[B
8: aload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.enclavePK:[B
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.identitySize:I
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
9: aload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.attestationToken:[B
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.attestationTokenSize:I
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
10: aload 0
aload 2
invokevirtual java.nio.ByteBuffer.getInt:()I
putfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.sessionInfoSize:I
11: aload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.sessionID:[B
iconst_0
bipush 8
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
12: aload 0
aload 2
invokevirtual java.nio.ByteBuffer.getInt:()I
putfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.DHPKsize:I
13: aload 0
aload 2
invokevirtual java.nio.ByteBuffer.getInt:()I
putfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.DHPKSsize:I
14: aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.DHPKsize:I
newarray 8
putfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.DHpublicKey:[B
15: aload 0
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.DHPKSsize:I
newarray 8
putfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.publicKeySig:[B
16: aload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.DHpublicKey:[B
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.DHPKsize:I
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
17: aload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.publicKeySig:[B
iconst_0
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.DHPKSsize:I
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
18: aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
ifeq 22
19: aconst_null
aload 0
20: ldc "R_EnclaveResponseLengthError"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerResource.getResource:(Ljava/lang/String;)Ljava/lang/String;
ldc "0"
iconst_0
21: invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
22: StackMap locals: com.microsoft.sqlserver.jdbc.AASAttestationResponse byte[] java.nio.ByteBuffer
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/microsoft/sqlserver/jdbc/AASAttestationResponse;
0 23 1 b [B
2 23 2 response Ljava/nio/ByteBuffer;
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
b
void validateToken(java.lang.String, byte[]);
descriptor: (Ljava/lang/String;[B)V
flags: (0x0000)
Code:
stack=5, locals=27, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.String
dup
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.attestationToken:[B
invokespecial java.lang.String.<init>:([B)V
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 3
start local 3 1: aload 3
ldc "\""
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 3
aload 3
ldc "\""
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 3
2: aload 3
iconst_1
aload 3
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
3: StackMap locals: java.lang.String
StackMap stack:
aload 3
ldc "\\."
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 4
start local 4 4: invokestatic java.util.Base64.getUrlDecoder:()Ljava/util/Base64$Decoder;
astore 5
start local 5 5: new java.lang.String
dup
aload 5
aload 4
iconst_0
aaload
invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
invokespecial java.lang.String.<init>:([B)V
astore 6
start local 6 6: new java.lang.String
dup
aload 5
aload 4
iconst_1
aaload
invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
invokespecial java.lang.String.<init>:([B)V
astore 7
start local 7 7: aload 5
aload 4
iconst_2
aaload
invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
astore 8
start local 8 8: aconst_null
astore 9
start local 9 9: getstatic com.microsoft.sqlserver.jdbc.AASAttestationResponse.certificateCache:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.microsoft.sqlserver.jdbc.JWTCertificateEntry
astore 10
start local 10 10: aload 10
ifnull 13
aload 10
invokevirtual com.microsoft.sqlserver.jdbc.JWTCertificateEntry.expired:()Z
ifne 13
11: aload 10
invokevirtual com.microsoft.sqlserver.jdbc.JWTCertificateEntry.getCertificates:()Lcom/google/gson/JsonArray;
astore 9
12: goto 15
StackMap locals: com.microsoft.sqlserver.jdbc.AASAttestationResponse java.lang.String byte[] java.lang.String java.lang.String[] java.util.Base64$Decoder java.lang.String java.lang.String byte[] com.google.gson.JsonArray com.microsoft.sqlserver.jdbc.JWTCertificateEntry
StackMap stack:
13: aload 10
ifnull 15
aload 10
invokevirtual com.microsoft.sqlserver.jdbc.JWTCertificateEntry.expired:()Z
ifeq 15
14: getstatic com.microsoft.sqlserver.jdbc.AASAttestationResponse.certificateCache:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
15: StackMap locals:
StackMap stack:
aload 9
ifnonnull 27
16: new java.net.URL
dup
aload 1
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
invokevirtual java.net.URL.getAuthority:()Ljava/lang/String;
astore 11
start local 11 17: new java.net.URL
dup
new java.lang.StringBuilder
dup
ldc "https://"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/.well-known/openid-configuration"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
astore 12
start local 12 18: aload 12
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 13
start local 13 19: new java.lang.String
dup
aload 13
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
invokestatic com.microsoft.sqlserver.jdbc.Util.convertInputStreamToString:(Ljava/io/InputStream;)Ljava/lang/String;
invokespecial java.lang.String.<init>:(Ljava/lang/String;)V
astore 14
start local 14 20: aload 14
invokestatic com.google.gson.JsonParser.parseString:(Ljava/lang/String;)Lcom/google/gson/JsonElement;
invokevirtual com.google.gson.JsonElement.getAsJsonObject:()Lcom/google/gson/JsonObject;
astore 15
start local 15 21: new java.net.URL
dup
aload 15
ldc "jwks_uri"
invokevirtual com.google.gson.JsonObject.get:(Ljava/lang/String;)Lcom/google/gson/JsonElement;
invokevirtual com.google.gson.JsonElement.getAsString:()Ljava/lang/String;
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
astore 16
start local 16 22: aload 16
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 17
start local 17 23: new java.lang.String
dup
aload 17
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
invokestatic com.microsoft.sqlserver.jdbc.Util.convertInputStreamToString:(Ljava/io/InputStream;)Ljava/lang/String;
invokespecial java.lang.String.<init>:(Ljava/lang/String;)V
astore 18
start local 18 24: aload 18
invokestatic com.google.gson.JsonParser.parseString:(Ljava/lang/String;)Lcom/google/gson/JsonElement;
invokevirtual com.google.gson.JsonElement.getAsJsonObject:()Lcom/google/gson/JsonObject;
astore 19
start local 19 25: aload 19
ldc "keys"
invokevirtual com.google.gson.JsonObject.get:(Ljava/lang/String;)Lcom/google/gson/JsonElement;
invokevirtual com.google.gson.JsonElement.getAsJsonArray:()Lcom/google/gson/JsonArray;
astore 9
26: getstatic com.microsoft.sqlserver.jdbc.AASAttestationResponse.certificateCache:Ljava/util/Hashtable;
aload 1
new com.microsoft.sqlserver.jdbc.JWTCertificateEntry
dup
aload 9
invokespecial com.microsoft.sqlserver.jdbc.JWTCertificateEntry.<init>:(Lcom/google/gson/JsonArray;)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 27: StackMap locals:
StackMap stack:
aload 6
invokestatic com.google.gson.JsonParser.parseString:(Ljava/lang/String;)Lcom/google/gson/JsonElement;
invokevirtual com.google.gson.JsonElement.getAsJsonObject:()Lcom/google/gson/JsonObject;
astore 11
start local 11 28: aload 11
ldc "kid"
invokevirtual com.google.gson.JsonObject.get:(Ljava/lang/String;)Lcom/google/gson/JsonElement;
invokevirtual com.google.gson.JsonElement.getAsString:()Ljava/lang/String;
astore 12
start local 12 29: aload 9
invokevirtual com.google.gson.JsonArray.iterator:()Ljava/util/Iterator;
astore 14
goto 60
StackMap locals: com.microsoft.sqlserver.jdbc.AASAttestationResponse java.lang.String byte[] java.lang.String java.lang.String[] java.util.Base64$Decoder java.lang.String java.lang.String byte[] com.google.gson.JsonArray com.microsoft.sqlserver.jdbc.JWTCertificateEntry com.google.gson.JsonObject java.lang.String top java.util.Iterator
StackMap stack:
30: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.gson.JsonElement
astore 13
start local 13 31: aload 13
invokevirtual com.google.gson.JsonElement.getAsJsonObject:()Lcom/google/gson/JsonObject;
astore 15
start local 15 32: aload 15
ldc "kid"
invokevirtual com.google.gson.JsonObject.get:(Ljava/lang/String;)Lcom/google/gson/JsonElement;
invokevirtual com.google.gson.JsonElement.getAsString:()Ljava/lang/String;
astore 16
start local 16 33: aload 16
aload 12
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 60
34: aload 15
ldc "x5c"
invokevirtual com.google.gson.JsonObject.get:(Ljava/lang/String;)Lcom/google/gson/JsonElement;
invokevirtual com.google.gson.JsonElement.getAsJsonArray:()Lcom/google/gson/JsonArray;
astore 17
start local 17 35: new java.lang.StringBuilder
dup
aload 4
iconst_0
aaload
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
iconst_1
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.getBytes:()[B
astore 18
start local 18 36: aload 17
invokevirtual com.google.gson.JsonArray.iterator:()Ljava/util/Iterator;
astore 20
goto 59
StackMap locals: com.microsoft.sqlserver.jdbc.AASAttestationResponse java.lang.String byte[] java.lang.String java.lang.String[] java.util.Base64$Decoder java.lang.String java.lang.String byte[] com.google.gson.JsonArray com.microsoft.sqlserver.jdbc.JWTCertificateEntry com.google.gson.JsonObject java.lang.String com.google.gson.JsonElement java.util.Iterator com.google.gson.JsonObject java.lang.String com.google.gson.JsonArray byte[] top java.util.Iterator
StackMap stack:
37: aload 20
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.gson.JsonElement
astore 19
start local 19 38: ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 21
start local 21 39: aload 21
40: new java.io.ByteArrayInputStream
dup
invokestatic java.util.Base64.getDecoder:()Ljava/util/Base64$Decoder;
aload 19
invokevirtual com.google.gson.JsonElement.getAsString:()Ljava/lang/String;
invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
41: invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
checkcast java.security.cert.X509Certificate
astore 22
start local 22 42: ldc "SHA256withRSA"
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
astore 23
start local 23 43: aload 23
aload 22
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
44: aload 23
aload 18
invokevirtual java.security.Signature.update:([B)V
45: aload 23
aload 8
invokevirtual java.security.Signature.verify:([B)Z
ifeq 59
46: aload 7
invokestatic com.google.gson.JsonParser.parseString:(Ljava/lang/String;)Lcom/google/gson/JsonElement;
invokevirtual com.google.gson.JsonElement.getAsJsonObject:()Lcom/google/gson/JsonObject;
astore 24
start local 24 47: aload 24
ldc "aas-ehd"
invokevirtual com.google.gson.JsonObject.get:(Ljava/lang/String;)Lcom/google/gson/JsonElement;
invokevirtual com.google.gson.JsonElement.getAsString:()Ljava/lang/String;
astore 25
start local 25 48: invokestatic java.util.Base64.getUrlDecoder:()Ljava/util/Base64$Decoder;
aload 25
invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.enclavePK:[B
invokestatic java.util.Arrays.equals:([B[B)Z
ifne 52
49: aconst_null
aload 0
50: ldc "R_AasEhdError"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerResource.getResource:(Ljava/lang/String;)Ljava/lang/String;
ldc "0"
iconst_0
51: invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
52: StackMap locals: com.microsoft.sqlserver.jdbc.AASAttestationResponse java.lang.String byte[] java.lang.String java.lang.String[] java.util.Base64$Decoder java.lang.String java.lang.String byte[] com.google.gson.JsonArray com.microsoft.sqlserver.jdbc.JWTCertificateEntry com.google.gson.JsonObject java.lang.String com.google.gson.JsonElement java.util.Iterator com.google.gson.JsonObject java.lang.String com.google.gson.JsonArray byte[] com.google.gson.JsonElement java.util.Iterator java.security.cert.CertificateFactory java.security.cert.X509Certificate java.security.Signature com.google.gson.JsonObject java.lang.String
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.enclaveType:I
iconst_1
if_icmpne 58
53: aload 24
ldc "rp_data"
invokevirtual com.google.gson.JsonObject.get:(Ljava/lang/String;)Lcom/google/gson/JsonElement;
invokevirtual com.google.gson.JsonElement.getAsString:()Ljava/lang/String;
astore 26
start local 26 54: invokestatic java.util.Base64.getUrlDecoder:()Ljava/util/Base64$Decoder;
aload 26
invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
aload 2
invokestatic java.util.Arrays.equals:([B[B)Z
ifne 58
55: aconst_null
aload 0
56: ldc "R_VbsRpDataError"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerResource.getResource:(Ljava/lang/String;)Ljava/lang/String;
ldc "0"
iconst_0
57: invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
end local 26 58: StackMap locals:
StackMap stack:
return
end local 25 end local 24 end local 23 end local 22 end local 21 end local 19 59: StackMap locals: com.microsoft.sqlserver.jdbc.AASAttestationResponse java.lang.String byte[] java.lang.String java.lang.String[] java.util.Base64$Decoder java.lang.String java.lang.String byte[] com.google.gson.JsonArray com.microsoft.sqlserver.jdbc.JWTCertificateEntry com.google.gson.JsonObject java.lang.String com.google.gson.JsonElement java.util.Iterator com.google.gson.JsonObject java.lang.String com.google.gson.JsonArray byte[] top java.util.Iterator
StackMap stack:
aload 20
invokeinterface java.util.Iterator.hasNext:()Z
ifne 37
end local 18 end local 17 end local 16 end local 15 end local 13 60: StackMap locals: com.microsoft.sqlserver.jdbc.AASAttestationResponse java.lang.String byte[] java.lang.String java.lang.String[] java.util.Base64$Decoder java.lang.String java.lang.String byte[] com.google.gson.JsonArray com.microsoft.sqlserver.jdbc.JWTCertificateEntry com.google.gson.JsonObject java.lang.String top java.util.Iterator
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 30
61: aconst_null
aload 0
ldc "R_AasJWTError"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerResource.getResource:(Ljava/lang/String;)Ljava/lang/String;
ldc "0"
62: iconst_0
63: invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 64: goto 67
StackMap locals: com.microsoft.sqlserver.jdbc.AASAttestationResponse java.lang.String byte[]
StackMap stack: java.lang.Exception
65: astore 3
start local 3 66: aconst_null
aload 0
aload 3
invokevirtual java.lang.Exception.getLocalizedMessage:()Ljava/lang/String;
ldc ""
iconst_0
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
end local 3 67: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 68 0 this Lcom/microsoft/sqlserver/jdbc/AASAttestationResponse;
0 68 1 attestationUrl Ljava/lang/String;
0 68 2 nonce [B
1 64 3 jwtToken Ljava/lang/String;
4 64 4 splitString [Ljava/lang/String;
5 64 5 decoder Ljava/util/Base64$Decoder;
6 64 6 header Ljava/lang/String;
7 64 7 body Ljava/lang/String;
8 64 8 stmtSig [B
9 64 9 keys Lcom/google/gson/JsonArray;
10 64 10 cacheEntry Lcom/microsoft/sqlserver/jdbc/JWTCertificateEntry;
17 27 11 authorityUrl Ljava/lang/String;
18 27 12 wellKnownUrl Ljava/net/URL;
19 27 13 con Ljava/net/URLConnection;
20 27 14 wellKnownUrlJson Ljava/lang/String;
21 27 15 attestationJson Lcom/google/gson/JsonObject;
22 27 16 jwksUrl Ljava/net/URL;
23 27 17 jwksCon Ljava/net/URLConnection;
24 27 18 jwksUrlJson Ljava/lang/String;
25 27 19 jwksJson Lcom/google/gson/JsonObject;
28 64 11 headerJsonObject Lcom/google/gson/JsonObject;
29 64 12 keyID Ljava/lang/String;
31 60 13 key Lcom/google/gson/JsonElement;
32 60 15 keyObj Lcom/google/gson/JsonObject;
33 60 16 kId Ljava/lang/String;
35 60 17 certsFromServer Lcom/google/gson/JsonArray;
36 60 18 signatureBytes [B
38 59 19 jsonCert Lcom/google/gson/JsonElement;
39 59 21 cf Ljava/security/cert/CertificateFactory;
42 59 22 cert Ljava/security/cert/X509Certificate;
43 59 23 sig Ljava/security/Signature;
47 59 24 bodyJsonObject Lcom/google/gson/JsonObject;
48 59 25 aasEhd Ljava/lang/String;
54 58 26 rpData Ljava/lang/String;
66 67 3 e Ljava/lang/Exception;
Exception table:
from to target type
0 58 65 Class java.io.IOException
59 64 65 Class java.io.IOException
0 58 65 Class java.security.GeneralSecurityException
59 64 65 Class java.security.GeneralSecurityException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
attestationUrl
nonce
void validateDHPublicKey(byte[]);
descriptor: ([B)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.enclaveType:I
iconst_2
if_icmpne 6
1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: int
StackMap stack:
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.enclavePK:[B
iload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.enclavePK:[B
iload 2
baload
aload 1
iload 2
aload 1
arraylength
irem
baload
ixor
i2b
bastore
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
getfield com.microsoft.sqlserver.jdbc.AASAttestationResponse.enclavePK:[B
arraylength
if_icmplt 3
end local 2 6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.microsoft.sqlserver.jdbc.AASAttestationResponse.validateDHPublicKey:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/microsoft/sqlserver/jdbc/AASAttestationResponse;
0 8 1 nonce [B
2 6 2 i I
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException, java.security.GeneralSecurityException
MethodParameters:
Name Flags
nonce
}
SourceFile: "SQLServerAASEnclaveProvider.java"
InnerClasses:
public Decoder = java.util.Base64$Decoder of java.util.Base64