public abstract class org.bouncycastle.jce.provider.DSABase extends java.security.SignatureSpi implements org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers, org.bouncycastle.asn1.x509.X509ObjectIdentifiers
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.bouncycastle.jce.provider.DSABase
  super_class: java.security.SignatureSpi
{
  protected org.bouncycastle.crypto.Digest digest;
    descriptor: Lorg/bouncycastle/crypto/Digest;
    flags: (0x0004) ACC_PROTECTED

  protected org.bouncycastle.crypto.DSA signer;
    descriptor: Lorg/bouncycastle/crypto/DSA;
    flags: (0x0004) ACC_PROTECTED

  protected org.bouncycastle.jce.provider.DSAEncoder encoder;
    descriptor: Lorg/bouncycastle/jce/provider/DSAEncoder;
    flags: (0x0004) ACC_PROTECTED

  protected void <init>(org.bouncycastle.crypto.Digest, org.bouncycastle.crypto.DSA, org.bouncycastle.jce.provider.DSAEncoder);
    descriptor: (Lorg/bouncycastle/crypto/Digest;Lorg/bouncycastle/crypto/DSA;Lorg/bouncycastle/jce/provider/DSAEncoder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.bouncycastle.jce.provider.DSABase this
        start local 1 // org.bouncycastle.crypto.Digest digest
        start local 2 // org.bouncycastle.crypto.DSA signer
        start local 3 // org.bouncycastle.jce.provider.DSAEncoder encoder
         0: .line 23
            aload 0 /* this */
            invokespecial java.security.SignatureSpi.<init>:()V
         1: .line 28
            aload 0 /* this */
            aload 1 /* digest */
            putfield org.bouncycastle.jce.provider.DSABase.digest:Lorg/bouncycastle/crypto/Digest;
         2: .line 29
            aload 0 /* this */
            aload 2 /* signer */
            putfield org.bouncycastle.jce.provider.DSABase.signer:Lorg/bouncycastle/crypto/DSA;
         3: .line 30
            aload 0 /* this */
            aload 3 /* encoder */
            putfield org.bouncycastle.jce.provider.DSABase.encoder:Lorg/bouncycastle/jce/provider/DSAEncoder;
         4: .line 31
            return
        end local 3 // org.bouncycastle.jce.provider.DSAEncoder encoder
        end local 2 // org.bouncycastle.crypto.DSA signer
        end local 1 // org.bouncycastle.crypto.Digest digest
        end local 0 // org.bouncycastle.jce.provider.DSABase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/bouncycastle/jce/provider/DSABase;
            0    5     1   digest  Lorg/bouncycastle/crypto/Digest;
            0    5     2   signer  Lorg/bouncycastle/crypto/DSA;
            0    5     3  encoder  Lorg/bouncycastle/jce/provider/DSAEncoder;
    MethodParameters:
         Name  Flags
      digest   
      signer   
      encoder  

  protected void engineInitSign(java.security.PrivateKey);
    descriptor: (Ljava/security/PrivateKey;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.DSABase this
        start local 1 // java.security.PrivateKey privateKey
         0: .line 37
            aload 0 /* this */
            aload 1 /* privateKey */
            aconst_null
            invokevirtual org.bouncycastle.jce.provider.DSABase.engineInitSign:(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V
         1: .line 38
            return
        end local 1 // java.security.PrivateKey privateKey
        end local 0 // org.bouncycastle.jce.provider.DSABase this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/bouncycastle/jce/provider/DSABase;
            0    2     1  privateKey  Ljava/security/PrivateKey;
    Exceptions:
      throws java.security.InvalidKeyException
    MethodParameters:
            Name  Flags
      privateKey  

  protected void engineUpdate(byte);
    descriptor: (B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.DSABase this
        start local 1 // byte b
         0: .line 44
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.DSABase.digest:Lorg/bouncycastle/crypto/Digest;
            iload 1 /* b */
            invokeinterface org.bouncycastle.crypto.Digest.update:(B)V
         1: .line 45
            return
        end local 1 // byte b
        end local 0 // org.bouncycastle.jce.provider.DSABase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/jce/provider/DSABase;
            0    2     1     b  B
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
      Name  Flags
      b     

  protected void engineUpdate(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.bouncycastle.jce.provider.DSABase this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 53
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.DSABase.digest:Lorg/bouncycastle/crypto/Digest;
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
         1: .line 54
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // org.bouncycastle.jce.provider.DSABase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/jce/provider/DSABase;
            0    2     1     b  [B
            0    2     2   off  I
            0    2     3   len  I
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  protected byte[] engineSign();
    descriptor: ()[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.bouncycastle.jce.provider.DSABase this
         0: .line 59
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.DSABase.digest:Lorg/bouncycastle/crypto/Digest;
            invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
            newarray 8
            astore 1 /* hash */
        start local 1 // byte[] hash
         1: .line 61
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.DSABase.digest:Lorg/bouncycastle/crypto/Digest;
            aload 1 /* hash */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
         2: .line 65
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.DSABase.signer:Lorg/bouncycastle/crypto/DSA;
            aload 1 /* hash */
            invokeinterface org.bouncycastle.crypto.DSA.generateSignature:([B)[Ljava/math/BigInteger;
            astore 2 /* sig */
        start local 2 // java.math.BigInteger[] sig
         3: .line 67
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.DSABase.encoder:Lorg/bouncycastle/jce/provider/DSAEncoder;
            aload 2 /* sig */
            iconst_0
            aaload
            aload 2 /* sig */
            iconst_1
            aaload
            invokeinterface org.bouncycastle.jce.provider.DSAEncoder.encode:(Ljava/math/BigInteger;Ljava/math/BigInteger;)[B
         4: areturn
        end local 2 // java.math.BigInteger[] sig
         5: .line 69
      StackMap locals: org.bouncycastle.jce.provider.DSABase byte[]
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         6: .line 71
            new java.security.SignatureException
            dup
            aload 2 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // byte[] hash
        end local 0 // org.bouncycastle.jce.provider.DSABase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/jce/provider/DSABase;
            1    7     1  hash  [B
            3    5     2   sig  [Ljava/math/BigInteger;
            6    7     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     4       5  Class java.lang.Exception
    Exceptions:
      throws java.security.SignatureException

  protected boolean engineVerify(byte[]);
    descriptor: ([B)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.bouncycastle.jce.provider.DSABase this
        start local 1 // byte[] sigBytes
         0: .line 79
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.DSABase.digest:Lorg/bouncycastle/crypto/Digest;
            invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
            newarray 8
            astore 2 /* hash */
        start local 2 // byte[] hash
         1: .line 81
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.DSABase.digest:Lorg/bouncycastle/crypto/Digest;
            aload 2 /* hash */
            iconst_0
            invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
            pop
         2: .line 87
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.DSABase.encoder:Lorg/bouncycastle/jce/provider/DSAEncoder;
            aload 1 /* sigBytes */
            invokeinterface org.bouncycastle.jce.provider.DSAEncoder.decode:([B)[Ljava/math/BigInteger;
            astore 3 /* sig */
        start local 3 // java.math.BigInteger[] sig
         3: .line 88
            goto 6
        end local 3 // java.math.BigInteger[] sig
         4: .line 89
      StackMap locals: org.bouncycastle.jce.provider.DSABase byte[] byte[]
      StackMap stack: java.lang.Exception
            pop
         5: .line 91
            new java.security.SignatureException
            dup
            ldc "error decoding signature bytes."
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        start local 3 // java.math.BigInteger[] sig
         6: .line 94
      StackMap locals: java.math.BigInteger[]
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.DSABase.signer:Lorg/bouncycastle/crypto/DSA;
            aload 2 /* hash */
            aload 3 /* sig */
            iconst_0
            aaload
            aload 3 /* sig */
            iconst_1
            aaload
            invokeinterface org.bouncycastle.crypto.DSA.verifySignature:([BLjava/math/BigInteger;Ljava/math/BigInteger;)Z
            ireturn
        end local 3 // java.math.BigInteger[] sig
        end local 2 // byte[] hash
        end local 1 // byte[] sigBytes
        end local 0 // org.bouncycastle.jce.provider.DSABase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/bouncycastle/jce/provider/DSABase;
            0    7     1  sigBytes  [B
            1    7     2      hash  [B
            3    4     3       sig  [Ljava/math/BigInteger;
            6    7     3       sig  [Ljava/math/BigInteger;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Exception
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
          Name  Flags
      sigBytes  

  protected void engineSetParameter(java.security.spec.AlgorithmParameterSpec);
    descriptor: (Ljava/security/spec/AlgorithmParameterSpec;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.DSABase this
        start local 1 // java.security.spec.AlgorithmParameterSpec params
         0: .line 100
            new java.lang.UnsupportedOperationException
            dup
            ldc "engineSetParameter unsupported"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.security.spec.AlgorithmParameterSpec params
        end local 0 // org.bouncycastle.jce.provider.DSABase this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/bouncycastle/jce/provider/DSABase;
            0    1     1  params  Ljava/security/spec/AlgorithmParameterSpec;
    MethodParameters:
        Name  Flags
      params  

  protected void engineSetParameter(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bouncycastle.jce.provider.DSABase this
        start local 1 // java.lang.String param
        start local 2 // java.lang.Object value
         0: .line 110
            new java.lang.UnsupportedOperationException
            dup
            ldc "engineSetParameter unsupported"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String param
        end local 0 // org.bouncycastle.jce.provider.DSABase this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/bouncycastle/jce/provider/DSABase;
            0    1     1  param  Ljava/lang/String;
            0    1     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      param  
      value  

  protected java.lang.Object engineGetParameter(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.DSABase this
        start local 1 // java.lang.String param
         0: .line 119
            new java.lang.UnsupportedOperationException
            dup
            ldc "engineSetParameter unsupported"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String param
        end local 0 // org.bouncycastle.jce.provider.DSABase this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/bouncycastle/jce/provider/DSABase;
            0    1     1  param  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      param  
}
SourceFile: "DSABase.java"