public class org.bouncycastle.jce.provider.JCEElGamalPublicKey implements org.bouncycastle.jce.interfaces.ElGamalPublicKey, javax.crypto.interfaces.DHPublicKey
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.jce.provider.JCEElGamalPublicKey
super_class: java.lang.Object
{
static final long serialVersionUID;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 8712728417091216948
private java.math.BigInteger y;
descriptor: Ljava/math/BigInteger;
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.jce.spec.ElGamalParameterSpec elSpec;
descriptor: Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
flags: (0x0002) ACC_PRIVATE
void <init>(org.bouncycastle.jce.spec.ElGamalPublicKeySpec);
descriptor: (Lorg/bouncycastle/jce/spec/ElGamalPublicKeySpec;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokevirtual org.bouncycastle.jce.spec.ElGamalPublicKeySpec.getY:()Ljava/math/BigInteger;
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.y:Ljava/math/BigInteger;
2: aload 0
new org.bouncycastle.jce.spec.ElGamalParameterSpec
dup
aload 1
invokevirtual org.bouncycastle.jce.spec.ElGamalPublicKeySpec.getParams:()Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
invokevirtual org.bouncycastle.jce.spec.ElGamalParameterSpec.getP:()Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.jce.spec.ElGamalPublicKeySpec.getParams:()Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
invokevirtual org.bouncycastle.jce.spec.ElGamalParameterSpec.getG:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.jce.spec.ElGamalParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
0 4 1 spec Lorg/bouncycastle/jce/spec/ElGamalPublicKeySpec;
MethodParameters:
Name Flags
spec
void <init>(javax.crypto.spec.DHPublicKeySpec);
descriptor: (Ljavax/crypto/spec/DHPublicKeySpec;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokevirtual javax.crypto.spec.DHPublicKeySpec.getY:()Ljava/math/BigInteger;
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.y:Ljava/math/BigInteger;
2: aload 0
new org.bouncycastle.jce.spec.ElGamalParameterSpec
dup
aload 1
invokevirtual javax.crypto.spec.DHPublicKeySpec.getP:()Ljava/math/BigInteger;
aload 1
invokevirtual javax.crypto.spec.DHPublicKeySpec.getG:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.jce.spec.ElGamalParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
0 4 1 spec Ljavax/crypto/spec/DHPublicKeySpec;
MethodParameters:
Name Flags
spec
void <init>(org.bouncycastle.jce.interfaces.ElGamalPublicKey);
descriptor: (Lorg/bouncycastle/jce/interfaces/ElGamalPublicKey;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokeinterface org.bouncycastle.jce.interfaces.ElGamalPublicKey.getY:()Ljava/math/BigInteger;
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.y:Ljava/math/BigInteger;
2: aload 0
aload 1
invokeinterface org.bouncycastle.jce.interfaces.ElGamalPublicKey.getParameters:()Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
0 4 1 key Lorg/bouncycastle/jce/interfaces/ElGamalPublicKey;
MethodParameters:
Name Flags
key
void <init>(javax.crypto.interfaces.DHPublicKey);
descriptor: (Ljavax/crypto/interfaces/DHPublicKey;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokeinterface javax.crypto.interfaces.DHPublicKey.getY:()Ljava/math/BigInteger;
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.y:Ljava/math/BigInteger;
2: aload 0
new org.bouncycastle.jce.spec.ElGamalParameterSpec
dup
aload 1
invokeinterface javax.crypto.interfaces.DHPublicKey.getParams:()Ljavax/crypto/spec/DHParameterSpec;
invokevirtual javax.crypto.spec.DHParameterSpec.getP:()Ljava/math/BigInteger;
aload 1
invokeinterface javax.crypto.interfaces.DHPublicKey.getParams:()Ljavax/crypto/spec/DHParameterSpec;
invokevirtual javax.crypto.spec.DHParameterSpec.getG:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.jce.spec.ElGamalParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
0 4 1 key Ljavax/crypto/interfaces/DHPublicKey;
MethodParameters:
Name Flags
key
void <init>(org.bouncycastle.crypto.params.ElGamalPublicKeyParameters);
descriptor: (Lorg/bouncycastle/crypto/params/ElGamalPublicKeyParameters;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokevirtual org.bouncycastle.crypto.params.ElGamalPublicKeyParameters.getY:()Ljava/math/BigInteger;
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.y:Ljava/math/BigInteger;
2: aload 0
new org.bouncycastle.jce.spec.ElGamalParameterSpec
dup
aload 1
invokevirtual org.bouncycastle.crypto.params.ElGamalPublicKeyParameters.getParameters:()Lorg/bouncycastle/crypto/params/ElGamalParameters;
invokevirtual org.bouncycastle.crypto.params.ElGamalParameters.getP:()Ljava/math/BigInteger;
aload 1
invokevirtual org.bouncycastle.crypto.params.ElGamalPublicKeyParameters.getParameters:()Lorg/bouncycastle/crypto/params/ElGamalParameters;
invokevirtual org.bouncycastle.crypto.params.ElGamalParameters.getG:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.jce.spec.ElGamalParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
0 4 1 params Lorg/bouncycastle/crypto/params/ElGamalPublicKeyParameters;
MethodParameters:
Name Flags
params
void <init>(java.math.BigInteger, org.bouncycastle.jce.spec.ElGamalParameterSpec);
descriptor: (Ljava/math/BigInteger;Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.y:Ljava/math/BigInteger;
2: aload 0
aload 2
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
0 4 1 y Ljava/math/BigInteger;
0 4 2 elSpec Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
MethodParameters:
Name Flags
y
elSpec
void <init>(org.bouncycastle.asn1.x509.SubjectPublicKeyInfo);
descriptor: (Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: new org.bouncycastle.asn1.oiw.ElGamalParameter
dup
aload 1
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.ASN1Sequence
invokespecial org.bouncycastle.asn1.oiw.ElGamalParameter.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: aload 1
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getPublicKey:()Lorg/bouncycastle/asn1/DERObject;
checkcast org.bouncycastle.asn1.DERInteger
astore 3
4: goto 7
5: StackMap locals: org.bouncycastle.jce.provider.JCEElGamalPublicKey org.bouncycastle.asn1.x509.SubjectPublicKeyInfo org.bouncycastle.asn1.oiw.ElGamalParameter org.bouncycastle.asn1.DERInteger
StackMap stack: java.io.IOException
pop
6: new java.lang.IllegalArgumentException
dup
ldc "invalid info structure in DSA public key"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.y:Ljava/math/BigInteger;
8: aload 0
new org.bouncycastle.jce.spec.ElGamalParameterSpec
dup
aload 2
invokevirtual org.bouncycastle.asn1.oiw.ElGamalParameter.getP:()Ljava/math/BigInteger;
aload 2
invokevirtual org.bouncycastle.asn1.oiw.ElGamalParameter.getG:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.jce.spec.ElGamalParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
0 10 1 info Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
2 10 2 params Lorg/bouncycastle/asn1/oiw/ElGamalParameter;
3 10 3 derY Lorg/bouncycastle/asn1/DERInteger;
Exception table:
from to target type
3 4 5 Class java.io.IOException
MethodParameters:
Name Flags
info
public java.lang.String getAlgorithm();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "ElGamal"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
public java.lang.String getFormat();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "X.509"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
public byte[] getEncoded();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=2, args_size=1
start local 0 0: new org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
dup
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.oiw.OIWObjectIdentifiers.elGamalAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
new org.bouncycastle.asn1.oiw.ElGamalParameter
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
invokevirtual org.bouncycastle.jce.spec.ElGamalParameterSpec.getP:()Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
invokevirtual org.bouncycastle.jce.spec.ElGamalParameterSpec.getG:()Ljava/math/BigInteger;
invokespecial org.bouncycastle.asn1.oiw.ElGamalParameter.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
invokevirtual org.bouncycastle.asn1.oiw.ElGamalParameter.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
new org.bouncycastle.asn1.DERInteger
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.y:Ljava/math/BigInteger;
invokespecial org.bouncycastle.asn1.DERInteger.<init>:(Ljava/math/BigInteger;)V
invokespecial org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
astore 1
start local 1 1: aload 1
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getDEREncoded:()[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
1 2 1 info Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
public org.bouncycastle.jce.spec.ElGamalParameterSpec getParameters();
descriptor: ()Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
public javax.crypto.spec.DHParameterSpec getParams();
descriptor: ()Ljavax/crypto/spec/DHParameterSpec;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new javax.crypto.spec.DHParameterSpec
dup
aload 0
getfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
invokevirtual org.bouncycastle.jce.spec.ElGamalParameterSpec.getP:()Ljava/math/BigInteger;
aload 0
getfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
invokevirtual org.bouncycastle.jce.spec.ElGamalParameterSpec.getG:()Ljava/math/BigInteger;
invokespecial javax.crypto.spec.DHParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
public java.math.BigInteger getY();
descriptor: ()Ljava/math/BigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.y:Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
private void readObject(java.io.ObjectInputStream);
descriptor: (Ljava/io/ObjectInputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
checkcast java.math.BigInteger
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.y:Ljava/math/BigInteger;
1: aload 0
new org.bouncycastle.jce.spec.ElGamalParameterSpec
dup
aload 1
invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
checkcast java.math.BigInteger
aload 1
invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
checkcast java.math.BigInteger
invokespecial org.bouncycastle.jce.spec.ElGamalParameterSpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
putfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
0 3 1 in Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
MethodParameters:
Name Flags
in
private void writeObject(java.io.ObjectOutputStream);
descriptor: (Ljava/io/ObjectOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual org.bouncycastle.jce.provider.JCEElGamalPublicKey.getY:()Ljava/math/BigInteger;
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
1: aload 1
aload 0
getfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
invokevirtual org.bouncycastle.jce.spec.ElGamalParameterSpec.getP:()Ljava/math/BigInteger;
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
2: aload 1
aload 0
getfield org.bouncycastle.jce.provider.JCEElGamalPublicKey.elSpec:Lorg/bouncycastle/jce/spec/ElGamalParameterSpec;
invokevirtual org.bouncycastle.jce.spec.ElGamalParameterSpec.getG:()Ljava/math/BigInteger;
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JCEElGamalPublicKey;
0 4 1 out Ljava/io/ObjectOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
}
SourceFile: "JCEElGamalPublicKey.java"