class com.oracle.security.ucrypto.NativeCipher extends javax.crypto.CipherSpi
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.security.ucrypto.NativeCipher
super_class: javax.crypto.CipherSpi
{
public static final int AES_BLOCK_SIZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 16
public static final java.lang.String AES_KEY_ALGO;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "AES"
protected final com.oracle.security.ucrypto.UcryptoMech mech;
descriptor: Lcom/oracle/security/ucrypto/UcryptoMech;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected java.lang.String keyAlgo;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
protected int blockSize;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int fixedKeySize;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected com.oracle.security.ucrypto.CipherContextRef pCtxt;
descriptor: Lcom/oracle/security/ucrypto/CipherContextRef;
flags: (0x0004) ACC_PROTECTED
protected byte[] keyValue;
descriptor: [B
flags: (0x0004) ACC_PROTECTED
protected byte[] iv;
descriptor: [B
flags: (0x0004) ACC_PROTECTED
protected boolean initialized;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected boolean encrypt;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected int bytesBuffered;
descriptor: I
flags: (0x0004) ACC_PROTECTED
private static final java.security.PublicKey constructPublicKey(byte[], java.lang.String);
descriptor: ([BLjava/lang/String;)Ljava/security/PublicKey;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
2: astore 3
start local 3 3: new java.security.spec.X509EncodedKeySpec
dup
aload 0
invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
astore 4
start local 4 4: aload 3
aload 4
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
astore 2
end local 4 end local 3 5: goto 13
StackMap locals: byte[] java.lang.String java.security.PublicKey
StackMap stack: java.security.NoSuchAlgorithmException
6: pop
7: new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
ldc "No provider found for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc " KeyFactory"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack: java.security.spec.InvalidKeySpecException
astore 3
start local 3 12: new java.security.InvalidKeyException
dup
ldc "Cannot construct public key"
aload 3
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 13: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 encodedKey [B
0 14 1 encodedKeyAlgorithm Ljava/lang/String;
1 14 2 key Ljava/security/PublicKey;
3 5 3 keyFactory Ljava/security/KeyFactory;
4 5 4 keySpec Ljava/security/spec/X509EncodedKeySpec;
12 13 3 ikse Ljava/security/spec/InvalidKeySpecException;
Exception table:
from to target type
1 5 6 Class java.security.NoSuchAlgorithmException
1 5 11 Class java.security.spec.InvalidKeySpecException
Exceptions:
throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
encodedKey
encodedKeyAlgorithm
private static final java.security.PrivateKey constructPrivateKey(byte[], java.lang.String);
descriptor: ([BLjava/lang/String;)Ljava/security/PrivateKey;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
2: astore 3
start local 3 3: new java.security.spec.PKCS8EncodedKeySpec
dup
aload 0
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
astore 4
start local 4 4: aload 3
aload 4
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
astore 2
end local 4 end local 3 5: goto 13
StackMap locals: byte[] java.lang.String java.security.PrivateKey
StackMap stack: java.security.NoSuchAlgorithmException
6: pop
7: new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
ldc "No provider found for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc " KeyFactory"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack: java.security.spec.InvalidKeySpecException
astore 3
start local 3 12: new java.security.InvalidKeyException
dup
ldc "Cannot construct private key"
aload 3
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 13: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 encodedKey [B
0 14 1 encodedKeyAlgorithm Ljava/lang/String;
1 14 2 key Ljava/security/PrivateKey;
3 5 3 keyFactory Ljava/security/KeyFactory;
4 5 4 keySpec Ljava/security/spec/PKCS8EncodedKeySpec;
12 13 3 ikse Ljava/security/spec/InvalidKeySpecException;
Exception table:
from to target type
1 5 6 Class java.security.NoSuchAlgorithmException
1 5 11 Class java.security.spec.InvalidKeySpecException
Exceptions:
throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
encodedKey
encodedKeyAlgorithm
private static final javax.crypto.SecretKey constructSecretKey(byte[], java.lang.String);
descriptor: ([BLjava/lang/String;)Ljavax/crypto/SecretKey;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new javax.crypto.spec.SecretKeySpec
dup
aload 0
aload 1
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 encodedKey [B
0 1 1 encodedKeyAlgorithm Ljava/lang/String;
MethodParameters:
Name Flags
encodedKey
encodedKeyAlgorithm
static final java.security.Key constructKey(int, byte[], java.lang.String);
descriptor: (I[BLjava/lang/String;)Ljava/security/Key;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: iload 0
tableswitch { // 1 - 3
1: 10
2: 6
3: 2
default: 13
}
2: StackMap locals: java.security.Key
StackMap stack:
aload 1
3: aload 2
4: invokestatic com.oracle.security.ucrypto.NativeCipher.constructSecretKey:([BLjava/lang/String;)Ljavax/crypto/SecretKey;
astore 3
5: goto 13
6: StackMap locals:
StackMap stack:
aload 1
7: aload 2
8: invokestatic com.oracle.security.ucrypto.NativeCipher.constructPrivateKey:([BLjava/lang/String;)Ljava/security/PrivateKey;
astore 3
9: goto 13
10: StackMap locals:
StackMap stack:
aload 1
11: aload 2
12: invokestatic com.oracle.security.ucrypto.NativeCipher.constructPublicKey:([BLjava/lang/String;)Ljava/security/PublicKey;
astore 3
13: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 keyType I
0 14 1 encodedKey [B
0 14 2 encodedKeyAlgorithm Ljava/lang/String;
1 14 3 result Ljava/security/Key;
Exceptions:
throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
keyType
encodedKey
encodedKeyAlgorithm
void <init>(com.oracle.security.ucrypto.UcryptoMech, int);
descriptor: (Lcom/oracle/security/ucrypto/UcryptoMech;I)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial javax.crypto.CipherSpi.<init>:()V
1: aload 0
aconst_null
putfield com.oracle.security.ucrypto.NativeCipher.pCtxt:Lcom/oracle/security/ucrypto/CipherContextRef;
2: aload 0
aconst_null
putfield com.oracle.security.ucrypto.NativeCipher.keyValue:[B
3: aload 0
aconst_null
putfield com.oracle.security.ucrypto.NativeCipher.iv:[B
4: aload 0
iconst_0
putfield com.oracle.security.ucrypto.NativeCipher.initialized:Z
5: aload 0
iconst_1
putfield com.oracle.security.ucrypto.NativeCipher.encrypt:Z
6: aload 0
iconst_0
putfield com.oracle.security.ucrypto.NativeCipher.bytesBuffered:I
7: aload 0
aload 1
putfield com.oracle.security.ucrypto.NativeCipher.mech:Lcom/oracle/security/ucrypto/UcryptoMech;
8: aload 0
bipush 16
putfield com.oracle.security.ucrypto.NativeCipher.blockSize:I
9: aload 0
ldc "AES"
putfield com.oracle.security.ucrypto.NativeCipher.keyAlgo:Ljava/lang/String;
10: aload 0
iload 2
putfield com.oracle.security.ucrypto.NativeCipher.fixedKeySize:I
11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 12 1 mech Lcom/oracle/security/ucrypto/UcryptoMech;
0 12 2 fixedKeySize I
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
mech
fixedKeySize
void <init>(com.oracle.security.ucrypto.UcryptoMech);
descriptor: (Lcom/oracle/security/ucrypto/UcryptoMech;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_m1
invokespecial com.oracle.security.ucrypto.NativeCipher.<init>:(Lcom/oracle/security/ucrypto/UcryptoMech;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 2 1 mech Lcom/oracle/security/ucrypto/UcryptoMech;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
mech
protected void engineSetMode(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new java.security.NoSuchAlgorithmException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported mode "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 1 1 mode Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
mode
protected void engineSetPadding(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new javax.crypto.NoSuchPaddingException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported padding "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial javax.crypto.NoSuchPaddingException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 1 1 padding Ljava/lang/String;
Exceptions:
throws javax.crypto.NoSuchPaddingException
MethodParameters:
Name Flags
padding
protected int engineGetBlockSize();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.blockSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/security/ucrypto/NativeCipher;
protected synchronized int engineGetOutputSize(int);
descriptor: (I)I
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_1
invokevirtual com.oracle.security.ucrypto.NativeCipher.getOutputSizeByOperation:(IZ)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 1 1 inputLen I
MethodParameters:
Name Flags
inputLen
protected synchronized byte[] engineGetIV();
descriptor: ()[B
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.iv:[B
ifnull 1
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.iv:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: byte[]
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/security/ucrypto/NativeCipher;
protected synchronized java.security.AlgorithmParameters engineGetParameters();
descriptor: ()Ljava/security/AlgorithmParameters;
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=4, locals=3, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.iv:[B
ifnull 8
2: new javax.crypto.spec.IvParameterSpec
dup
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.iv:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
astore 2
start local 2 3: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.keyAlgo:Ljava/lang/String;
invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
astore 1
4: aload 1
aload 2
invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
end local 2 5: goto 8
StackMap locals: com.oracle.security.ucrypto.NativeCipher java.security.AlgorithmParameters
StackMap stack: java.security.GeneralSecurityException
6: astore 2
start local 2 7: new com.oracle.security.ucrypto.UcryptoException
dup
ldc "Could not encode parameters"
aload 2
invokespecial com.oracle.security.ucrypto.UcryptoException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 8: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/security/ucrypto/NativeCipher;
1 9 1 params Ljava/security/AlgorithmParameters;
3 5 2 ivSpec Ljavax/crypto/spec/IvParameterSpec;
7 8 2 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
1 5 6 Class java.security.GeneralSecurityException
protected int engineGetKeySize(java.security.Key);
descriptor: (Ljava/security/Key;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.security.ucrypto.NativeCipher.checkKey:(Ljava/security/Key;)I
bipush 8
imul
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 1 1 key Ljava/security/Key;
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
protected synchronized void engineInit(int, java.security.Key, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/SecureRandom;)V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
aload 2
aconst_null
aload 3
invokevirtual com.oracle.security.ucrypto.NativeCipher.engineInit:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
1: goto 4
StackMap locals:
StackMap stack: java.security.InvalidAlgorithmParameterException
2: astore 4
start local 4 3: new java.security.InvalidKeyException
dup
ldc "init() failed"
aload 4
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 4: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 5 1 opmode I
0 5 2 key Ljava/security/Key;
0 5 3 random Ljava/security/SecureRandom;
3 4 4 e Ljava/security/InvalidAlgorithmParameterException;
Exception table:
from to target type
0 1 2 Class java.security.InvalidAlgorithmParameterException
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
opmode
key
random
protected synchronized void engineInit(int, java.security.Key, java.security.spec.AlgorithmParameterSpec, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 2
invokevirtual com.oracle.security.ucrypto.NativeCipher.checkKey:(Ljava/security/Key;)I
pop
1: iload 1
iconst_1
if_icmpeq 8
2: iload 1
iconst_2
if_icmpeq 8
3: iload 1
iconst_3
if_icmpeq 8
4: iload 1
iconst_4
if_icmpeq 8
5: new java.security.InvalidAlgorithmParameterException
dup
6: new java.lang.StringBuilder
dup
ldc "Unsupported mode: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
iload 1
iconst_1
if_icmpeq 10
iload 1
iconst_3
if_icmpeq 10
9: iconst_0
goto 11
StackMap locals:
StackMap stack:
10: iconst_1
StackMap locals:
StackMap stack: int
11: istore 5
start local 5 12: aconst_null
astore 6
start local 6 13: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.mech:Lcom/oracle/security/ucrypto/UcryptoMech;
getstatic com.oracle.security.ucrypto.UcryptoMech.CRYPTO_AES_ECB:Lcom/oracle/security/ucrypto/UcryptoMech;
if_acmpne 18
14: aload 3
ifnull 41
15: new java.security.InvalidAlgorithmParameterException
dup
16: ldc "No Parameters for ECB mode"
17: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals: int byte[]
StackMap stack:
aload 3
ifnull 32
19: aload 3
instanceof javax.crypto.spec.IvParameterSpec
ifne 25
20: new java.security.InvalidAlgorithmParameterException
dup
21: new java.lang.StringBuilder
dup
ldc "IvParameterSpec required. Received: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
22: aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
24: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
aload 3
checkcast javax.crypto.spec.IvParameterSpec
invokevirtual javax.crypto.spec.IvParameterSpec.getIV:()[B
astore 6
26: aload 6
arraylength
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.blockSize:I
if_icmpeq 41
27: new java.security.InvalidAlgorithmParameterException
dup
28: new java.lang.StringBuilder
dup
ldc "Wrong IV length: must be "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.blockSize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
29: ldc " bytes long. Received length:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
30: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
31: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
32: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.encrypt:Z
ifeq 38
33: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.blockSize:I
newarray 8
astore 6
34: aload 4
ifnonnull 36
35: invokestatic sun.security.jca.JCAUtil.getSecureRandom:()Ljava/security/SecureRandom;
astore 4
36: StackMap locals:
StackMap stack:
aload 4
aload 6
invokevirtual java.security.SecureRandom.nextBytes:([B)V
37: goto 41
38: StackMap locals:
StackMap stack:
new java.security.InvalidAlgorithmParameterException
dup
39: ldc "Parameters required for decryption"
40: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
41: StackMap locals:
StackMap stack:
aload 0
iload 5
aload 2
invokeinterface java.security.Key.getEncoded:()[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
aload 6
invokevirtual com.oracle.security.ucrypto.NativeCipher.init:(Z[B[B)V
42: 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 43 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 43 1 opmode I
0 43 2 key Ljava/security/Key;
0 43 3 params Ljava/security/spec/AlgorithmParameterSpec;
0 43 4 random Ljava/security/SecureRandom;
12 43 5 doEncrypt Z
13 43 6 ivBytes [B
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
protected synchronized void engineInit(int, java.security.Key, java.security.AlgorithmParameters, java.security.SecureRandom);
descriptor: (ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
start local 5 1: aload 3
ifnull 6
2: aload 3
ldc Ljavax/crypto/spec/IvParameterSpec;
invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
astore 5
3: goto 6
StackMap locals: com.oracle.security.ucrypto.NativeCipher int java.security.Key java.security.AlgorithmParameters java.security.SecureRandom java.security.spec.AlgorithmParameterSpec
StackMap stack: java.security.spec.InvalidParameterSpecException
4: astore 6
start local 6 5: new java.security.InvalidAlgorithmParameterException
dup
aload 6
invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 6 6: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 2
aload 5
aload 4
invokevirtual com.oracle.security.ucrypto.NativeCipher.engineInit:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
7: return
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/oracle/security/ucrypto/NativeCipher;
0 8 1 opmode I
0 8 2 key Ljava/security/Key;
0 8 3 params Ljava/security/AlgorithmParameters;
0 8 4 random Ljava/security/SecureRandom;
1 8 5 spec Ljava/security/spec/AlgorithmParameterSpec;
5 6 6 iaps Ljava/security/spec/InvalidParameterSpecException;
Exception table:
from to target type
2 3 4 Class java.security.spec.InvalidParameterSpecException
Exceptions:
throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
opmode
key
params
random
protected synchronized byte[] engineUpdate(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 3
iconst_0
invokevirtual com.oracle.security.ucrypto.NativeCipher.getOutputSizeByOperation:(IZ)I
newarray 8
astore 4
start local 4 1: aload 0
aload 1
iload 2
iload 3
aload 4
iconst_0
invokevirtual com.oracle.security.ucrypto.NativeCipher.update:([BII[BI)I
istore 5
start local 5 2: iload 5
ifne 4
3: aconst_null
areturn
4: StackMap locals: byte[] int
StackMap stack:
aload 4
arraylength
iload 5
if_icmpeq 6
5: aload 4
iload 5
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 4
6: StackMap locals:
StackMap stack:
aload 4
areturn
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 7 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 7 1 in [B
0 7 2 ofs I
0 7 3 len I
1 7 4 out [B
2 7 5 n I
MethodParameters:
Name Flags
in
ofs
len
protected synchronized int engineUpdate(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=6, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
iload 3
iconst_0
invokevirtual com.oracle.security.ucrypto.NativeCipher.getOutputSizeByOperation:(IZ)I
istore 6
start local 6 1: aload 4
arraylength
iload 5
isub
iload 6
if_icmpge 3
2: new javax.crypto.ShortBufferException
dup
new java.lang.StringBuilder
dup
ldc "min "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "-byte buffer needed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial javax.crypto.ShortBufferException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 2
iload 3
aload 4
iload 5
invokevirtual com.oracle.security.ucrypto.NativeCipher.update:([BII[BI)I
ireturn
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 4 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 4 1 in [B
0 4 2 inOfs I
0 4 3 inLen I
0 4 4 out [B
0 4 5 outOfs I
1 4 6 min I
Exceptions:
throws javax.crypto.ShortBufferException
MethodParameters:
Name Flags
in
inOfs
inLen
out
outOfs
protected synchronized void engineUpdateAAD(byte[], int, int);
descriptor: ([BII)V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.IllegalStateException
dup
ldc "No AAD can be supplied"
invokespecial java.lang.IllegalStateException.<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 1 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 1 1 src [B
0 1 2 ofs I
0 1 3 len I
Exceptions:
throws java.lang.IllegalStateException
MethodParameters:
Name Flags
src
ofs
len
protected void engineUpdateAAD(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.IllegalStateException
dup
ldc "No AAD can be supplied"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 1 1 src Ljava/nio/ByteBuffer;
Exceptions:
throws java.lang.IllegalStateException
MethodParameters:
Name Flags
src
protected synchronized byte[] engineDoFinal(byte[], int, int);
descriptor: ([BII)[B
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 3
iconst_1
invokevirtual com.oracle.security.ucrypto.NativeCipher.getOutputSizeByOperation:(IZ)I
newarray 8
astore 4
start local 4 1: aload 0
aload 1
iload 2
iload 3
aload 4
iconst_0
invokevirtual com.oracle.security.ucrypto.NativeCipher.engineDoFinal:([BII[BI)I
istore 5
start local 5 2: aload 4
arraylength
iload 5
if_icmpeq 4
3: aload 4
iload 5
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 4
4: StackMap locals: byte[] int
StackMap stack:
aload 4
5: areturn
end local 5 6: StackMap locals: com.oracle.security.ucrypto.NativeCipher byte[] int int byte[]
StackMap stack: javax.crypto.ShortBufferException
astore 5
start local 5 7: new com.oracle.security.ucrypto.UcryptoException
dup
ldc "Internal Error"
aload 5
invokespecial com.oracle.security.ucrypto.UcryptoException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
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/oracle/security/ucrypto/NativeCipher;
0 8 1 in [B
0 8 2 ofs I
0 8 3 len I
1 8 4 out [B
2 6 5 k I
7 8 5 e Ljavax/crypto/ShortBufferException;
Exception table:
from to target type
1 5 6 Class javax.crypto.ShortBufferException
Exceptions:
throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
in
ofs
len
protected synchronized int engineDoFinal(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=6, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iconst_0
istore 6
start local 6 1: aload 0
iload 3
iconst_1
invokevirtual com.oracle.security.ucrypto.NativeCipher.getOutputSizeByOperation:(IZ)I
istore 7
start local 7 2: aload 4
arraylength
iload 5
isub
iload 7
if_icmpge 4
3: new javax.crypto.ShortBufferException
dup
new java.lang.StringBuilder
dup
ldc "min "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "-byte buffer needed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial javax.crypto.ShortBufferException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: int int
StackMap stack:
iload 3
ifle 7
5: aload 0
aload 1
iload 2
iload 3
aload 4
iload 5
invokevirtual com.oracle.security.ucrypto.NativeCipher.update:([BII[BI)I
istore 6
6: iload 5
iload 6
iadd
istore 5
7: StackMap locals:
StackMap stack:
iload 6
aload 0
aload 4
iload 5
invokevirtual com.oracle.security.ucrypto.NativeCipher.doFinal:([BI)I
iadd
istore 6
8: iload 6
ireturn
end local 7 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 9 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 9 1 in [B
0 9 2 inOfs I
0 9 3 inLen I
0 9 4 out [B
0 9 5 outOfs I
1 9 6 k I
2 9 7 min I
Exceptions:
throws javax.crypto.ShortBufferException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
in
inOfs
inLen
out
outOfs
protected synchronized byte[] engineWrap(java.security.Key);
descriptor: (Ljava/security/Key;)[B
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
invokeinterface java.security.Key.getEncoded:()[B
astore 3
start local 3 2: aload 3
ifnull 3
aload 3
arraylength
ifne 4
3: StackMap locals: byte[] byte[]
StackMap stack:
new java.security.InvalidKeyException
dup
ldc "Cannot get an encoding of the key to be wrapped"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 3
iconst_0
aload 3
arraylength
invokevirtual com.oracle.security.ucrypto.NativeCipher.engineDoFinal:([BII)[B
astore 2
end local 3 5: goto 8
StackMap locals: com.oracle.security.ucrypto.NativeCipher java.security.Key byte[]
StackMap stack: javax.crypto.BadPaddingException
6: astore 3
start local 3 7: new com.oracle.security.ucrypto.UcryptoException
dup
ldc "Internal Error"
aload 3
invokespecial com.oracle.security.ucrypto.UcryptoException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 8: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 9 1 key Ljava/security/Key;
1 9 2 result [B
2 5 3 encodedKey [B
7 8 3 e Ljavax/crypto/BadPaddingException;
Exception table:
from to target type
1 5 6 Class javax.crypto.BadPaddingException
Exceptions:
throws javax.crypto.IllegalBlockSizeException, java.security.InvalidKeyException
MethodParameters:
Name Flags
key
protected synchronized java.security.Key engineUnwrap(byte[], java.lang.String, int);
descriptor: ([BLjava/lang/String;I)Ljava/security/Key;
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iconst_0
1: aload 1
arraylength
2: invokevirtual com.oracle.security.ucrypto.NativeCipher.engineDoFinal:([BII)[B
astore 4
start local 4 3: goto 7
end local 4 StackMap locals:
StackMap stack: java.lang.Exception
4: astore 5
start local 5 5: new java.security.InvalidKeyException
dup
invokespecial java.security.InvalidKeyException.<init>:()V
aload 5
invokevirtual java.security.InvalidKeyException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
6: checkcast java.security.InvalidKeyException
athrow
end local 5 start local 4 7: StackMap locals: byte[]
StackMap stack:
iload 3
aload 4
aload 2
invokestatic com.oracle.security.ucrypto.NativeCipher.constructKey:(I[BLjava/lang/String;)Ljava/security/Key;
areturn
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/oracle/security/ucrypto/NativeCipher;
0 8 1 wrappedKey [B
0 8 2 wrappedKeyAlgorithm Ljava/lang/String;
0 8 3 wrappedKeyType I
3 4 4 encodedKey [B
7 8 4 encodedKey [B
5 7 5 e Ljava/lang/Exception;
Exception table:
from to target type
0 3 4 Class java.lang.Exception
Exceptions:
throws java.security.InvalidKeyException, java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
wrappedKey
wrappedKeyAlgorithm
wrappedKeyType
final int checkKey(java.security.Key);
descriptor: (Ljava/security/Key;)I
flags: (0x0010) ACC_FINAL
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
invokeinterface java.security.Key.getEncoded:()[B
ifnonnull 2
1: StackMap locals:
StackMap stack:
new java.security.InvalidKeyException
dup
ldc "Key cannot be null"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.keyAlgo:Ljava/lang/String;
aload 1
invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 6
3: new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Key algorithm must be "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.keyAlgo:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
ldc "RAW"
aload 1
invokeinterface java.security.Key.getFormat:()Ljava/lang/String;
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 8
7: new java.security.InvalidKeyException
dup
ldc "Key format must be RAW"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.security.Key.getEncoded:()[B
arraylength
istore 2
start local 2 9: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.fixedKeySize:I
iconst_m1
if_icmpne 14
10: iload 2
bipush 16
if_icmpeq 18
iload 2
bipush 24
if_icmpeq 18
iload 2
bipush 32
if_icmpeq 18
11: new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Key size is not valid. Got key length of: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
12: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: int
StackMap stack:
iload 2
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.fixedKeySize:I
if_icmpeq 18
15: new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Only "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.fixedKeySize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
16: ldc "-byte keys are accepted. Got: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 19 1 key Ljava/security/Key;
9 19 2 keyLen I
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
protected void reset(boolean);
descriptor: (Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
putfield com.oracle.security.ucrypto.NativeCipher.initialized:Z
1: aload 0
iconst_0
putfield com.oracle.security.ucrypto.NativeCipher.bytesBuffered:I
2: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.pCtxt:Lcom/oracle/security/ucrypto/CipherContextRef;
ifnull 5
3: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.pCtxt:Lcom/oracle/security/ucrypto/CipherContextRef;
iload 1
invokevirtual com.oracle.security.ucrypto.CipherContextRef.dispose:(Z)V
4: aload 0
aconst_null
putfield com.oracle.security.ucrypto.NativeCipher.pCtxt:Lcom/oracle/security/ucrypto/CipherContextRef;
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 6 1 doCancel Z
MethodParameters:
Name Flags
doCancel
protected static native long nativeInit(int, boolean, byte[], byte[], int, byte[]);
descriptor: (IZ[B[BI[B)J
flags: (0x010c) ACC_PROTECTED, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
mech
encrypt
key
iv
tagLen
aad
private static native int nativeUpdate(long, boolean, byte[], int, int, byte[], int);
descriptor: (JZ[BII[BI)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
pContext
encrypt
in
inOfs
inLen
out
outOfs
static native int nativeFinal(long, boolean, byte[], int);
descriptor: (JZ[BI)I
flags: (0x0108) ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
pContext
encrypt
out
outOfs
protected void ensureInitialized();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.initialized:Z
ifne 4
1: aload 0
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.encrypt:Z
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.keyValue:[B
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.iv:[B
invokevirtual com.oracle.security.ucrypto.NativeCipher.init:(Z[B[B)V
2: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.initialized:Z
ifne 4
3: new com.oracle.security.ucrypto.UcryptoException
dup
ldc "Cannot initialize Cipher"
invokespecial com.oracle.security.ucrypto.UcryptoException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/security/ucrypto/NativeCipher;
protected int getOutputSizeByOperation(int, boolean);
descriptor: (IZ)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifgt 2
1: iconst_0
istore 1
2: StackMap locals:
StackMap stack:
iload 2
ifne 4
iload 1
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iload 1
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.bytesBuffered:I
iadd
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 5 1 inLen I
0 5 2 isDoFinal Z
MethodParameters:
Name Flags
inLen
isDoFinal
protected void init(boolean, byte[], byte[]);
descriptor: (Z[B[B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iconst_1
invokevirtual com.oracle.security.ucrypto.NativeCipher.reset:(Z)V
1: aload 0
iload 1
putfield com.oracle.security.ucrypto.NativeCipher.encrypt:Z
2: aload 0
aload 2
putfield com.oracle.security.ucrypto.NativeCipher.keyValue:[B
3: aload 0
aload 3
putfield com.oracle.security.ucrypto.NativeCipher.iv:[B
4: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.mech:Lcom/oracle/security/ucrypto/UcryptoMech;
invokevirtual com.oracle.security.ucrypto.UcryptoMech.value:()I
iload 1
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.keyValue:[B
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.iv:[B
iconst_0
aconst_null
invokestatic com.oracle.security.ucrypto.NativeCipher.nativeInit:(IZ[B[BI[B)J
lstore 4
start local 4 5: aload 0
lload 4
lconst_0
lcmp
ifeq 6
iconst_1
goto 7
StackMap locals: com.oracle.security.ucrypto.NativeCipher int byte[] byte[] long
StackMap stack: com.oracle.security.ucrypto.NativeCipher
6: iconst_0
StackMap locals: com.oracle.security.ucrypto.NativeCipher int byte[] byte[] long
StackMap stack: com.oracle.security.ucrypto.NativeCipher int
7: putfield com.oracle.security.ucrypto.NativeCipher.initialized:Z
8: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.initialized:Z
ifeq 11
9: aload 0
new com.oracle.security.ucrypto.CipherContextRef
dup
aload 0
lload 4
iload 1
invokespecial com.oracle.security.ucrypto.CipherContextRef.<init>:(Lcom/oracle/security/ucrypto/NativeCipher;JZ)V
putfield com.oracle.security.ucrypto.NativeCipher.pCtxt:Lcom/oracle/security/ucrypto/CipherContextRef;
10: goto 12
11: StackMap locals:
StackMap stack:
new com.oracle.security.ucrypto.UcryptoException
dup
ldc "Cannot initialize Cipher"
invokespecial com.oracle.security.ucrypto.UcryptoException.<init>:(Ljava/lang/String;)V
athrow
12: 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 13 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 13 1 encrypt Z
0 13 2 keyVal [B
0 13 3 ivVal [B
5 13 4 pCtxtVal J
MethodParameters:
Name Flags
encrypt
keyVal
ivVal
private int update(byte[], int, int, byte[], int);
descriptor: ([BII[BI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokevirtual com.oracle.security.ucrypto.NativeCipher.ensureInitialized:()V
1: iload 3
ifgt 2
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.pCtxt:Lcom/oracle/security/ucrypto/CipherContextRef;
getfield com.oracle.security.ucrypto.CipherContextRef.id:J
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.encrypt:Z
aload 1
iload 2
iload 3
aload 4
iload 5
invokestatic com.oracle.security.ucrypto.NativeCipher.nativeUpdate:(JZ[BII[BI)I
istore 6
start local 6 3: iload 6
ifge 6
4: aload 0
iconst_0
invokevirtual com.oracle.security.ucrypto.NativeCipher.reset:(Z)V
5: new com.oracle.security.ucrypto.UcryptoException
dup
iload 6
ineg
invokespecial com.oracle.security.ucrypto.UcryptoException.<init>:(I)V
athrow
6: StackMap locals: int
StackMap stack:
aload 0
dup
getfield com.oracle.security.ucrypto.NativeCipher.bytesBuffered:I
iload 3
iload 6
isub
iadd
putfield com.oracle.security.ucrypto.NativeCipher.bytesBuffered:I
7: iload 6
ireturn
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/oracle/security/ucrypto/NativeCipher;
0 8 1 in [B
0 8 2 inOfs I
0 8 3 inLen I
0 8 4 out [B
0 8 5 outOfs I
3 8 6 k I
MethodParameters:
Name Flags
in
inOfs
inLen
out
outOfs
private int doFinal(byte[], int);
descriptor: ([BI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.security.ucrypto.NativeCipher.ensureInitialized:()V
1: aload 0
getfield com.oracle.security.ucrypto.NativeCipher.pCtxt:Lcom/oracle/security/ucrypto/CipherContextRef;
getfield com.oracle.security.ucrypto.CipherContextRef.id:J
aload 0
getfield com.oracle.security.ucrypto.NativeCipher.encrypt:Z
aload 1
iload 2
invokestatic com.oracle.security.ucrypto.NativeCipher.nativeFinal:(JZ[BI)I
istore 3
start local 3 2: iload 3
ifge 9
3: iload 3
ineg
invokestatic com.oracle.security.ucrypto.UcryptoException.getErrorMessage:(I)Ljava/lang/String;
astore 4
start local 4 4: aload 4
ldc "_LEN_RANGE"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 6
5: new javax.crypto.IllegalBlockSizeException
dup
aload 4
invokespecial javax.crypto.IllegalBlockSizeException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: int java.lang.String
StackMap stack:
aload 4
ldc "_DATA_INVALID"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 8
7: new javax.crypto.BadPaddingException
dup
aload 4
invokespecial javax.crypto.BadPaddingException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
new com.oracle.security.ucrypto.UcryptoException
dup
iload 3
ineg
invokespecial com.oracle.security.ucrypto.UcryptoException.<init>:(I)V
athrow
end local 4 9: StackMap locals:
StackMap stack:
iload 3
istore 6
10: aload 0
iconst_0
invokevirtual com.oracle.security.ucrypto.NativeCipher.reset:(Z)V
11: iload 6
ireturn
end local 3 12: StackMap locals: com.oracle.security.ucrypto.NativeCipher byte[] int
StackMap stack: java.lang.Throwable
astore 5
13: aload 0
iconst_0
invokevirtual com.oracle.security.ucrypto.NativeCipher.reset:(Z)V
14: aload 5
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/security/ucrypto/NativeCipher;
0 15 1 out [B
0 15 2 outOfs I
2 12 3 k I
4 9 4 cause Ljava/lang/String;
Exception table:
from to target type
0 10 12 any
Exceptions:
throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
MethodParameters:
Name Flags
out
outOfs
}
SourceFile: "NativeCipher.java"
NestMembers:
com.oracle.security.ucrypto.NativeCipher$AesCbcNoPadding com.oracle.security.ucrypto.NativeCipher$AesCfb128NoPadding com.oracle.security.ucrypto.NativeCipher$AesCtrNoPadding com.oracle.security.ucrypto.NativeCipher$AesEcbNoPadding
InnerClasses:
public final AesCbcNoPadding = com.oracle.security.ucrypto.NativeCipher$AesCbcNoPadding of com.oracle.security.ucrypto.NativeCipher
public final AesCfb128NoPadding = com.oracle.security.ucrypto.NativeCipher$AesCfb128NoPadding of com.oracle.security.ucrypto.NativeCipher
public final AesCtrNoPadding = com.oracle.security.ucrypto.NativeCipher$AesCtrNoPadding of com.oracle.security.ucrypto.NativeCipher
public final AesEcbNoPadding = com.oracle.security.ucrypto.NativeCipher$AesEcbNoPadding of com.oracle.security.ucrypto.NativeCipher