final class org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA extends org.jcp.xml.dsig.internal.dom.DOMKeyValue<java.security.interfaces.RSAPublicKey>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA
  super_class: org.jcp.xml.dsig.internal.dom.DOMKeyValue
{
  private org.jcp.xml.dsig.internal.dom.DOMCryptoBinary modulus;
    descriptor: Lorg/jcp/xml/dsig/internal/dom/DOMCryptoBinary;
    flags: (0x0002) ACC_PRIVATE

  private org.jcp.xml.dsig.internal.dom.DOMCryptoBinary exponent;
    descriptor: Lorg/jcp/xml/dsig/internal/dom/DOMCryptoBinary;
    flags: (0x0002) ACC_PRIVATE

  private java.security.KeyFactory rsakf;
    descriptor: Ljava/security/KeyFactory;
    flags: (0x0002) ACC_PRIVATE

  void <init>(java.security.interfaces.RSAPublicKey);
    descriptor: (Ljava/security/interfaces/RSAPublicKey;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA this
        start local 1 // java.security.interfaces.RSAPublicKey key
         0: .line 194
            aload 0 /* this */
            aload 1 /* key */
            invokespecial org.jcp.xml.dsig.internal.dom.DOMKeyValue.<init>:(Ljava/security/PublicKey;)V
         1: .line 195
            aload 1 /* key */
            astore 2 /* rkey */
        start local 2 // java.security.interfaces.RSAPublicKey rkey
         2: .line 196
            aload 0 /* this */
            new org.jcp.xml.dsig.internal.dom.DOMCryptoBinary
            dup
            aload 2 /* rkey */
            invokeinterface java.security.interfaces.RSAPublicKey.getPublicExponent:()Ljava/math/BigInteger;
            invokespecial org.jcp.xml.dsig.internal.dom.DOMCryptoBinary.<init>:(Ljava/math/BigInteger;)V
            putfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA.exponent:Lorg/jcp/xml/dsig/internal/dom/DOMCryptoBinary;
         3: .line 197
            aload 0 /* this */
            new org.jcp.xml.dsig.internal.dom.DOMCryptoBinary
            dup
            aload 2 /* rkey */
            invokeinterface java.security.interfaces.RSAPublicKey.getModulus:()Ljava/math/BigInteger;
            invokespecial org.jcp.xml.dsig.internal.dom.DOMCryptoBinary.<init>:(Ljava/math/BigInteger;)V
            putfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA.modulus:Lorg/jcp/xml/dsig/internal/dom/DOMCryptoBinary;
         4: .line 198
            return
        end local 2 // java.security.interfaces.RSAPublicKey rkey
        end local 1 // java.security.interfaces.RSAPublicKey key
        end local 0 // org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$RSA;
            0    5     1   key  Ljava/security/interfaces/RSAPublicKey;
            2    5     2  rkey  Ljava/security/interfaces/RSAPublicKey;
    Exceptions:
      throws java.security.KeyException
    MethodParameters:
      Name  Flags
      key   

  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 // org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA this
        start local 1 // org.w3c.dom.Element elem
         0: .line 201
            aload 0 /* this */
            aload 1 /* elem */
            invokespecial org.jcp.xml.dsig.internal.dom.DOMKeyValue.<init>:(Lorg/w3c/dom/Element;)V
         1: .line 202
            return
        end local 1 // org.w3c.dom.Element elem
        end local 0 // org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$RSA;
            0    2     1  elem  Lorg/w3c/dom/Element;
    Exceptions:
      throws javax.xml.crypto.MarshalException
    MethodParameters:
      Name  Flags
      elem  

  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=4, locals=8, args_size=5
        start local 0 // org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA this
        start local 1 // org.w3c.dom.Node parent
        start local 2 // org.w3c.dom.Document doc
        start local 3 // java.lang.String dsPrefix
        start local 4 // javax.xml.crypto.dom.DOMCryptoContext context
         0: .line 206
            aload 2 /* doc */
            ldc "RSAKeyValue"
         1: .line 207
            ldc "http://www.w3.org/2000/09/xmldsig#"
         2: .line 208
            aload 3 /* dsPrefix */
         3: .line 206
            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 5 /* rsaElem */
        start local 5 // org.w3c.dom.Element rsaElem
         4: .line 209
            aload 2 /* doc */
            ldc "Modulus"
         5: .line 210
            ldc "http://www.w3.org/2000/09/xmldsig#"
         6: .line 211
            aload 3 /* dsPrefix */
         7: .line 209
            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 /* modulusElem */
        start local 6 // org.w3c.dom.Element modulusElem
         8: .line 212
            aload 2 /* doc */
            ldc "Exponent"
         9: .line 213
            ldc "http://www.w3.org/2000/09/xmldsig#"
        10: .line 214
            aload 3 /* dsPrefix */
        11: .line 212
            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 /* exponentElem */
        start local 7 // org.w3c.dom.Element exponentElem
        12: .line 215
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA.modulus:Lorg/jcp/xml/dsig/internal/dom/DOMCryptoBinary;
            aload 6 /* modulusElem */
            aload 3 /* dsPrefix */
            aload 4 /* context */
            invokevirtual org.jcp.xml.dsig.internal.dom.DOMCryptoBinary.marshal:(Lorg/w3c/dom/Node;Ljava/lang/String;Ljavax/xml/crypto/dom/DOMCryptoContext;)V
        13: .line 216
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA.exponent:Lorg/jcp/xml/dsig/internal/dom/DOMCryptoBinary;
            aload 7 /* exponentElem */
            aload 3 /* dsPrefix */
            aload 4 /* context */
            invokevirtual org.jcp.xml.dsig.internal.dom.DOMCryptoBinary.marshal:(Lorg/w3c/dom/Node;Ljava/lang/String;Ljavax/xml/crypto/dom/DOMCryptoContext;)V
        14: .line 217
            aload 5 /* rsaElem */
            aload 6 /* modulusElem */
            invokeinterface org.w3c.dom.Element.appendChild:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
            pop
        15: .line 218
            aload 5 /* rsaElem */
            aload 7 /* exponentElem */
            invokeinterface org.w3c.dom.Element.appendChild:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
            pop
        16: .line 219
            aload 1 /* parent */
            aload 5 /* rsaElem */
            invokeinterface org.w3c.dom.Node.appendChild:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
            pop
        17: .line 220
            return
        end local 7 // org.w3c.dom.Element exponentElem
        end local 6 // org.w3c.dom.Element modulusElem
        end local 5 // org.w3c.dom.Element rsaElem
        end local 4 // javax.xml.crypto.dom.DOMCryptoContext context
        end local 3 // java.lang.String dsPrefix
        end local 2 // org.w3c.dom.Document doc
        end local 1 // org.w3c.dom.Node parent
        end local 0 // org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$RSA;
            0   18     1        parent  Lorg/w3c/dom/Node;
            0   18     2           doc  Lorg/w3c/dom/Document;
            0   18     3      dsPrefix  Ljava/lang/String;
            0   18     4       context  Ljavax/xml/crypto/dom/DOMCryptoContext;
            4   18     5       rsaElem  Lorg/w3c/dom/Element;
            8   18     6   modulusElem  Lorg/w3c/dom/Element;
           12   18     7  exponentElem  Lorg/w3c/dom/Element;
    Exceptions:
      throws javax.xml.crypto.MarshalException
    MethodParameters:
          Name  Flags
      parent    
      doc       
      dsPrefix  
      context   

  java.security.interfaces.RSAPublicKey unmarshalKeyValue(org.w3c.dom.Element);
    descriptor: (Lorg/w3c/dom/Element;)Ljava/security/interfaces/RSAPublicKey;
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA this
        start local 1 // org.w3c.dom.Element kvtElem
         0: .line 226
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA.rsakf:Ljava/security/KeyFactory;
            ifnonnull 7
         1: .line 228
            aload 0 /* this */
            ldc "RSA"
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            putfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA.rsakf:Ljava/security/KeyFactory;
         2: .line 229
            goto 7
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
         3: astore 2 /* e */
        start local 2 // java.security.NoSuchAlgorithmException e
         4: .line 230
            new java.lang.RuntimeException
            dup
         5: .line 231
            new java.lang.StringBuilder
            dup
            ldc "unable to create RSA KeyFactory: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            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: .line 230
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.security.NoSuchAlgorithmException e
         7: .line 234
      StackMap locals:
      StackMap stack:
            aload 1 /* kvtElem */
         8: .line 235
            ldc "Modulus"
         9: .line 236
            ldc "http://www.w3.org/2000/09/xmldsig#"
        10: .line 234
            invokestatic org.jcp.xml.dsig.internal.dom.DOMUtils.getFirstChildElement:(Lorg/w3c/dom/Node;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
            astore 2 /* modulusElem */
        start local 2 // org.w3c.dom.Element modulusElem
        11: .line 237
            aload 2 /* modulusElem */
            invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA.decode:(Lorg/w3c/dom/Element;)Ljava/math/BigInteger;
            astore 3 /* modulus */
        start local 3 // java.math.BigInteger modulus
        12: .line 238
            aload 2 /* modulusElem */
        13: .line 239
            ldc "Exponent"
        14: .line 240
            ldc "http://www.w3.org/2000/09/xmldsig#"
        15: .line 238
            invokestatic org.jcp.xml.dsig.internal.dom.DOMUtils.getNextSiblingElement:(Lorg/w3c/dom/Node;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
            astore 4 /* exponentElem */
        start local 4 // org.w3c.dom.Element exponentElem
        16: .line 241
            aload 4 /* exponentElem */
            invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA.decode:(Lorg/w3c/dom/Element;)Ljava/math/BigInteger;
            astore 5 /* exponent */
        start local 5 // java.math.BigInteger exponent
        17: .line 242
            new java.security.spec.RSAPublicKeySpec
            dup
            aload 3 /* modulus */
            aload 5 /* exponent */
            invokespecial java.security.spec.RSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 6 /* spec */
        start local 6 // java.security.spec.RSAPublicKeySpec spec
        18: .line 243
            aload 0 /* this */
            getfield org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA.rsakf:Ljava/security/KeyFactory;
            aload 6 /* spec */
            invokestatic org.jcp.xml.dsig.internal.dom.DOMKeyValue.generatePublicKey:(Ljava/security/KeyFactory;Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
            checkcast java.security.interfaces.RSAPublicKey
            areturn
        end local 6 // java.security.spec.RSAPublicKeySpec spec
        end local 5 // java.math.BigInteger exponent
        end local 4 // org.w3c.dom.Element exponentElem
        end local 3 // java.math.BigInteger modulus
        end local 2 // org.w3c.dom.Element modulusElem
        end local 1 // org.w3c.dom.Element kvtElem
        end local 0 // org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue$RSA;
            0   19     1       kvtElem  Lorg/w3c/dom/Element;
            4    7     2             e  Ljava/security/NoSuchAlgorithmException;
           11   19     2   modulusElem  Lorg/w3c/dom/Element;
           12   19     3       modulus  Ljava/math/BigInteger;
           16   19     4  exponentElem  Lorg/w3c/dom/Element;
           17   19     5      exponent  Ljava/math/BigInteger;
           18   19     6          spec  Ljava/security/spec/RSAPublicKeySpec;
      Exception table:
        from    to  target  type
           1     2       3  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws javax.xml.crypto.MarshalException
    MethodParameters:
         Name  Flags
      kvtElem  

  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: .line 1
            aload 0
            aload 1
            invokevirtual org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA.unmarshalKeyValue:(Lorg/w3c/dom/Element;)Ljava/security/interfaces/RSAPublicKey;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws javax.xml.crypto.MarshalException
}
Signature: Lorg/jcp/xml/dsig/internal/dom/DOMKeyValue<Ljava/security/interfaces/RSAPublicKey;>;
SourceFile: "DOMKeyValue.java"
NestHost: org.jcp.xml.dsig.internal.dom.DOMKeyValue
InnerClasses:
  final RSA = org.jcp.xml.dsig.internal.dom.DOMKeyValue$RSA of org.jcp.xml.dsig.internal.dom.DOMKeyValue