final class org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC extends org.jcp.xml.dsig.internal.dom.DOMKeyValue<java.security.interfaces.ECPublicKey>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC
super_class: org.jcp.xml.dsig.internal.dom.DOMKeyValue
{
private byte[] ecPublicKey;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private java.security.KeyFactory eckf;
descriptor: Ljava/security/KeyFactory;
flags: (0x0002) ACC_PRIVATE
private java.security.spec.ECParameterSpec ecParams;
descriptor: Ljava/security/spec/ECParameterSpec;
flags: (0x0002) ACC_PRIVATE
private static final org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve SECP256R1;
descriptor: Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve SECP384R1;
descriptor: Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve SECP521R1;
descriptor: Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=0, args_size=0
0: ldc "secp256r1 [NIST P-256, X9.62 prime256v1]"
1: ldc "1.2.840.10045.3.1.7"
2: ldc "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"
3: ldc "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC"
4: ldc "5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B"
5: ldc "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296"
6: ldc "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5"
7: ldc "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551"
8: iconst_1
9: invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.initializeCurve:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
putstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP256R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
10: ldc "secp384r1 [NIST P-384]"
11: ldc "1.3.132.0.34"
12: ldc "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF"
13: ldc "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC"
14: ldc "B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF"
15: ldc "AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7"
16: ldc "3617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147CE9DA3113B5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F"
17: ldc "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973"
18: iconst_1
19: invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.initializeCurve:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
putstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP384R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
20: ldc "secp521r1 [NIST P-521]"
21: ldc "1.3.132.0.35"
22: ldc "01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
23: ldc "01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC"
24: ldc "0051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00"
25: ldc "00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66"
26: ldc "011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFBD17273E662C97EE72995EF42640C550B9013FAD0761353C7086A272C24088BE94769FD16650"
27: ldc "01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409"
28: iconst_1
29: invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.initializeCurve:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
putstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP521R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
30: return
LocalVariableTable:
Start End Slot Name Signature
private static org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve initializeCurve(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=13, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 2
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue.bigInt:(Ljava/lang/String;)Ljava/math/BigInteger;
astore 9
start local 9 1: new java.security.spec.ECFieldFp
dup
aload 9
invokespecial java.security.spec.ECFieldFp.<init>:(Ljava/math/BigInteger;)V
astore 10
start local 10 2: new java.security.spec.EllipticCurve
dup
aload 10
aload 3
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue.bigInt:(Ljava/lang/String;)Ljava/math/BigInteger;
3: aload 4
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue.bigInt:(Ljava/lang/String;)Ljava/math/BigInteger;
4: invokespecial java.security.spec.EllipticCurve.<init>:(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 11
start local 11 5: new java.security.spec.ECPoint
dup
aload 5
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue.bigInt:(Ljava/lang/String;)Ljava/math/BigInteger;
aload 6
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue.bigInt:(Ljava/lang/String;)Ljava/math/BigInteger;
invokespecial java.security.spec.ECPoint.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 12
start local 12 6: new org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve
dup
aload 0
aload 1
aload 11
aload 12
aload 7
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue.bigInt:(Ljava/lang/String;)Ljava/math/BigInteger;
iload 8
invokespecial org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/EllipticCurve;Ljava/security/spec/ECPoint;Ljava/math/BigInteger;I)V
areturn
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 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 7 0 name Ljava/lang/String;
0 7 1 oid Ljava/lang/String;
0 7 2 sfield Ljava/lang/String;
0 7 3 a Ljava/lang/String;
0 7 4 b Ljava/lang/String;
0 7 5 x Ljava/lang/String;
0 7 6 y Ljava/lang/String;
0 7 7 n Ljava/lang/String;
0 7 8 h I
1 7 9 p Ljava/math/BigInteger;
2 7 10 field Ljava/security/spec/ECField;
5 7 11 curve Ljava/security/spec/EllipticCurve;
6 7 12 g Ljava/security/spec/ECPoint;
MethodParameters:
Name Flags
name
oid
sfield
a
b
x
y
n
h
void <init>(java.security.interfaces.ECPublicKey);
descriptor: (Ljava/security/interfaces/ECPublicKey;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.jcp.xml.dsig.internal.dom.DOMKeyValue.<init>:(Ljava/security/PublicKey;)V
1: aload 1
invokeinterface java.security.interfaces.ECPublicKey.getW:()Ljava/security/spec/ECPoint;
astore 2
start local 2 2: aload 0
aload 1
invokeinterface java.security.interfaces.ECPublicKey.getParams:()Ljava/security/spec/ECParameterSpec;
putfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.ecParams:Ljava/security/spec/ECParameterSpec;
3: aload 0
aload 2
aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.ecParams:Ljava/security/spec/ECParameterSpec;
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.encodePoint:(Ljava/security/spec/ECPoint;Ljava/security/spec/EllipticCurve;)[B
putfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.ecPublicKey:[B
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC;
0 5 1 ecKey Ljava/security/interfaces/ECPublicKey;
2 5 2 ecPoint Ljava/security/spec/ECPoint;
Exceptions:
throws java.security.KeyException
MethodParameters:
Name Flags
ecKey
void <init>(org.w3c.dom.Element);
descriptor: (Lorg/w3c/dom/Element;)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.DOMKeyValue.<init>:(Lorg/w3c/dom/Element;)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/DOMKeyValue$EC;
0 2 1 dmElem Lorg/w3c/dom/Element;
Exceptions:
throws javax.xml.crypto.MarshalException
MethodParameters:
Name Flags
dmElem
private static java.security.spec.ECPoint decodePoint(byte[], java.security.spec.EllipticCurve);
descriptor: ([BLjava/security/spec/EllipticCurve;)Ljava/security/spec/ECPoint;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: aload 0
arraylength
ifeq 1
aload 0
iconst_0
baload
iconst_4
if_icmpeq 2
1: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "Only uncompressed point format supported"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
arraylength
iconst_1
isub
iconst_2
idiv
istore 2
start local 2 3: iload 2
aload 1
invokevirtual java.security.spec.EllipticCurve.getField:()Ljava/security/spec/ECField;
invokeinterface java.security.spec.ECField.getFieldSize:()I
bipush 7
iadd
iconst_3
ishr
if_icmpeq 5
4: new java.io.IOException
dup
ldc "Point does not match field size"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: int
StackMap stack:
aload 0
iconst_1
iconst_1
iload 2
iadd
invokestatic java.util.Arrays.copyOfRange:([BII)[B
astore 3
start local 3 6: aload 0
iload 2
iconst_1
iadd
iload 2
iconst_1
iadd
iload 2
iadd
invokestatic java.util.Arrays.copyOfRange:([BII)[B
astore 4
start local 4 7: new java.security.spec.ECPoint
dup
new java.math.BigInteger
dup
iconst_1
aload 3
invokespecial java.math.BigInteger.<init>:(I[B)V
new java.math.BigInteger
dup
iconst_1
aload 4
invokespecial java.math.BigInteger.<init>:(I[B)V
invokespecial java.security.spec.ECPoint.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 data [B
0 8 1 curve Ljava/security/spec/EllipticCurve;
3 8 2 n I
6 8 3 xb [B
7 8 4 yb [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
data
curve
private static byte[] encodePoint(java.security.spec.ECPoint, java.security.spec.EllipticCurve);
descriptor: (Ljava/security/spec/ECPoint;Ljava/security/spec/EllipticCurve;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.security.spec.EllipticCurve.getField:()Ljava/security/spec/ECField;
invokeinterface java.security.spec.ECField.getFieldSize:()I
bipush 7
iadd
iconst_3
ishr
istore 2
start local 2 1: aload 0
invokevirtual java.security.spec.ECPoint.getAffineX:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toByteArray:()[B
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.trimZeroes:([B)[B
astore 3
start local 3 2: aload 0
invokevirtual java.security.spec.ECPoint.getAffineY:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toByteArray:()[B
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.trimZeroes:([B)[B
astore 4
start local 4 3: aload 3
arraylength
iload 2
if_icmpgt 4
aload 4
arraylength
iload 2
if_icmple 5
4: StackMap locals: int byte[] byte[]
StackMap stack:
new java.lang.RuntimeException
dup
ldc "Point coordinates do not match field size"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
iconst_1
iload 2
iconst_1
ishl
iadd
newarray 8
astore 5
start local 5 6: aload 5
iconst_0
iconst_4
bastore
7: aload 3
iconst_0
aload 5
iload 2
aload 3
arraylength
isub
iconst_1
iadd
aload 3
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 4
iconst_0
aload 5
aload 5
arraylength
aload 4
arraylength
isub
aload 4
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: aload 5
areturn
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 10 0 point Ljava/security/spec/ECPoint;
0 10 1 curve Ljava/security/spec/EllipticCurve;
1 10 2 n I
2 10 3 xb [B
3 10 4 yb [B
6 10 5 b [B
MethodParameters:
Name Flags
point
curve
private static byte[] trimZeroes(byte[]);
descriptor: ([B)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 3
2: StackMap locals: int
StackMap stack:
iinc 1 1
3: StackMap locals:
StackMap stack:
iload 1
aload 0
arraylength
iconst_1
isub
if_icmpge 4
aload 0
iload 1
baload
ifeq 2
4: StackMap locals:
StackMap stack:
iload 1
ifne 6
5: aload 0
areturn
6: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 0
arraylength
invokestatic java.util.Arrays.copyOfRange:([BII)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 b [B
1 7 1 i I
MethodParameters:
Name Flags
b
private static java.lang.String getCurveOid(java.security.spec.ECParameterSpec);
descriptor: (Ljava/security/spec/ECParameterSpec;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP256R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.matchCurve:(Ljava/security/spec/ECParameterSpec;Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;)Z
ifeq 3
1: getstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP256R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
astore 1
start local 1 2: goto 10
end local 1 StackMap locals:
StackMap stack:
3: aload 0
getstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP384R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.matchCurve:(Ljava/security/spec/ECParameterSpec;Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;)Z
ifeq 6
4: getstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP384R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
astore 1
start local 1 5: goto 10
end local 1 StackMap locals:
StackMap stack:
6: aload 0
getstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP521R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.matchCurve:(Ljava/security/spec/ECParameterSpec;Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;)Z
ifeq 9
7: getstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP521R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
astore 1
start local 1 8: goto 10
end local 1 9: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 1 10: StackMap locals: org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve
StackMap stack:
aload 1
invokevirtual org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve.getObjectId:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 params Ljava/security/spec/ECParameterSpec;
2 3 1 match Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
5 6 1 match Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
8 9 1 match Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
10 11 1 match Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
MethodParameters:
Name Flags
params
private static boolean matchCurve(java.security.spec.ECParameterSpec, org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve);
descriptor: (Ljava/security/spec/ECParameterSpec;Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
invokevirtual java.security.spec.EllipticCurve.getField:()Ljava/security/spec/ECField;
invokeinterface java.security.spec.ECField.getFieldSize:()I
istore 2
start local 2 1: aload 1
invokevirtual org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve.getCurve:()Ljava/security/spec/EllipticCurve;
invokevirtual java.security.spec.EllipticCurve.getField:()Ljava/security/spec/ECField;
invokeinterface java.security.spec.ECField.getFieldSize:()I
iload 2
if_icmpne 7
2: aload 1
invokevirtual org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve.getCurve:()Ljava/security/spec/EllipticCurve;
aload 0
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
invokevirtual java.security.spec.EllipticCurve.equals:(Ljava/lang/Object;)Z
ifeq 7
3: aload 1
invokevirtual org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve.getGenerator:()Ljava/security/spec/ECPoint;
aload 0
invokevirtual java.security.spec.ECParameterSpec.getGenerator:()Ljava/security/spec/ECPoint;
invokevirtual java.security.spec.ECPoint.equals:(Ljava/lang/Object;)Z
ifeq 7
4: aload 1
invokevirtual org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve.getOrder:()Ljava/math/BigInteger;
aload 0
invokevirtual java.security.spec.ECParameterSpec.getOrder:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
ifeq 7
5: aload 1
invokevirtual org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve.getCofactor:()I
aload 0
invokevirtual java.security.spec.ECParameterSpec.getCofactor:()I
if_icmpne 7
6: iconst_1
ireturn
7: StackMap locals: int
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 params Ljava/security/spec/ECParameterSpec;
0 8 1 curve Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
1 8 2 fieldSize I
MethodParameters:
Name Flags
params
curve
void marshalPublicKey(org.w3c.dom.Node, org.w3c.dom.Document, java.lang.String, javax.xml.crypto.dom.DOMCryptoContext);
descriptor: (Lorg/w3c/dom/Node;Lorg/w3c/dom/Document;Ljava/lang/String;Ljavax/xml/crypto/dom/DOMCryptoContext;)V
flags: (0x0000)
Code:
stack=5, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 4
ldc "http://www.w3.org/2009/xmldsig11#"
invokestatic org.jcp.xml.dsig.internal.dom.DOMUtils.getNSPrefix:(Ljavax/xml/crypto/XMLCryptoContext;Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 1: aload 2
ldc "ECKeyValue"
2: ldc "http://www.w3.org/2009/xmldsig11#"
3: aload 5
4: invokestatic org.jcp.xml.dsig.internal.dom.DOMUtils.createElement:(Lorg/w3c/dom/Document;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
astore 6
start local 6 5: aload 2
ldc "NamedCurve"
6: ldc "http://www.w3.org/2009/xmldsig11#"
7: aload 5
8: invokestatic org.jcp.xml.dsig.internal.dom.DOMUtils.createElement:(Lorg/w3c/dom/Document;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
astore 7
start local 7 9: aload 2
ldc "PublicKey"
10: ldc "http://www.w3.org/2009/xmldsig11#"
11: aload 5
12: invokestatic org.jcp.xml.dsig.internal.dom.DOMUtils.createElement:(Lorg/w3c/dom/Document;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
astore 8
start local 8 13: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.ecParams:Ljava/security/spec/ECParameterSpec;
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.getCurveOid:(Ljava/security/spec/ECParameterSpec;)Ljava/lang/String;
astore 9
start local 9 14: aload 9
ifnonnull 16
15: new javax.xml.crypto.MarshalException
dup
ldc "Invalid ECParameterSpec"
invokespecial javax.xml.crypto.MarshalException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals: org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC org.w3c.dom.Node org.w3c.dom.Document java.lang.String javax.xml.crypto.dom.DOMCryptoContext java.lang.String org.w3c.dom.Element org.w3c.dom.Element org.w3c.dom.Element java.lang.String
StackMap stack:
aload 7
ldc "URI"
new java.lang.StringBuilder
dup
ldc "urn:oid:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.jcp.xml.dsig.internal.dom.DOMUtils.setAttribute:(Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)V
17: aload 5
ifnull 18
aload 5
invokevirtual java.lang.String.length:()I
ifne 19
18: StackMap locals:
StackMap stack:
ldc "xmlns"
goto 20
StackMap locals:
StackMap stack:
19: new java.lang.StringBuilder
dup
ldc "xmlns:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: StackMap locals:
StackMap stack: java.lang.String
astore 10
start local 10 21: aload 7
ldc "http://www.w3.org/2000/xmlns/"
22: aload 10
ldc "http://www.w3.org/2009/xmldsig11#"
23: invokeinterface org.w3c.dom.Element.setAttributeNS:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
24: aload 6
aload 7
invokeinterface org.w3c.dom.Element.appendChild:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
pop
25: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.ecPublicKey:[B
invokestatic com.sun.org.apache.xml.internal.security.utils.XMLUtils.encodeToString:([B)Ljava/lang/String;
astore 11
start local 11 26: aload 8
27: aload 8
invokestatic org.jcp.xml.dsig.internal.dom.DOMUtils.getOwnerDocument:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Document;
aload 11
invokeinterface org.w3c.dom.Document.createTextNode:(Ljava/lang/String;)Lorg/w3c/dom/Text;
28: invokeinterface org.w3c.dom.Element.appendChild:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
pop
29: aload 6
aload 8
invokeinterface org.w3c.dom.Element.appendChild:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
pop
30: aload 1
aload 6
invokeinterface org.w3c.dom.Node.appendChild:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
pop
31: return
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 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 32 0 this Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC;
0 32 1 parent Lorg/w3c/dom/Node;
0 32 2 doc Lorg/w3c/dom/Document;
0 32 3 dsPrefix Ljava/lang/String;
0 32 4 context Ljavax/xml/crypto/dom/DOMCryptoContext;
1 32 5 prefix Ljava/lang/String;
5 32 6 ecKeyValueElem Lorg/w3c/dom/Element;
9 32 7 namedCurveElem Lorg/w3c/dom/Element;
13 32 8 publicKeyElem Lorg/w3c/dom/Element;
14 32 9 oid Ljava/lang/String;
21 32 10 qname Ljava/lang/String;
26 32 11 encoded Ljava/lang/String;
Exceptions:
throws javax.xml.crypto.MarshalException
MethodParameters:
Name Flags
parent
doc
dsPrefix
context
java.security.interfaces.ECPublicKey unmarshalKeyValue(org.w3c.dom.Element);
descriptor: (Lorg/w3c/dom/Element;)Ljava/security/interfaces/ECPublicKey;
flags: (0x0000)
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.eckf:Ljava/security/KeyFactory;
ifnonnull 7
1: aload 0
ldc "EC"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
putfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.eckf:Ljava/security/KeyFactory;
2: goto 7
StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
3: astore 2
start local 2 4: new java.lang.RuntimeException
dup
5: new java.lang.StringBuilder
dup
ldc "unable to create EC KeyFactory: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.security.NoSuchAlgorithmException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 2 7: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 8: aload 1
invokestatic org.jcp.xml.dsig.internal.dom.DOMUtils.getFirstChildElement:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Element;
astore 3
start local 3 9: aload 3
ifnonnull 11
10: new javax.xml.crypto.MarshalException
dup
ldc "KeyValue must contain at least one type"
invokespecial javax.xml.crypto.MarshalException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: java.security.spec.ECParameterSpec org.w3c.dom.Element
StackMap stack:
aload 3
invokeinterface org.w3c.dom.Element.getLocalName:()Ljava/lang/String;
ldc "ECParameters"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 16
12: ldc "http://www.w3.org/2009/xmldsig11#"
aload 3
invokeinterface org.w3c.dom.Element.getNamespaceURI:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 16
13: new java.lang.UnsupportedOperationException
dup
14: ldc "ECParameters not supported"
15: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.w3c.dom.Element.getLocalName:()Ljava/lang/String;
ldc "NamedCurve"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
17: ldc "http://www.w3.org/2009/xmldsig11#"
aload 3
invokeinterface org.w3c.dom.Element.getNamespaceURI:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
18: aload 3
ldc "URI"
invokestatic org.jcp.xml.dsig.internal.dom.DOMUtils.getAttributeValue:(Lorg/w3c/dom/Element;Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 19: aload 4
ldc "urn:oid:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 24
20: aload 4
ldc "urn:oid:"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 5
start local 5 21: aload 5
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.getECParameterSpec:(Ljava/lang/String;)Ljava/security/spec/ECParameterSpec;
astore 2
22: aload 2
ifnonnull 26
23: new javax.xml.crypto.MarshalException
dup
ldc "Invalid curve OID"
invokespecial javax.xml.crypto.MarshalException.<init>:(Ljava/lang/String;)V
athrow
end local 5 24: StackMap locals: java.lang.String
StackMap stack:
new javax.xml.crypto.MarshalException
dup
ldc "Invalid NamedCurve URI"
invokespecial javax.xml.crypto.MarshalException.<init>:(Ljava/lang/String;)V
athrow
end local 4 25: StackMap locals:
StackMap stack:
new javax.xml.crypto.MarshalException
dup
ldc "Invalid ECKeyValue"
invokespecial javax.xml.crypto.MarshalException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 3
ldc "PublicKey"
ldc "http://www.w3.org/2009/xmldsig11#"
invokestatic org.jcp.xml.dsig.internal.dom.DOMUtils.getNextSiblingElement:(Lorg/w3c/dom/Node;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
astore 3
27: aconst_null
astore 4
start local 4 28: aload 3
invokestatic com.sun.org.apache.xml.internal.security.utils.XMLUtils.getFullTextChildrenFromElement:(Lorg/w3c/dom/Element;)Ljava/lang/String;
astore 5
start local 5 29: aload 5
invokestatic com.sun.org.apache.xml.internal.security.utils.XMLUtils.decode:(Ljava/lang/String;)[B
30: aload 2
invokevirtual java.security.spec.ECParameterSpec.getCurve:()Ljava/security/spec/EllipticCurve;
31: invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.decodePoint:([BLjava/security/spec/EllipticCurve;)Ljava/security/spec/ECPoint;
astore 4
end local 5 32: goto 35
StackMap locals: org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC org.w3c.dom.Element java.security.spec.ECParameterSpec org.w3c.dom.Element java.security.spec.ECPoint
StackMap stack: java.io.IOException
33: astore 5
start local 5 34: new javax.xml.crypto.MarshalException
dup
ldc "Invalid EC Point"
aload 5
invokespecial javax.xml.crypto.MarshalException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 35: StackMap locals:
StackMap stack:
new java.security.spec.ECPublicKeySpec
dup
aload 4
aload 2
invokespecial java.security.spec.ECPublicKeySpec.<init>:(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V
astore 5
start local 5 36: aload 0
getfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.eckf:Ljava/security/KeyFactory;
aload 5
invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue.generatePublicKey:(Ljava/security/KeyFactory;Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
checkcast java.security.interfaces.ECPublicKey
areturn
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/DOMKeyValue$EC;
0 37 1 kvtElem Lorg/w3c/dom/Element;
4 7 2 e Ljava/security/NoSuchAlgorithmException;
8 37 2 ecParams Ljava/security/spec/ECParameterSpec;
9 37 3 curElem Lorg/w3c/dom/Element;
19 25 4 uri Ljava/lang/String;
21 24 5 oid Ljava/lang/String;
28 37 4 ecPoint Ljava/security/spec/ECPoint;
29 32 5 content Ljava/lang/String;
34 35 5 ioe Ljava/io/IOException;
36 37 5 spec Ljava/security/spec/ECPublicKeySpec;
Exception table:
from to target type
1 2 3 Class java.security.NoSuchAlgorithmException
28 32 33 Class java.io.IOException
Exceptions:
throws javax.xml.crypto.MarshalException
MethodParameters:
Name Flags
kvtElem
private static java.security.spec.ECParameterSpec getECParameterSpec(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/spec/ECParameterSpec;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP256R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
invokevirtual org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve.getObjectId:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: getstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP256R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP384R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
invokevirtual org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve.getObjectId:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: getstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP384R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
areturn
4: StackMap locals:
StackMap stack:
aload 0
getstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP521R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
invokevirtual org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve.getObjectId:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: getstatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.SECP521R1:Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$EC$Curve;
areturn
6: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 oid Ljava/lang/String;
MethodParameters:
Name Flags
oid
java.security.PublicKey unmarshalKeyValue(org.w3c.dom.Element);
descriptor: (Lorg/w3c/dom/Element;)Ljava/security/PublicKey;
flags: (0x1040) ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.unmarshalKeyValue:(Lorg/w3c/dom/Element;)Ljava/security/interfaces/ECPublicKey;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws javax.xml.crypto.MarshalException
}
Signature: Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue<Ljava/security/interfaces/ECPublicKey;>;
SourceFile: "DOMKeyValue.java"
NestHost: org.jcp.xml.dsig.internal.dom.DOMKeyValue
InnerClasses:
final EC = org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC of org.jcp.xml.dsig.internal.dom.DOMKeyValue
final Curve = org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$Curve of org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC