class com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey extends com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey
super_class: com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey
{
static final int keySize;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 256
private final java.lang.String algorithmName;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.String encryptionKeySaltFormat;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String macKeySaltFormat;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String ivKeySaltFormat;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey encryptionKey;
descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerSymmetricKey;
flags: (0x0002) ACC_PRIVATE
private com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey macKey;
descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerSymmetricKey;
flags: (0x0002) ACC_PRIVATE
private com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey ivKey;
descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerSymmetricKey;
flags: (0x0002) ACC_PRIVATE
void <init>(byte[], java.lang.String);
descriptor: ([BLjava/lang/String;)V
flags: (0x0000)
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey.<init>:([B)V
1: aload 0
aload 2
putfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.algorithmName:Ljava/lang/String;
2: aload 0
new java.lang.StringBuilder
dup
ldc "Microsoft SQL Server cell encryption key with encryption algorithm:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.algorithmName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " and key length:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
sipush 256
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: putfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.encryptionKeySaltFormat:Ljava/lang/String;
5: aload 0
new java.lang.StringBuilder
dup
ldc "Microsoft SQL Server cell MAC key with encryption algorithm:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.algorithmName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: ldc " and key length:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
sipush 256
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: putfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.macKeySaltFormat:Ljava/lang/String;
8: aload 0
new java.lang.StringBuilder
dup
ldc "Microsoft SQL Server cell IV key with encryption algorithm:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.algorithmName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc " and key length:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
sipush 256
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: putfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.ivKeySaltFormat:Ljava/lang/String;
11: bipush 32
istore 3
start local 3 12: aload 1
arraylength
iload 3
if_icmpeq 16
13: new java.text.MessageFormat
dup
ldc "R_InvalidKeySize"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 4
start local 4 14: iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.algorithmName:Ljava/lang/String;
aastore
astore 5
start local 5 15: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 0
aload 4
aload 5
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
aconst_null
iconst_0
iconst_0
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IZ)V
athrow
end local 5 end local 4 16: StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey byte[] java.lang.String int
StackMap stack:
iload 3
newarray 8
astore 4
start local 4 17: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.encryptionKeySaltFormat:Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
aload 1
18: aload 4
arraylength
19: invokestatic com.microsoft.sqlserver.jdbc.SQLServerSecurityUtility.getHMACWithSHA256:([B[BI)[B
astore 4
20: aload 0
new com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey
dup
aload 4
invokespecial com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey.<init>:([B)V
putfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.encryptionKey:Lcom/microsoft/sqlserver/jdbc/SQLServerSymmetricKey;
21: iload 3
newarray 8
astore 5
start local 5 22: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.macKeySaltFormat:Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
aload 1
23: aload 5
arraylength
24: invokestatic com.microsoft.sqlserver.jdbc.SQLServerSecurityUtility.getHMACWithSHA256:([B[BI)[B
astore 5
25: aload 0
new com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey
dup
aload 5
invokespecial com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey.<init>:([B)V
putfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.macKey:Lcom/microsoft/sqlserver/jdbc/SQLServerSymmetricKey;
26: iload 3
newarray 8
astore 6
start local 6 27: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.ivKeySaltFormat:Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
aload 1
28: aload 6
arraylength
29: invokestatic com.microsoft.sqlserver.jdbc.SQLServerSecurityUtility.getHMACWithSHA256:([B[BI)[B
astore 6
30: aload 0
new com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey
dup
aload 6
invokespecial com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey.<init>:([B)V
putfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.ivKey:Lcom/microsoft/sqlserver/jdbc/SQLServerSymmetricKey;
end local 6 end local 5 31: goto 36
StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey byte[] java.lang.String int byte[]
StackMap stack: java.security.GeneralSecurityException
32: astore 5
start local 5 33: new java.text.MessageFormat
dup
ldc "R_KeyExtractionFailed"
invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;)V
astore 6
start local 6 34: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
aastore
astore 7
start local 7 35: new com.microsoft.sqlserver.jdbc.SQLServerException
dup
aload 0
aload 6
aload 7
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
aconst_null
iconst_0
iconst_0
invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;IZ)V
athrow
end local 7 end local 6 end local 5 36: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerAeadAes256CbcHmac256EncryptionKey;
0 37 1 rootKey [B
0 37 2 algorithmName Ljava/lang/String;
12 37 3 keySizeInBytes I
14 16 4 form Ljava/text/MessageFormat;
15 16 5 msgArgs [Ljava/lang/Object;
17 37 4 encKeyBuff [B
22 31 5 macKeyBuff [B
27 31 6 ivKeyBuff [B
33 36 5 e Ljava/security/GeneralSecurityException;
34 36 6 form Ljava/text/MessageFormat;
35 36 7 msgArgs [Ljava/lang/Object;
Exception table:
from to target type
17 31 32 Class java.security.InvalidKeyException
17 31 32 Class java.security.NoSuchAlgorithmException
Exceptions:
throws com.microsoft.sqlserver.jdbc.SQLServerException
MethodParameters:
Name Flags
rootKey
algorithmName
byte[] getEncryptionKey();
descriptor: ()[B
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.encryptionKey:Lcom/microsoft/sqlserver/jdbc/SQLServerSymmetricKey;
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey.getRootKey:()[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerAeadAes256CbcHmac256EncryptionKey;
byte[] getMacKey();
descriptor: ()[B
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.macKey:Lcom/microsoft/sqlserver/jdbc/SQLServerSymmetricKey;
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey.getRootKey:()[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerAeadAes256CbcHmac256EncryptionKey;
byte[] getIVKey();
descriptor: ()[B
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.microsoft.sqlserver.jdbc.SQLServerAeadAes256CbcHmac256EncryptionKey.ivKey:Lcom/microsoft/sqlserver/jdbc/SQLServerSymmetricKey;
invokevirtual com.microsoft.sqlserver.jdbc.SQLServerSymmetricKey.getRootKey:()[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/microsoft/sqlserver/jdbc/SQLServerAeadAes256CbcHmac256EncryptionKey;
}
SourceFile: "SQLServerAeadAes256CbcHmac256EncryptionKey.java"