abstract class com.microsoft.sqlserver.jdbc.BaseAttestationResponse
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.microsoft.sqlserver.jdbc.BaseAttestationResponse
  super_class: java.lang.Object
{
  protected int totalSize;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int identitySize;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int attestationTokenSize;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int enclaveType;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected byte[] enclavePK;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected int sessionInfoSize;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected byte[] sessionID;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected int DHPKsize;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int DHPKSsize;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected byte[] DHpublicKey;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected byte[] publicKeySig;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.BaseAttestationResponse this
         0: .line 330
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 338
            aload 0 /* this */
            bipush 8
            newarray 8
            putfield com.microsoft.sqlserver.jdbc.BaseAttestationResponse.sessionID:[B
         2: .line 330
            return
        end local 0 // com.microsoft.sqlserver.jdbc.BaseAttestationResponse this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/BaseAttestationResponse;

  void validateDHPublicKey();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=7, locals=11, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.BaseAttestationResponse this
         0: .line 359
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.BaseAttestationResponse.enclavePK:[B
            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 1 /* enclavePKBuffer */
        start local 1 // java.nio.ByteBuffer enclavePKBuffer
         1: .line 360
            iconst_4
            newarray 8
            astore 2 /* rsa1 */
        start local 2 // byte[] rsa1
         2: .line 361
            aload 1 /* enclavePKBuffer */
            aload 2 /* rsa1 */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
         3: .line 362
            aload 1 /* enclavePKBuffer */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            pop
         4: .line 363
            aload 1 /* enclavePKBuffer */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 3 /* publicExponentLength */
        start local 3 // int publicExponentLength
         5: .line 364
            aload 1 /* enclavePKBuffer */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 4 /* publicModulusLength */
        start local 4 // int publicModulusLength
         6: .line 365
            aload 1 /* enclavePKBuffer */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            pop
         7: .line 366
            aload 1 /* enclavePKBuffer */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            pop
         8: .line 367
            iload 3 /* publicExponentLength */
            newarray 8
            astore 5 /* exponent */
        start local 5 // byte[] exponent
         9: .line 368
            aload 1 /* enclavePKBuffer */
            aload 5 /* exponent */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
        10: .line 369
            iload 4 /* publicModulusLength */
            newarray 8
            astore 6 /* modulus */
        start local 6 // byte[] modulus
        11: .line 370
            aload 1 /* enclavePKBuffer */
            aload 6 /* modulus */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
        12: .line 371
            aload 1 /* enclavePKBuffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            ifeq 16
        13: .line 372
            aconst_null
            aload 0 /* this */
            ldc "R_EnclavePKLengthError"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerResource.getResource:(Ljava/lang/String;)Ljava/lang/String;
        14: .line 373
            ldc "0"
            iconst_0
        15: .line 372
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
        16: .line 375
      StackMap locals: com.microsoft.sqlserver.jdbc.BaseAttestationResponse java.nio.ByteBuffer byte[] int int byte[] byte[]
      StackMap stack:
            new java.security.spec.RSAPublicKeySpec
            dup
            new java.math.BigInteger
            dup
            iconst_1
            aload 6 /* modulus */
            invokespecial java.math.BigInteger.<init>:(I[B)V
            new java.math.BigInteger
            dup
            iconst_1
            aload 5 /* exponent */
            invokespecial java.math.BigInteger.<init>:(I[B)V
            invokespecial java.security.spec.RSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 7 /* spec */
        start local 7 // java.security.spec.RSAPublicKeySpec spec
        17: .line 376
            ldc "RSA"
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            astore 8 /* factory */
        start local 8 // java.security.KeyFactory factory
        18: .line 377
            aload 8 /* factory */
            aload 7 /* spec */
            invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
            astore 9 /* pub */
        start local 9 // java.security.PublicKey pub
        19: .line 378
            ldc "SHA256withRSA"
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
            astore 10 /* sig */
        start local 10 // java.security.Signature sig
        20: .line 379
            aload 10 /* sig */
            aload 9 /* pub */
            invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
        21: .line 380
            aload 10 /* sig */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.BaseAttestationResponse.DHpublicKey:[B
            invokevirtual java.security.Signature.update:([B)V
        22: .line 381
            aload 10 /* sig */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.BaseAttestationResponse.publicKeySig:[B
            invokevirtual java.security.Signature.verify:([B)Z
            ifne 26
        23: .line 382
            aconst_null
            aload 0 /* this */
            ldc "R_InvalidDHKeySignature"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerResource.getResource:(Ljava/lang/String;)Ljava/lang/String;
        24: .line 383
            ldc "0"
            iconst_0
        25: .line 382
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError:(Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Z)V
        26: .line 385
      StackMap locals: com.microsoft.sqlserver.jdbc.BaseAttestationResponse java.nio.ByteBuffer byte[] int int byte[] byte[] java.security.spec.RSAPublicKeySpec java.security.KeyFactory java.security.PublicKey java.security.Signature
      StackMap stack:
            return
        end local 10 // java.security.Signature sig
        end local 9 // java.security.PublicKey pub
        end local 8 // java.security.KeyFactory factory
        end local 7 // java.security.spec.RSAPublicKeySpec spec
        end local 6 // byte[] modulus
        end local 5 // byte[] exponent
        end local 4 // int publicModulusLength
        end local 3 // int publicExponentLength
        end local 2 // byte[] rsa1
        end local 1 // java.nio.ByteBuffer enclavePKBuffer
        end local 0 // com.microsoft.sqlserver.jdbc.BaseAttestationResponse this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   27     0                  this  Lcom/microsoft/sqlserver/jdbc/BaseAttestationResponse;
            1   27     1       enclavePKBuffer  Ljava/nio/ByteBuffer;
            2   27     2                  rsa1  [B
            5   27     3  publicExponentLength  I
            6   27     4   publicModulusLength  I
            9   27     5              exponent  [B
           11   27     6               modulus  [B
           17   27     7                  spec  Ljava/security/spec/RSAPublicKeySpec;
           18   27     8               factory  Ljava/security/KeyFactory;
           19   27     9                   pub  Ljava/security/PublicKey;
           20   27    10                   sig  Ljava/security/Signature;
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException, java.security.GeneralSecurityException

  byte[] getDHpublicKey();
    descriptor: ()[B
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.BaseAttestationResponse this
         0: .line 388
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.BaseAttestationResponse.DHpublicKey:[B
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.BaseAttestationResponse this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/BaseAttestationResponse;

  byte[] getSessionID();
    descriptor: ()[B
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.BaseAttestationResponse this
         0: .line 392
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.BaseAttestationResponse.sessionID:[B
            areturn
        end local 0 // com.microsoft.sqlserver.jdbc.BaseAttestationResponse this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/microsoft/sqlserver/jdbc/BaseAttestationResponse;
}
SourceFile: "ISQLServerEnclaveProvider.java"