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: ldc "org.jcp.xml.dsig.internal.dom"
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
1: putstatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.log:Ljava/util/logging/Logger;
2: 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 start local 1 0: aload 0
invokespecial org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod.<init>:()V
1: aload 1
ifnull 6
2: aload 1
instanceof javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec
ifne 6
3: new java.security.InvalidAlgorithmParameterException
dup
4: ldc "params must be of type SignatureMethodParameterSpec"
5: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod java.security.spec.AlgorithmParameterSpec
StackMap stack:
aload 0
aload 1
checkcast javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec
invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.checkParams:(Ljavax/xml/crypto/dsig/spec/SignatureMethodParameterSpec;)V
7: aload 0
aload 1
checkcast javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec
putfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.params:Ljavax/xml/crypto/dsig/spec/SignatureMethodParameterSpec;
8: return
end local 1 end local 0 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 0: 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 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: 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 0: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.params:Ljavax/xml/crypto/dsig/spec/SignatureMethodParameterSpec;
areturn
end local 0 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 start local 1 start local 2 start local 3 start local 4 0: aload 1
ifnull 1
aload 2
ifnull 1
aload 3
ifnonnull 2
1: StackMap locals:
StackMap stack:
new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.PublicKey
ifne 4
3: new java.security.InvalidKeyException
dup
ldc "key must be PublicKey"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 4
aload 1
invokestatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.checkKeySize:(Ljavax/xml/crypto/XMLCryptoContext;Ljava/security/Key;)V
5: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
ifnonnull 16
6: aload 4
7: ldc "org.jcp.xml.dsig.internal.dom.SignatureProvider"
8: invokeinterface javax.xml.crypto.dsig.XMLValidateContext.getProperty:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.security.Provider
astore 5
start local 5 9: aload 0
aload 5
ifnonnull 11
10: aload 0
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: 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
invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.getJCAAlgorithm:()Ljava/lang/String;
aload 5
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Signature;
12: 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 13: 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
start local 5 15: new javax.xml.crypto.dsig.XMLSignatureException
dup
aload 5
invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 16: StackMap locals:
StackMap stack:
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
aload 1
checkcast java.security.PublicKey
invokevirtual java.security.Signature.initVerify:(Ljava/security/PublicKey;)V
17: 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: 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
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: 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
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: StackMap locals:
StackMap stack:
aload 2
checkcast org.jcp.xml.dsig.internal.dom.DOMSignedInfo
aload 4
21: new org.jcp.xml.dsig.internal.SignerOutputStream
dup
aload 0
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: invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignedInfo.canonicalize:(Ljavax/xml/crypto/XMLCryptoContext;Ljava/io/ByteArrayOutputStream;)V
23: aload 0
invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.getAlgorithmType:()Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
astore 5
start local 5 24: aload 5
getstatic org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type.DSA:Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
if_acmpne 30
25: aload 1
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
start local 6 26: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
aload 3
27: iload 6
bipush 8
idiv
28: 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 30: StackMap locals: org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type
StackMap stack:
aload 5
getstatic org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type.ECDSA:Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
if_acmpne 33
31: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
aload 3
invokestatic com.sun.org.apache.xml.internal.security.algorithms.implementations.SignatureECDSA.convertXMLDSIGtoASN1:([B)[B
invokevirtual java.security.Signature.verify:([B)Z
32: ireturn
33: StackMap locals:
StackMap stack:
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
aload 3
invokevirtual java.security.Signature.verify:([B)Z
34: ireturn
end local 5 35: 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
start local 5 36: new javax.xml.crypto.dsig.XMLSignatureException
dup
aload 5
invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
invokestatic org.jcp.xml.dsig.internal.dom.Utils.secureValidation:(Ljavax/xml/crypto/XMLCryptoContext;)Z
ifeq 14
1: aload 1
invokestatic sun.security.util.KeyUtil.getKeySize:(Ljava/security/Key;)I
istore 2
start local 2 2: iload 2
iconst_m1
if_icmpne 8
3: 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: 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: aload 1
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: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
7: StackMap locals: int
StackMap stack:
return
8: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
iload 2
invokestatic org.jcp.xml.dsig.internal.dom.Policy.restrictKey:(Ljava/lang/String;I)Z
ifeq 14
9: new javax.xml.crypto.dsig.XMLSignatureException
dup
new java.lang.StringBuilder
dup
aload 1
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: ldc " keys less than "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: aload 1
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: 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: invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/String;)V
athrow
end local 2 14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 start local 1 start local 2 start local 3 0: aload 1
ifnull 1
aload 2
ifnonnull 2
1: StackMap locals:
StackMap stack:
new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.security.PrivateKey
ifne 4
3: new java.security.InvalidKeyException
dup
ldc "key must be PrivateKey"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 3
aload 1
invokestatic org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.checkKeySize:(Ljavax/xml/crypto/XMLCryptoContext;Ljava/security/Key;)V
5: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
ifnonnull 16
6: aload 3
7: ldc "org.jcp.xml.dsig.internal.dom.SignatureProvider"
8: invokeinterface javax.xml.crypto.dsig.XMLSignContext.getProperty:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.security.Provider
astore 4
start local 4 9: aload 0
aload 4
ifnonnull 11
10: aload 0
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: 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
invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.getJCAAlgorithm:()Ljava/lang/String;
aload 4
invokestatic java.security.Signature.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Signature;
12: 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 13: 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
start local 4 15: new javax.xml.crypto.dsig.XMLSignatureException
dup
aload 4
invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 16: StackMap locals:
StackMap stack:
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
aload 1
checkcast java.security.PrivateKey
invokevirtual java.security.Signature.initSign:(Ljava/security/PrivateKey;)V
17: 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: 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
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: 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
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: StackMap locals:
StackMap stack:
aload 2
checkcast org.jcp.xml.dsig.internal.dom.DOMSignedInfo
aload 3
21: new org.jcp.xml.dsig.internal.SignerOutputStream
dup
aload 0
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: invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignedInfo.canonicalize:(Ljavax/xml/crypto/XMLCryptoContext;Ljava/io/ByteArrayOutputStream;)V
23: aload 0
invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.getAlgorithmType:()Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
astore 4
start local 4 24: aload 4
getstatic org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type.DSA:Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
if_acmpne 30
25: aload 1
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
start local 5 26: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
invokevirtual java.security.Signature.sign:()[B
27: iload 5
bipush 8
idiv
28: invokestatic com.sun.org.apache.xml.internal.security.utils.JavaUtils.convertDsaASN1toXMLDSIG:([BI)[B
29: areturn
end local 5 30: StackMap locals: org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type
StackMap stack:
aload 4
getstatic org.jcp.xml.dsig.internal.dom.AbstractDOMSignatureMethod$Type.ECDSA:Lorg/jcp/xml/dsig/internal/dom/AbstractDOMSignatureMethod$Type;
if_acmpne 33
31: aload 0
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: StackMap locals:
StackMap stack:
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.signature:Ljava/security/Signature;
invokevirtual java.security.Signature.sign:()[B
34: areturn
end local 4 35: 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
start local 4 36: new javax.xml.crypto.dsig.XMLSignatureException
dup
aload 4
invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 37: StackMap locals:
StackMap stack: java.io.IOException
astore 4
start local 4 38: new javax.xml.crypto.dsig.XMLSignatureException
dup
aload 4
invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 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: 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: 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: 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