public final class com.sun.crypto.provider.DHKeyFactory extends java.security.KeyFactorySpi
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.crypto.provider.DHKeyFactory
super_class: java.security.KeyFactorySpi
{
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
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/crypto/provider/DHKeyFactory;
protected java.security.PublicKey engineGeneratePublic(java.security.spec.KeySpec);
descriptor: (Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof javax.crypto.spec.DHPublicKeySpec
ifeq 7
1: aload 1
checkcast javax.crypto.spec.DHPublicKeySpec
astore 2
start local 2 2: new com.sun.crypto.provider.DHPublicKey
dup
aload 2
invokevirtual javax.crypto.spec.DHPublicKeySpec.getY:()Ljava/math/BigInteger;
3: aload 2
invokevirtual javax.crypto.spec.DHPublicKeySpec.getP:()Ljava/math/BigInteger;
4: aload 2
invokevirtual javax.crypto.spec.DHPublicKeySpec.getG:()Ljava/math/BigInteger;
5: invokespecial com.sun.crypto.provider.DHPublicKey.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
6: areturn
end local 2 7: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.spec.X509EncodedKeySpec
ifeq 12
8: new com.sun.crypto.provider.DHPublicKey
dup
9: aload 1
checkcast java.security.spec.X509EncodedKeySpec
invokevirtual java.security.spec.X509EncodedKeySpec.getEncoded:()[B
10: invokespecial com.sun.crypto.provider.DHPublicKey.<init>:([B)V
11: areturn
12: StackMap locals:
StackMap stack:
new java.security.spec.InvalidKeySpecException
dup
13: ldc "Inappropriate key specification"
14: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack: java.security.InvalidKeyException
pop
16: new java.security.spec.InvalidKeySpecException
dup
17: ldc "Inappropriate key specification"
18: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/crypto/provider/DHKeyFactory;
0 19 1 keySpec Ljava/security/spec/KeySpec;
2 7 2 dhPubKeySpec Ljavax/crypto/spec/DHPublicKeySpec;
Exception table:
from to target type
0 6 15 Class java.security.InvalidKeyException
7 11 15 Class java.security.InvalidKeyException
12 15 15 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=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof javax.crypto.spec.DHPrivateKeySpec
ifeq 7
1: aload 1
checkcast javax.crypto.spec.DHPrivateKeySpec
astore 2
start local 2 2: new com.sun.crypto.provider.DHPrivateKey
dup
aload 2
invokevirtual javax.crypto.spec.DHPrivateKeySpec.getX:()Ljava/math/BigInteger;
3: aload 2
invokevirtual javax.crypto.spec.DHPrivateKeySpec.getP:()Ljava/math/BigInteger;
4: aload 2
invokevirtual javax.crypto.spec.DHPrivateKeySpec.getG:()Ljava/math/BigInteger;
5: invokespecial com.sun.crypto.provider.DHPrivateKey.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
6: areturn
end local 2 7: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.spec.PKCS8EncodedKeySpec
ifeq 12
8: new com.sun.crypto.provider.DHPrivateKey
dup
9: aload 1
checkcast java.security.spec.PKCS8EncodedKeySpec
invokevirtual java.security.spec.PKCS8EncodedKeySpec.getEncoded:()[B
10: invokespecial com.sun.crypto.provider.DHPrivateKey.<init>:([B)V
11: areturn
12: StackMap locals:
StackMap stack:
new java.security.spec.InvalidKeySpecException
dup
13: ldc "Inappropriate key specification"
14: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack: java.security.InvalidKeyException
pop
16: new java.security.spec.InvalidKeySpecException
dup
17: ldc "Inappropriate key specification"
18: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/crypto/provider/DHKeyFactory;
0 19 1 keySpec Ljava/security/spec/KeySpec;
2 7 2 dhPrivKeySpec Ljavax/crypto/spec/DHPrivateKeySpec;
Exception table:
from to target type
0 6 15 Class java.security.InvalidKeyException
7 11 15 Class java.security.InvalidKeyException
12 15 15 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=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof javax.crypto.interfaces.DHPublicKey
ifeq 14
1: ldc Ljavax/crypto/spec/DHPublicKeySpec;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 9
2: aload 1
checkcast javax.crypto.interfaces.DHPublicKey
3: astore 4
start local 4 4: aload 4
invokeinterface javax.crypto.interfaces.DHPublicKey.getParams:()Ljavax/crypto/spec/DHParameterSpec;
astore 3
start local 3 5: aload 2
new javax.crypto.spec.DHPublicKeySpec
dup
aload 4
invokeinterface javax.crypto.interfaces.DHPublicKey.getY:()Ljava/math/BigInteger;
6: aload 3
invokevirtual javax.crypto.spec.DHParameterSpec.getP:()Ljava/math/BigInteger;
7: aload 3
invokevirtual javax.crypto.spec.DHParameterSpec.getG:()Ljava/math/BigInteger;
invokespecial javax.crypto.spec.DHPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
8: invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.spec.KeySpec
areturn
end local 4 end local 3 9: StackMap locals:
StackMap stack:
ldc Ljava/security/spec/X509EncodedKeySpec;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 11
10: 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
areturn
11: StackMap locals:
StackMap stack:
new java.security.spec.InvalidKeySpecException
dup
12: ldc "Inappropriate key specification"
13: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
aload 1
instanceof javax.crypto.interfaces.DHPrivateKey
ifeq 28
15: ldc Ljavax/crypto/spec/DHPrivateKeySpec;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 23
16: aload 1
checkcast javax.crypto.interfaces.DHPrivateKey
17: astore 4
start local 4 18: aload 4
invokeinterface javax.crypto.interfaces.DHPrivateKey.getParams:()Ljavax/crypto/spec/DHParameterSpec;
astore 3
start local 3 19: aload 2
new javax.crypto.spec.DHPrivateKeySpec
dup
aload 4
invokeinterface javax.crypto.interfaces.DHPrivateKey.getX:()Ljava/math/BigInteger;
20: aload 3
invokevirtual javax.crypto.spec.DHParameterSpec.getP:()Ljava/math/BigInteger;
21: aload 3
invokevirtual javax.crypto.spec.DHParameterSpec.getG:()Ljava/math/BigInteger;
invokespecial javax.crypto.spec.DHPrivateKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
22: invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.spec.KeySpec
areturn
end local 4 end local 3 23: StackMap locals:
StackMap stack:
ldc Ljava/security/spec/PKCS8EncodedKeySpec;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 25
24: 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
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:
new java.security.spec.InvalidKeySpecException
dup
ldc "Inappropriate key type"
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 29 0 this Lcom/sun/crypto/provider/DHKeyFactory;
0 29 1 key Ljava/security/Key;
0 29 2 keySpec Ljava/lang/Class<TT;>;
5 9 3 params Ljavax/crypto/spec/DHParameterSpec;
19 23 3 params Ljavax/crypto/spec/DHParameterSpec;
4 9 4 dhPubKey Ljavax/crypto/interfaces/DHPublicKey;
18 23 4 dhPrivKey Ljavax/crypto/interfaces/DHPrivateKey;
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=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof javax.crypto.interfaces.DHPublicKey
ifeq 8
1: aload 1
instanceof com.sun.crypto.provider.DHPublicKey
ifeq 4
2: aload 1
3: areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc Ljavax/crypto/spec/DHPublicKeySpec;
invokevirtual com.sun.crypto.provider.DHKeyFactory.engineGetKeySpec:(Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
checkcast javax.crypto.spec.DHPublicKeySpec
5: astore 2
start local 2 6: aload 0
aload 2
invokevirtual com.sun.crypto.provider.DHKeyFactory.engineGeneratePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
7: areturn
end local 2 8: StackMap locals:
StackMap stack:
aload 1
instanceof javax.crypto.interfaces.DHPrivateKey
ifeq 16
9: aload 1
instanceof com.sun.crypto.provider.DHPrivateKey
ifeq 12
10: aload 1
11: areturn
12: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc Ljavax/crypto/spec/DHPrivateKeySpec;
invokevirtual com.sun.crypto.provider.DHKeyFactory.engineGetKeySpec:(Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
checkcast javax.crypto.spec.DHPrivateKeySpec
13: astore 2
start local 2 14: aload 0
aload 2
invokevirtual com.sun.crypto.provider.DHKeyFactory.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
pop
18: new java.security.InvalidKeyException
dup
ldc "Cannot translate key"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/crypto/provider/DHKeyFactory;
0 19 1 key Ljava/security/Key;
6 8 2 dhPubKeySpec Ljavax/crypto/spec/DHPublicKeySpec;
14 16 2 dhPrivKeySpec Ljavax/crypto/spec/DHPrivateKeySpec;
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: "DHKeyFactory.java"