public abstract class org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod extends org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod
super_class: org.jcp.xml.dsig.internal.dom.DOMSignatureMethod
{
private static java.util.logging.Logger log;
descriptor: Ljava/util/logging/Logger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private javax.crypto.Mac hmac;
descriptor: Ljavax/crypto/Mac;
flags: (0x0002) ACC_PRIVATE
private int outputLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean outputLengthSet;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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.DOMHMACSignatureMethod.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=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.jcp.xml.dsig.internal.dom.DOMSignatureMethod.<init>:(Ljava/security/spec/AlgorithmParameterSpec;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod;
0 2 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\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\tDocument cannot be resolved to a type\n\tElement cannot be resolved to a type\n\tThe type DOMHMACSignatureMethod.SHA1 must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n\tThe type DOMHMACSignatureMethod.SHA256 must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n\tThe type DOMHMACSignatureMethod.SHA384 must implement the inherited abstract method DOMStructure.marshal(Node, String, DOMCryptoContext)\n\tElement cannot be resolved to a type\n\tThe type DOMHMACSignatureMethod.SHA512 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/DOMHMACSignatureMethod;
Exceptions:
throws javax.xml.crypto.MarshalException
MethodParameters:
Name Flags
smElem
void checkParams(javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec);
descriptor: (Ljavax/xml/crypto/dsig/spec/SignatureMethodParameterSpec;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 13
1: aload 1
instanceof javax.xml.crypto.dsig.spec.HMACParameterSpec
ifne 5
2: new java.security.InvalidAlgorithmParameterException
dup
3: ldc "params must be of type HMACParameterSpec"
4: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast javax.xml.crypto.dsig.spec.HMACParameterSpec
invokevirtual javax.xml.crypto.dsig.spec.HMACParameterSpec.getOutputLength:()I
putfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.outputLength:I
6: aload 0
iconst_1
putfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.outputLengthSet:Z
7: getstatic org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.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 13
8: getstatic org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.log:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
9: new java.lang.StringBuilder
dup
ldc "Setting outputLength from HMACParameterSpec to: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.outputLength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
11: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod;
0 14 1 params Ljavax/xml/crypto/dsig/spec/SignatureMethodParameterSpec;
Exceptions:
throws java.security.InvalidAlgorithmParameterException
MethodParameters:
Name Flags
params
javax.xml.crypto.dsig.spec.SignatureMethodParameterSpec unmarshalParams(Element);
descriptor: (LElement;)Ljavax/xml/crypto/dsig/spec/SignatureMethodParameterSpec;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 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
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod;
Exceptions:
throws javax.xml.crypto.MarshalException
MethodParameters:
Name Flags
paramsElem
void marshalParams(Element, java.lang.String);
descriptor: (LElement;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tElement cannot be resolved to a type\n\tDocument cannot be resolved to a type\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/DOMHMACSignatureMethod;
Exceptions:
throws javax.xml.crypto.MarshalException
MethodParameters:
Name Flags
parent
prefix
boolean verify(java.security.Key, org.jcp.xml.dsig.internal.dom.DOMSignedInfo, byte[], javax.xml.crypto.dsig.XMLValidateContext);
descriptor: (Ljava/security/Key;Lorg/jcp/xml/dsig/internal/dom/DOMSignedInfo;[BLjavax/xml/crypto/dsig/XMLValidateContext;)Z
flags: (0x0000)
Code:
stack=5, locals=6, 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 javax.crypto.SecretKey
ifne 4
3: new java.security.InvalidKeyException
dup
ldc "key must be SecretKey"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.hmac:Ljavax/crypto/Mac;
ifnonnull 9
5: aload 0
aload 0
invokevirtual org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.getSignatureAlgorithm:()Ljava/lang/String;
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
putfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.hmac:Ljavax/crypto/Mac;
6: goto 9
StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
7: astore 5
start local 5 8: new javax.xml.crypto.dsig.XMLSignatureException
dup
aload 5
invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 9: StackMap locals:
StackMap stack:
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.outputLengthSet:Z
ifeq 13
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.outputLength:I
aload 0
invokevirtual org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.getDigestLength:()I
if_icmpge 13
10: new javax.xml.crypto.dsig.XMLSignatureException
dup
11: new java.lang.StringBuilder
dup
ldc "HMACOutputLength must not be less than "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.getDigestLength:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.hmac:Ljavax/crypto/Mac;
aload 1
checkcast javax.crypto.SecretKey
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
14: aload 2
aload 4
new org.jcp.xml.dsig.internal.MacOutputStream
dup
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.hmac:Ljavax/crypto/Mac;
invokespecial org.jcp.xml.dsig.internal.MacOutputStream.<init>:(Ljavax/crypto/Mac;)V
invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignedInfo.canonicalize:(Ljavax/xml/crypto/XMLCryptoContext;Ljava/io/ByteArrayOutputStream;)V
15: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.hmac:Ljavax/crypto/Mac;
invokevirtual javax.crypto.Mac.doFinal:()[B
astore 5
start local 5 16: aload 3
aload 5
invokestatic java.security.MessageDigest.isEqual:([B[B)Z
ireturn
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 17 0 this Lorg/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod;
0 17 1 key Ljava/security/Key;
0 17 2 si Lorg/jcp/xml/dsig/internal/dom/DOMSignedInfo;
0 17 3 sig [B
0 17 4 context Ljavax/xml/crypto/dsig/XMLValidateContext;
8 9 5 nsae Ljava/security/NoSuchAlgorithmException;
16 17 5 result [B
Exception table:
from to target type
5 6 7 Class java.security.NoSuchAlgorithmException
Exceptions:
throws java.security.InvalidKeyException, java.security.SignatureException, javax.xml.crypto.dsig.XMLSignatureException
MethodParameters:
Name Flags
key
si
sig
context
byte[] sign(java.security.Key, org.jcp.xml.dsig.internal.dom.DOMSignedInfo, javax.xml.crypto.dsig.XMLSignContext);
descriptor: (Ljava/security/Key;Lorg/jcp/xml/dsig/internal/dom/DOMSignedInfo;Ljavax/xml/crypto/dsig/XMLSignContext;)[B
flags: (0x0000)
Code:
stack=5, locals=5, 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 javax.crypto.SecretKey
ifne 4
3: new java.security.InvalidKeyException
dup
ldc "key must be SecretKey"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.hmac:Ljavax/crypto/Mac;
ifnonnull 9
5: aload 0
aload 0
invokevirtual org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.getSignatureAlgorithm:()Ljava/lang/String;
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
putfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.hmac:Ljavax/crypto/Mac;
6: goto 9
StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
7: astore 4
start local 4 8: new javax.xml.crypto.dsig.XMLSignatureException
dup
aload 4
invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 9: StackMap locals:
StackMap stack:
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.outputLengthSet:Z
ifeq 13
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.outputLength:I
aload 0
invokevirtual org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.getDigestLength:()I
if_icmpge 13
10: new javax.xml.crypto.dsig.XMLSignatureException
dup
11: new java.lang.StringBuilder
dup
ldc "HMACOutputLength must not be less than "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.getDigestLength:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokespecial javax.xml.crypto.dsig.XMLSignatureException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.hmac:Ljavax/crypto/Mac;
aload 1
checkcast javax.crypto.SecretKey
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;)V
14: aload 2
aload 3
new org.jcp.xml.dsig.internal.MacOutputStream
dup
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.hmac:Ljavax/crypto/Mac;
invokespecial org.jcp.xml.dsig.internal.MacOutputStream.<init>:(Ljavax/crypto/Mac;)V
invokevirtual org.jcp.xml.dsig.internal.dom.DOMSignedInfo.canonicalize:(Ljavax/xml/crypto/XMLCryptoContext;Ljava/io/ByteArrayOutputStream;)V
15: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.hmac:Ljavax/crypto/Mac;
invokevirtual javax.crypto.Mac.doFinal:()[B
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod;
0 16 1 key Ljava/security/Key;
0 16 2 si Lorg/jcp/xml/dsig/internal/dom/DOMSignedInfo;
0 16 3 context Ljavax/xml/crypto/dsig/XMLSignContext;
8 9 4 nsae Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
5 6 7 Class java.security.NoSuchAlgorithmException
Exceptions:
throws java.security.InvalidKeyException, javax.xml.crypto.dsig.XMLSignatureException
MethodParameters:
Name Flags
key
si
context
boolean paramsEqual(java.security.spec.AlgorithmParameterSpec);
descriptor: (Ljava/security/spec/AlgorithmParameterSpec;)Z
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.getParameterSpec:()Ljava/security/spec/AlgorithmParameterSpec;
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof javax.xml.crypto.dsig.spec.HMACParameterSpec
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
checkcast javax.xml.crypto.dsig.spec.HMACParameterSpec
astore 2
start local 2 5: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod.outputLength:I
aload 2
invokevirtual javax.xml.crypto.dsig.spec.HMACParameterSpec.getOutputLength:()I
if_icmpne 6
iconst_1
ireturn
StackMap locals: javax.xml.crypto.dsig.spec.HMACParameterSpec
StackMap stack:
6: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod;
0 7 1 spec Ljava/security/spec/AlgorithmParameterSpec;
5 7 2 ospec Ljavax/xml/crypto/dsig/spec/HMACParameterSpec;
MethodParameters:
Name Flags
spec
abstract int getDigestLength();
descriptor: ()I
flags: (0x0400) ACC_ABSTRACT
}
SourceFile: "DOMHMACSignatureMethod.java"
NestMembers:
org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod$SHA1 org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod$SHA256 org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod$SHA384 org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod$SHA512
InnerClasses:
final SHA1 = org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod$SHA1 of org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod
final SHA256 = org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod$SHA256 of org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod
final SHA384 = org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod$SHA384 of org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod
final SHA512 = org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod$SHA512 of org.jcp.xml.dsig.internal.dom.DOMHMACSignatureMethod