public abstract class org.jcp.xml.dsig.internal.dom.DOMSignatureMethod extends org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
  super_class: org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod
{
  private static java.util.logging.Logger log;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec params;
    descriptor: Ljavax/xml/crypto/dsig/spec/SignatureMethodParameterSpec;
    flags: (0x0002) ACC_PRIVATE

  private java.security.Signature signature;
    descriptor: Ljava/security/Signature;
    flags: (0x0002) ACC_PRIVATE

  static final java.lang.String RSA_SHA256;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"

  static final java.lang.String RSA_SHA384;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha384"

  static final java.lang.String RSA_SHA512;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"

  static final java.lang.String ECDSA_SHA1;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha1"

  static final java.lang.String ECDSA_SHA256;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256"

  static final java.lang.String ECDSA_SHA384;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha384"

  static final java.lang.String ECDSA_SHA512;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512"

  static final java.lang.String DSA_SHA256;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "http://www.w3.org/2009/xmldsig11#dsa-sha256"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 54
            ldc "org.jcp.xml.dsig.internal.dom"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
         1: .line 53
            putstatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.log:Ljava/util/logging/Logger;
         2: .line 75
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.security.spec.AlgorithmParameterSpec);
    descriptor: (Ljava/security/spec/AlgorithmParameterSpec;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jcp.xml.dsig.internal.dom.DOMSignatureMethod this
        start local 1 // java.security.spec.AlgorithmParameterSpec params
         0: .line 84
            aload 0 /* this */
            invokespecial org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod.<init>:()V
         1: .line 87
            aload 1 /* params */
            ifnull 6
         2: .line 88
            aload 1 /* params */
            instanceof javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec
            ifne 6
         3: .line 89
            new java.security.InvalidAlgorithmParameterException
            dup
         4: .line 90
            ldc "params must be of type SignatureMethodParameterSpec"
         5: .line 89
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 92
      StackMap locals: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod java.security.spec.AlgorithmParameterSpec
      StackMap stack:
            aload 0 /* this */
            aload 1 /* params */
            checkcast javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec
            invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.checkParams:(Ljavax/xml/crypto/dsig/spec/SignatureMethodParameterSpec;)V
         7: .line 93
            aload 0 /* this */
            aload 1 /* params */
            checkcast javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec
            putfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.params:Ljavax/xml/crypto/dsig/spec/SignatureMethodParameterSpec;
         8: .line 94
            return
        end local 1 // java.security.spec.AlgorithmParameterSpec params
        end local 0 // org.jcp.xml.dsig.internal.dom.DOMSignatureMethod this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/jcp/xml/dsig/internal/dom/DOMSignatureMethod;
            0    9     1  params  Ljava/security/spec/AlgorithmParameterSpec;
    Exceptions:
      throws java.security.InvalidAlgorithmParameterException
    MethodParameters:
        Name  Flags
      params  

  void <init>(Element);
    descriptor: (LElement;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jcp.xml.dsig.internal.dom.DOMSignatureMethod this
         0: .line 39
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe import org.w3c cannot be resolved\n\tElement cannot be resolved to a type\n\tElement cannot be resolved to a type\n\tElement cannot be resolved to a type\n\tThe type DOMSignatureMethod.SHA1withRSA must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n\tThe type DOMSignatureMethod.SHA256withRSA must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n\tThe type DOMSignatureMethod.SHA384withRSA must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n\tThe type DOMSignatureMethod.SHA512withRSA must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n\tThe type DOMSignatureMethod.SHA1withDSA must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n\tThe type DOMSignatureMethod.SHA256withDSA must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n\tThe type DOMSignatureMethod.SHA1withECDSA must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n\tThe type DOMSignatureMethod.SHA256withECDSA must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n\tThe type DOMSignatureMethod.SHA384withECDSA must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n\tThe type DOMSignatureMethod.SHA512withECDSA must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.jcp.xml.dsig.internal.dom.DOMSignatureMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jcp/xml/dsig/internal/dom/DOMSignatureMethod;
    Exceptions:
      throws javax.xml.crypto.MarshalException
    MethodParameters:
        Name  Flags
      smElem  

  static javax.xml.crypto.dsig.SignatureMethod unmarshal(Element);
    descriptor: (LElement;)Ljavax/xml/crypto/dsig/SignatureMethod;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 115
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tElement cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws javax.xml.crypto.MarshalException
    MethodParameters:
        Name  Flags
      smElem  

  public final java.security.spec.AlgorithmParameterSpec getParameterSpec();
    descriptor: ()Ljava/security/spec/AlgorithmParameterSpec;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jcp.xml.dsig.internal.dom.DOMSignatureMethod this
         0: .line 152
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.params:Ljavax/xml/crypto/dsig/spec/SignatureMethodParameterSpec;
            areturn
        end local 0 // org.jcp.xml.dsig.internal.dom.DOMSignatureMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jcp/xml/dsig/internal/dom/DOMSignatureMethod;

  boolean verify(java.security.Key, javax.xml.crypto.dsig.SignedInfo, byte[], javax.xml.crypto.dsig.XMLValidateContext);
    descriptor: (Ljava/security/Key;Ljavax/xml/crypto/dsig/SignedInfo;[BLjavax/xml/crypto/dsig/XMLValidateContext;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.jcp.xml.dsig.internal.dom.DOMSignatureMethod this
        start local 1 // java.security.Key key
        start local 2 // javax.xml.crypto.dsig.SignedInfo si
        start local 3 // byte[] sig
        start local 4 // javax.xml.crypto.dsig.XMLValidateContext context
         0: .line 159
            aload 1 /* key */
            ifnull 1
            aload 2 /* si */
            ifnull 1
            aload 3 /* sig */
            ifnonnull 2
         1: .line 160
      StackMap locals:
      StackMap stack:
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 163
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            instanceof java.security.PublicKey
            ifne 4
         3: .line 164
            new java.security.InvalidKeyException
            dup
            ldc "key must be PublicKey"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 166
      StackMap locals:
      StackMap stack:
            aload 4 /* context */
            aload 1 /* key */
            invokestatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.checkKeySize:(Ljavax/xml/crypto/XMLCryptoContext;Ljava/security/Key;)V
         5: .line 167
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            ifnonnull 16
         6: .line 169
            aload 4 /* context */
         7: .line 170
            ldc "org.jcp.xml.dsig.internal.dom.SignatureProvider"
         8: .line 169
            invokeinterface javax.xml.crypto.dsig.XMLValidateContext.getProperty:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.security.Provider
            astore 5 /* p */
        start local 5 // java.security.Provider p
         9: .line 171
            aload 0 /* this */
            aload 5 /* p */
            ifnonnull 11
        10: .line 172
            aload 0 /* this */
            invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.getJCAAlgorithm:()Ljava/lang/String;
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
            goto 12
        11: .line 173
      StackMap locals: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod java.security.Key javax.xml.crypto.dsig.SignedInfo byte[] javax.xml.crypto.dsig.XMLValidateContext java.security.Provider
      StackMap stack: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
            aload 0 /* this */
            invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.getJCAAlgorithm:()Ljava/lang/String;
            aload 5 /* p */
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Signature;
        12: .line 171
      StackMap locals: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod java.security.Key javax.xml.crypto.dsig.SignedInfo byte[] javax.xml.crypto.dsig.XMLValidateContext java.security.Provider
      StackMap stack: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod java.security.Signature
            putfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
        end local 5 // java.security.Provider p
        13: .line 174
            goto 16
      StackMap locals: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod java.security.Key javax.xml.crypto.dsig.SignedInfo byte[] javax.xml.crypto.dsig.XMLValidateContext
      StackMap stack: java.security.NoSuchAlgorithmException
        14: astore 5 /* nsae */
        start local 5 // java.security.NoSuchAlgorithmException nsae
        15: .line 175
            new javax.xml.crypto.dsig.XMLSignatureException
            dup
            aload 5 /* nsae */
            invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.security.NoSuchAlgorithmException nsae
        16: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            aload 1 /* key */
            checkcast java.security.PublicKey
            invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
        17: .line 179
            getstatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.log:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 20
        18: .line 180
            getstatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.log:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "Signature provider:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            invokevirtual java.security.Signature.getProvider:()Ljava/security/Provider;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        19: .line 181
            getstatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.log:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "verifying with key: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        20: .line 183
      StackMap locals:
      StackMap stack:
            aload 2 /* si */
            checkcast org.jcp.xml.dsig.internal.dom.DOMSignedInfo
            aload 4 /* context */
        21: .line 184
            new org.jcp.xml.dsig.internal.SignerOutputStream
            dup
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            invokespecial org.jcp.xml.dsig.internal.SignerOutputStream.<init>:(Ljava/security/Signature;)V
        22: .line 183
            invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignedInfo.canonicalize:(Ljavax/xml/crypto/XMLCryptoContext;Ljava/io/ByteArrayOutputStream;)V
        23: .line 187
            aload 0 /* this */
            invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.getAlgorithmType:()Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
            astore 5 /* type */
        start local 5 // org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type type
        24: .line 188
            aload 5 /* type */
            getstatic org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type.DSA:Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
            if_acmpne 30
        25: .line 189
            aload 1 /* key */
            checkcast java.security.interfaces.DSAKey
            invokeinterface java.security.interfaces.DSAKey.getParams:()Ljava/security/interfaces/DSAParams;
            invokeinterface java.security.interfaces.DSAParams.getQ:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.bitLength:()I
            istore 6 /* size */
        start local 6 // int size
        26: .line 190
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            aload 3 /* sig */
        27: .line 191
            iload 6 /* size */
            bipush 8
            idiv
        28: .line 190
            invokestatic com.sun.org.apache.xml.internal.security.utils.JavaUtils.convertDsaXMLDSIGtoASN1:([BI)[B
            invokevirtual java.security.Signature.verify:([B)Z
        29: ireturn
        end local 6 // int size
        30: .line 192
      StackMap locals: org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type
      StackMap stack:
            aload 5 /* type */
            getstatic org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type.ECDSA:Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
            if_acmpne 33
        31: .line 193
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            aload 3 /* sig */
            invokestatic com.sun.org.apache.xml.internal.security.algorithms.implementations.SignatureECDSA.convertXMLDSIGtoASN1:([B)[B
            invokevirtual java.security.Signature.verify:([B)Z
        32: ireturn
        33: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            aload 3 /* sig */
            invokevirtual java.security.Signature.verify:([B)Z
        34: ireturn
        end local 5 // org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type type
        35: .line 197
      StackMap locals: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod java.security.Key javax.xml.crypto.dsig.SignedInfo byte[] javax.xml.crypto.dsig.XMLValidateContext
      StackMap stack: java.io.IOException
            astore 5 /* ioe */
        start local 5 // java.io.IOException ioe
        36: .line 198
            new javax.xml.crypto.dsig.XMLSignatureException
            dup
            aload 5 /* ioe */
            invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.io.IOException ioe
        end local 4 // javax.xml.crypto.dsig.XMLValidateContext context
        end local 3 // byte[] sig
        end local 2 // javax.xml.crypto.dsig.SignedInfo si
        end local 1 // java.security.Key key
        end local 0 // org.jcp.xml.dsig.internal.dom.DOMSignatureMethod this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   37     0     this  Lorg/jcp/xml/dsig/internal/dom/DOMSignatureMethod;
            0   37     1      key  Ljava/security/Key;
            0   37     2       si  Ljavax/xml/crypto/dsig/SignedInfo;
            0   37     3      sig  [B
            0   37     4  context  Ljavax/xml/crypto/dsig/XMLValidateContext;
            9   13     5        p  Ljava/security/Provider;
           15   16     5     nsae  Ljava/security/NoSuchAlgorithmException;
           24   35     5     type  Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
           26   30     6     size  I
           36   37     5      ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6    13      14  Class java.security.NoSuchAlgorithmException
          23    29      35  Class java.io.IOException
          30    32      35  Class java.io.IOException
          33    34      35  Class java.io.IOException
    Exceptions:
      throws java.security.InvalidKeyException, java.security.SignatureException, javax.xml.crypto.dsig.XMLSignatureException
    MethodParameters:
         Name  Flags
      key      
      si       
      sig      
      context  

  private static void checkKeySize(javax.xml.crypto.XMLCryptoContext, java.security.Key);
    descriptor: (Ljavax/xml/crypto/XMLCryptoContext;Ljava/security/Key;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // javax.xml.crypto.XMLCryptoContext context
        start local 1 // java.security.Key key
         0: .line 212
            aload 0 /* context */
            invokestatic org.jcp.xml.dsig.internal.dom.Utils.secureValidation:(Ljavax/xml/crypto/XMLCryptoContext;)Z
            ifeq 14
         1: .line 213
            aload 1 /* key */
            invokestatic sun.security.util.KeyUtil.getKeySize:(Ljava/security/Key;)I
            istore 2 /* size */
        start local 2 // int size
         2: .line 214
            iload 2 /* size */
            iconst_m1
            if_icmpne 8
         3: .line 218
            getstatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.log:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 7
         4: .line 219
            getstatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.log:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "Size for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 220
            aload 1 /* key */
            invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " key cannot be determined"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 219
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         7: .line 222
      StackMap locals: int
      StackMap stack:
            return
         8: .line 224
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
            iload 2 /* size */
            invokestatic org.jcp.xml.dsig.internal.dom.Policy.restrictKey:(Ljava/lang/String;I)Z
            ifeq 14
         9: .line 225
            new javax.xml.crypto.dsig.XMLSignatureException
            dup
            new java.lang.StringBuilder
            dup
            aload 1 /* key */
            invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 226
            ldc " keys less than "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 227
            aload 1 /* key */
            invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
            invokestatic org.jcp.xml.dsig.internal.dom.Policy.minKeySize:(Ljava/lang/String;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " bits are"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 228
            ldc " forbidden when secure validation is enabled"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 225
            invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // int size
        14: .line 231
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.security.Key key
        end local 0 // javax.xml.crypto.XMLCryptoContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0  context  Ljavax/xml/crypto/XMLCryptoContext;
            0   15     1      key  Ljava/security/Key;
            2   14     2     size  I
    Exceptions:
      throws javax.xml.crypto.dsig.XMLSignatureException
    MethodParameters:
         Name  Flags
      context  
      key      

  byte[] sign(java.security.Key, javax.xml.crypto.dsig.SignedInfo, javax.xml.crypto.dsig.XMLSignContext);
    descriptor: (Ljava/security/Key;Ljavax/xml/crypto/dsig/SignedInfo;Ljavax/xml/crypto/dsig/XMLSignContext;)[B
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.jcp.xml.dsig.internal.dom.DOMSignatureMethod this
        start local 1 // java.security.Key key
        start local 2 // javax.xml.crypto.dsig.SignedInfo si
        start local 3 // javax.xml.crypto.dsig.XMLSignContext context
         0: .line 236
            aload 1 /* key */
            ifnull 1
            aload 2 /* si */
            ifnonnull 2
         1: .line 237
      StackMap locals:
      StackMap stack:
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 240
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            instanceof java.security.PrivateKey
            ifne 4
         3: .line 241
            new java.security.InvalidKeyException
            dup
            ldc "key must be PrivateKey"
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 243
      StackMap locals:
      StackMap stack:
            aload 3 /* context */
            aload 1 /* key */
            invokestatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.checkKeySize:(Ljavax/xml/crypto/XMLCryptoContext;Ljava/security/Key;)V
         5: .line 244
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            ifnonnull 16
         6: .line 246
            aload 3 /* context */
         7: .line 247
            ldc "org.jcp.xml.dsig.internal.dom.SignatureProvider"
         8: .line 246
            invokeinterface javax.xml.crypto.dsig.XMLSignContext.getProperty:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.security.Provider
            astore 4 /* p */
        start local 4 // java.security.Provider p
         9: .line 248
            aload 0 /* this */
            aload 4 /* p */
            ifnonnull 11
        10: .line 249
            aload 0 /* this */
            invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.getJCAAlgorithm:()Ljava/lang/String;
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
            goto 12
        11: .line 250
      StackMap locals: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod java.security.Key javax.xml.crypto.dsig.SignedInfo javax.xml.crypto.dsig.XMLSignContext java.security.Provider
      StackMap stack: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
            aload 0 /* this */
            invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.getJCAAlgorithm:()Ljava/lang/String;
            aload 4 /* p */
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Signature;
        12: .line 248
      StackMap locals: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod java.security.Key javax.xml.crypto.dsig.SignedInfo javax.xml.crypto.dsig.XMLSignContext java.security.Provider
      StackMap stack: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod java.security.Signature
            putfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
        end local 4 // java.security.Provider p
        13: .line 251
            goto 16
      StackMap locals: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod java.security.Key javax.xml.crypto.dsig.SignedInfo javax.xml.crypto.dsig.XMLSignContext
      StackMap stack: java.security.NoSuchAlgorithmException
        14: astore 4 /* nsae */
        start local 4 // java.security.NoSuchAlgorithmException nsae
        15: .line 252
            new javax.xml.crypto.dsig.XMLSignatureException
            dup
            aload 4 /* nsae */
            invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.NoSuchAlgorithmException nsae
        16: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            aload 1 /* key */
            checkcast java.security.PrivateKey
            invokevirtual java.security.Signature.initSign:(Ljava/security/PrivateKey;)V
        17: .line 256
            getstatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.log:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 20
        18: .line 257
            getstatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.log:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "Signature provider:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            invokevirtual java.security.Signature.getProvider:()Ljava/security/Provider;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        19: .line 258
            getstatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.log:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "Signing with key: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
        20: .line 261
      StackMap locals:
      StackMap stack:
            aload 2 /* si */
            checkcast org.jcp.xml.dsig.internal.dom.DOMSignedInfo
            aload 3 /* context */
        21: .line 262
            new org.jcp.xml.dsig.internal.SignerOutputStream
            dup
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            invokespecial org.jcp.xml.dsig.internal.SignerOutputStream.<init>:(Ljava/security/Signature;)V
        22: .line 261
            invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignedInfo.canonicalize:(Ljavax/xml/crypto/XMLCryptoContext;Ljava/io/ByteArrayOutputStream;)V
        23: .line 265
            aload 0 /* this */
            invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.getAlgorithmType:()Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
            astore 4 /* type */
        start local 4 // org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type type
        24: .line 266
            aload 4 /* type */
            getstatic org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type.DSA:Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
            if_acmpne 30
        25: .line 267
            aload 1 /* key */
            checkcast java.security.interfaces.DSAKey
            invokeinterface java.security.interfaces.DSAKey.getParams:()Ljava/security/interfaces/DSAParams;
            invokeinterface java.security.interfaces.DSAParams.getQ:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.bitLength:()I
            istore 5 /* size */
        start local 5 // int size
        26: .line 268
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            invokevirtual java.security.Signature.sign:()[B
        27: .line 269
            iload 5 /* size */
            bipush 8
            idiv
        28: .line 268
            invokestatic com.sun.org.apache.xml.internal.security.utils.JavaUtils.convertDsaASN1toXMLDSIG:([BI)[B
        29: areturn
        end local 5 // int size
        30: .line 270
      StackMap locals: org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type
      StackMap stack:
            aload 4 /* type */
            getstatic org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type.ECDSA:Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
            if_acmpne 33
        31: .line 271
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            invokevirtual java.security.Signature.sign:()[B
            invokestatic com.sun.org.apache.xml.internal.security.algorithms.implementations.SignatureECDSA.convertASN1toXMLDSIG:([B)[B
        32: areturn
        33: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
            invokevirtual java.security.Signature.sign:()[B
        34: areturn
        end local 4 // org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type type
        35: .line 275
      StackMap locals: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod java.security.Key javax.xml.crypto.dsig.SignedInfo javax.xml.crypto.dsig.XMLSignContext
      StackMap stack: java.security.SignatureException
            astore 4 /* se */
        start local 4 // java.security.SignatureException se
        36: .line 276
            new javax.xml.crypto.dsig.XMLSignatureException
            dup
            aload 4 /* se */
            invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.SignatureException se
        37: .line 277
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
        38: .line 278
            new javax.xml.crypto.dsig.XMLSignatureException
            dup
            aload 4 /* ioe */
            invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException ioe
        end local 3 // javax.xml.crypto.dsig.XMLSignContext context
        end local 2 // javax.xml.crypto.dsig.SignedInfo si
        end local 1 // java.security.Key key
        end local 0 // org.jcp.xml.dsig.internal.dom.DOMSignatureMethod this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   39     0     this  Lorg/jcp/xml/dsig/internal/dom/DOMSignatureMethod;
            0   39     1      key  Ljava/security/Key;
            0   39     2       si  Ljavax/xml/crypto/dsig/SignedInfo;
            0   39     3  context  Ljavax/xml/crypto/dsig/XMLSignContext;
            9   13     4        p  Ljava/security/Provider;
           15   16     4     nsae  Ljava/security/NoSuchAlgorithmException;
           24   35     4     type  Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
           26   30     5     size  I
           36   37     4       se  Ljava/security/SignatureException;
           38   39     4      ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6    13      14  Class java.security.NoSuchAlgorithmException
          23    29      35  Class java.security.SignatureException
          30    32      35  Class java.security.SignatureException
          33    34      35  Class java.security.SignatureException
          23    29      37  Class java.io.IOException
          30    32      37  Class java.io.IOException
          33    34      37  Class java.io.IOException
    Exceptions:
      throws java.security.InvalidKeyException, javax.xml.crypto.dsig.XMLSignatureException
    MethodParameters:
         Name  Flags
      key      
      si       
      context  

  public int hashCode();
    descriptor: ()I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod.hashCode:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void marshal(Node, java.lang.String, javax.xml.crypto.dom.DOMCryptoContext);
    descriptor: (LNode;Ljava/lang/String;Ljavax/xml/crypto/dom/DOMCryptoContext;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            aload 2
            aload 3
            invokespecial org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod.marshal:(LNode;Ljava/lang/String;Ljavax/xml/crypto/dom/DOMCryptoContext;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws javax.xml.crypto.MarshalException

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokespecial org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod.equals:(Ljava/lang/Object;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "DOMSignatureMethod.java"
NestMembers:
  org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA1withDSA  org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA1withECDSA  org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA1withRSA  org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA256withDSA  org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA256withECDSA  org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA256withRSA  org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA384withECDSA  org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA384withRSA  org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA512withECDSA  org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA512withRSA
InnerClasses:
  final Type = org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type of org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod
  final SHA1withDSA = org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA1withDSA of org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
  final SHA1withECDSA = org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA1withECDSA of org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
  final SHA1withRSA = org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA1withRSA of org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
  final SHA256withDSA = org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA256withDSA of org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
  final SHA256withECDSA = org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA256withECDSA of org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
  final SHA256withRSA = org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA256withRSA of org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
  final SHA384withECDSA = org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA384withECDSA of org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
  final SHA384withRSA = org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA384withRSA of org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
  final SHA512withECDSA = org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA512withECDSA of org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
  final SHA512withRSA = org.jcp.xml.dsig.internal.dom.DOMSignatureMethod$SHA512withRSA of org.jcp.xml.dsig.internal.dom.DOMSignatureMethod