public class sun.security.provider.DSAKeyFactory extends java.security.KeyFactorySpi
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.provider.DSAKeyFactory
super_class: java.security.KeyFactorySpi
{
static final boolean SERIAL_INTEROP;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final java.lang.String SERIAL_PROP;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "sun.security.key.serial.interop"
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: new sun.security.action.GetPropertyAction
dup
ldc "sun.security.key.serial.interop"
aconst_null
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;Ljava/lang/String;)V
1: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
astore 0
start local 0 2: ldc "true"
aload 0
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
putstatic sun.security.provider.DSAKeyFactory.SERIAL_INTEROP:Z
end local 0 3: return
LocalVariableTable:
Start End Slot Name Signature
2 3 0 prop Ljava/lang/String;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.security.KeyFactorySpi.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/provider/DSAKeyFactory;
protected java.security.PublicKey engineGeneratePublic(java.security.spec.KeySpec);
descriptor: (Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.security.spec.DSAPublicKeySpec
ifeq 15
1: aload 1
checkcast java.security.spec.DSAPublicKeySpec
astore 2
start local 2 2: getstatic sun.security.provider.DSAKeyFactory.SERIAL_INTEROP:Z
ifeq 9
3: new sun.security.provider.DSAPublicKey
dup
aload 2
invokevirtual java.security.spec.DSAPublicKeySpec.getY:()Ljava/math/BigInteger;
4: aload 2
invokevirtual java.security.spec.DSAPublicKeySpec.getP:()Ljava/math/BigInteger;
5: aload 2
invokevirtual java.security.spec.DSAPublicKeySpec.getQ:()Ljava/math/BigInteger;
6: aload 2
invokevirtual java.security.spec.DSAPublicKeySpec.getG:()Ljava/math/BigInteger;
7: invokespecial sun.security.provider.DSAPublicKey.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
8: areturn
9: StackMap locals: java.security.spec.DSAPublicKeySpec
StackMap stack:
new sun.security.provider.DSAPublicKeyImpl
dup
aload 2
invokevirtual java.security.spec.DSAPublicKeySpec.getY:()Ljava/math/BigInteger;
10: aload 2
invokevirtual java.security.spec.DSAPublicKeySpec.getP:()Ljava/math/BigInteger;
11: aload 2
invokevirtual java.security.spec.DSAPublicKeySpec.getQ:()Ljava/math/BigInteger;
12: aload 2
invokevirtual java.security.spec.DSAPublicKeySpec.getG:()Ljava/math/BigInteger;
13: invokespecial sun.security.provider.DSAPublicKeyImpl.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
14: areturn
end local 2 15: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.spec.X509EncodedKeySpec
ifeq 25
16: getstatic sun.security.provider.DSAKeyFactory.SERIAL_INTEROP:Z
ifeq 21
17: new sun.security.provider.DSAPublicKey
dup
18: aload 1
checkcast java.security.spec.X509EncodedKeySpec
invokevirtual java.security.spec.X509EncodedKeySpec.getEncoded:()[B
19: invokespecial sun.security.provider.DSAPublicKey.<init>:([B)V
20: areturn
21: StackMap locals:
StackMap stack:
new sun.security.provider.DSAPublicKeyImpl
dup
22: aload 1
checkcast java.security.spec.X509EncodedKeySpec
invokevirtual java.security.spec.X509EncodedKeySpec.getEncoded:()[B
23: invokespecial sun.security.provider.DSAPublicKeyImpl.<init>:([B)V
24: areturn
25: StackMap locals:
StackMap stack:
new java.security.spec.InvalidKeySpecException
dup
26: ldc "Inappropriate key specification"
27: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals:
StackMap stack: java.security.InvalidKeyException
astore 2
start local 2 29: new java.security.spec.InvalidKeySpecException
dup
30: new java.lang.StringBuilder
dup
ldc "Inappropriate key specification: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.security.InvalidKeyException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
31: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lsun/security/provider/DSAKeyFactory;
0 32 1 keySpec Ljava/security/spec/KeySpec;
2 15 2 dsaPubKeySpec Ljava/security/spec/DSAPublicKeySpec;
29 32 2 e Ljava/security/InvalidKeyException;
Exception table:
from to target type
0 8 28 Class java.security.InvalidKeyException
9 14 28 Class java.security.InvalidKeyException
15 20 28 Class java.security.InvalidKeyException
21 24 28 Class java.security.InvalidKeyException
25 28 28 Class java.security.InvalidKeyException
Exceptions:
throws java.security.spec.InvalidKeySpecException
MethodParameters:
Name Flags
keySpec
protected java.security.PrivateKey engineGeneratePrivate(java.security.spec.KeySpec);
descriptor: (Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.security.spec.DSAPrivateKeySpec
ifeq 8
1: aload 1
checkcast java.security.spec.DSAPrivateKeySpec
astore 2
start local 2 2: new sun.security.provider.DSAPrivateKey
dup
aload 2
invokevirtual java.security.spec.DSAPrivateKeySpec.getX:()Ljava/math/BigInteger;
3: aload 2
invokevirtual java.security.spec.DSAPrivateKeySpec.getP:()Ljava/math/BigInteger;
4: aload 2
invokevirtual java.security.spec.DSAPrivateKeySpec.getQ:()Ljava/math/BigInteger;
5: aload 2
invokevirtual java.security.spec.DSAPrivateKeySpec.getG:()Ljava/math/BigInteger;
6: invokespecial sun.security.provider.DSAPrivateKey.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
7: areturn
end local 2 8: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.spec.PKCS8EncodedKeySpec
ifeq 13
9: new sun.security.provider.DSAPrivateKey
dup
10: aload 1
checkcast java.security.spec.PKCS8EncodedKeySpec
invokevirtual java.security.spec.PKCS8EncodedKeySpec.getEncoded:()[B
11: invokespecial sun.security.provider.DSAPrivateKey.<init>:([B)V
12: areturn
13: StackMap locals:
StackMap stack:
new java.security.spec.InvalidKeySpecException
dup
14: ldc "Inappropriate key specification"
15: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack: java.security.InvalidKeyException
astore 2
start local 2 17: new java.security.spec.InvalidKeySpecException
dup
18: new java.lang.StringBuilder
dup
ldc "Inappropriate key specification: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.security.InvalidKeyException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
19: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/security/provider/DSAKeyFactory;
0 20 1 keySpec Ljava/security/spec/KeySpec;
2 8 2 dsaPrivKeySpec Ljava/security/spec/DSAPrivateKeySpec;
17 20 2 e Ljava/security/InvalidKeyException;
Exception table:
from to target type
0 7 16 Class java.security.InvalidKeyException
8 12 16 Class java.security.InvalidKeyException
13 16 16 Class java.security.InvalidKeyException
Exceptions:
throws java.security.spec.InvalidKeySpecException
MethodParameters:
Name Flags
keySpec
protected <T extends java.security.spec.KeySpec> T engineGetKeySpec(java.security.Key, java.lang.Class<T>);
descriptor: (Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof java.security.interfaces.DSAPublicKey
ifeq 21
1: ldc "java.security.spec.DSAPublicKeySpec"
2: invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 3: ldc "java.security.spec.X509EncodedKeySpec"
4: invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 5
start local 5 5: aload 4
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 15
6: aload 1
checkcast java.security.interfaces.DSAPublicKey
7: astore 6
start local 6 8: aload 6
invokeinterface java.security.interfaces.DSAPublicKey.getParams:()Ljava/security/interfaces/DSAParams;
astore 3
start local 3 9: aload 2
new java.security.spec.DSAPublicKeySpec
dup
aload 6
invokeinterface java.security.interfaces.DSAPublicKey.getY:()Ljava/math/BigInteger;
10: aload 3
invokeinterface java.security.interfaces.DSAParams.getP:()Ljava/math/BigInteger;
11: aload 3
invokeinterface java.security.interfaces.DSAParams.getQ:()Ljava/math/BigInteger;
12: aload 3
invokeinterface java.security.interfaces.DSAParams.getG:()Ljava/math/BigInteger;
invokespecial java.security.spec.DSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
13: invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.spec.KeySpec
14: areturn
end local 6 end local 3 15: StackMap locals: sun.security.provider.DSAKeyFactory java.security.Key java.lang.Class top java.lang.Class java.lang.Class
StackMap stack:
aload 5
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 18
16: aload 2
new java.security.spec.X509EncodedKeySpec
dup
aload 1
invokeinterface java.security.Key.getEncoded:()[B
invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.spec.KeySpec
17: areturn
18: StackMap locals:
StackMap stack:
new java.security.spec.InvalidKeySpecException
dup
19: ldc "Inappropriate key specification"
20: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
end local 5 end local 4 21: StackMap locals: sun.security.provider.DSAKeyFactory java.security.Key java.lang.Class
StackMap stack:
aload 1
instanceof java.security.interfaces.DSAPrivateKey
ifeq 42
22: ldc "java.security.spec.DSAPrivateKeySpec"
23: invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 24: ldc "java.security.spec.PKCS8EncodedKeySpec"
25: invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 5
start local 5 26: aload 4
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 36
27: aload 1
checkcast java.security.interfaces.DSAPrivateKey
28: astore 6
start local 6 29: aload 6
invokeinterface java.security.interfaces.DSAPrivateKey.getParams:()Ljava/security/interfaces/DSAParams;
astore 3
start local 3 30: aload 2
new java.security.spec.DSAPrivateKeySpec
dup
aload 6
invokeinterface java.security.interfaces.DSAPrivateKey.getX:()Ljava/math/BigInteger;
31: aload 3
invokeinterface java.security.interfaces.DSAParams.getP:()Ljava/math/BigInteger;
32: aload 3
invokeinterface java.security.interfaces.DSAParams.getQ:()Ljava/math/BigInteger;
33: aload 3
invokeinterface java.security.interfaces.DSAParams.getG:()Ljava/math/BigInteger;
invokespecial java.security.spec.DSAPrivateKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
34: invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.spec.KeySpec
35: areturn
end local 6 end local 3 36: StackMap locals: sun.security.provider.DSAKeyFactory java.security.Key java.lang.Class top java.lang.Class java.lang.Class
StackMap stack:
aload 5
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 39
37: aload 2
new java.security.spec.PKCS8EncodedKeySpec
dup
aload 1
invokeinterface java.security.Key.getEncoded:()[B
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.spec.KeySpec
38: areturn
39: StackMap locals:
StackMap stack:
new java.security.spec.InvalidKeySpecException
dup
40: ldc "Inappropriate key specification"
41: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
end local 5 end local 4 42: StackMap locals: sun.security.provider.DSAKeyFactory java.security.Key java.lang.Class
StackMap stack:
new java.security.spec.InvalidKeySpecException
dup
ldc "Inappropriate key type"
invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
43: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
astore 4
start local 4 44: new java.security.spec.InvalidKeySpecException
dup
45: new java.lang.StringBuilder
dup
ldc "Unsupported key specification: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.ClassNotFoundException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
46: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lsun/security/provider/DSAKeyFactory;
0 47 1 key Ljava/security/Key;
0 47 2 keySpec Ljava/lang/Class<TT;>;
9 15 3 params Ljava/security/interfaces/DSAParams;
30 36 3 params Ljava/security/interfaces/DSAParams;
3 21 4 dsaPubKeySpec Ljava/lang/Class<*>;
5 21 5 x509KeySpec Ljava/lang/Class<*>;
8 15 6 dsaPubKey Ljava/security/interfaces/DSAPublicKey;
24 42 4 dsaPrivKeySpec Ljava/lang/Class<*>;
26 42 5 pkcs8KeySpec Ljava/lang/Class<*>;
29 36 6 dsaPrivKey Ljava/security/interfaces/DSAPrivateKey;
44 47 4 e Ljava/lang/ClassNotFoundException;
Exception table:
from to target type
0 14 43 Class java.lang.ClassNotFoundException
15 17 43 Class java.lang.ClassNotFoundException
18 35 43 Class java.lang.ClassNotFoundException
36 38 43 Class java.lang.ClassNotFoundException
39 43 43 Class java.lang.ClassNotFoundException
Exceptions:
throws java.security.spec.InvalidKeySpecException
Signature: <T::Ljava/security/spec/KeySpec;>(Ljava/security/Key;Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
key
keySpec
protected java.security.Key engineTranslateKey(java.security.Key);
descriptor: (Ljava/security/Key;)Ljava/security/Key;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.security.interfaces.DSAPublicKey
ifeq 8
1: aload 1
instanceof sun.security.provider.DSAPublicKey
ifeq 4
2: aload 1
3: areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc Ljava/security/spec/DSAPublicKeySpec;
invokevirtual sun.security.provider.DSAKeyFactory.engineGetKeySpec:(Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
checkcast java.security.spec.DSAPublicKeySpec
5: astore 2
start local 2 6: aload 0
aload 2
invokevirtual sun.security.provider.DSAKeyFactory.engineGeneratePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
7: areturn
end local 2 8: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.interfaces.DSAPrivateKey
ifeq 16
9: aload 1
instanceof sun.security.provider.DSAPrivateKey
ifeq 12
10: aload 1
11: areturn
12: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc Ljava/security/spec/DSAPrivateKeySpec;
invokevirtual sun.security.provider.DSAKeyFactory.engineGetKeySpec:(Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
checkcast java.security.spec.DSAPrivateKeySpec
13: astore 2
start local 2 14: aload 0
aload 2
invokevirtual sun.security.provider.DSAKeyFactory.engineGeneratePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
15: areturn
end local 2 16: StackMap locals:
StackMap stack:
new java.security.InvalidKeyException
dup
ldc "Wrong algorithm type"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack: java.security.spec.InvalidKeySpecException
astore 2
start local 2 18: new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Cannot translate key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
19: aload 2
invokevirtual java.security.spec.InvalidKeySpecException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/security/provider/DSAKeyFactory;
0 21 1 key Ljava/security/Key;
6 8 2 dsaPubKeySpec Ljava/security/spec/DSAPublicKeySpec;
14 16 2 dsaPrivKeySpec Ljava/security/spec/DSAPrivateKeySpec;
18 21 2 e Ljava/security/spec/InvalidKeySpecException;
Exception table:
from to target type
0 3 17 Class java.security.spec.InvalidKeySpecException
4 7 17 Class java.security.spec.InvalidKeySpecException
8 11 17 Class java.security.spec.InvalidKeySpecException
12 15 17 Class java.security.spec.InvalidKeySpecException
16 17 17 Class java.security.spec.InvalidKeySpecException
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
}
SourceFile: "DSAKeyFactory.java"