public final class com.sun.crypto.provider.OAEPParameters extends java.security.AlgorithmParametersSpi
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.sun.crypto.provider.OAEPParameters
  super_class: java.security.AlgorithmParametersSpi
{
  private java.lang.String mdName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.security.spec.MGF1ParameterSpec mgfSpec;
    descriptor: Ljava/security/spec/MGF1ParameterSpec;
    flags: (0x0002) ACC_PRIVATE

  private byte[] p;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private static sun.security.util.ObjectIdentifier OID_MGF1;
    descriptor: Lsun/security/util/ObjectIdentifier;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.security.util.ObjectIdentifier OID_PSpecified;
    descriptor: Lsun/security/util/ObjectIdentifier;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 63
            new sun.security.util.ObjectIdentifier
            dup
            bipush 7
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_2
            iastore
            dup
            iconst_2
            sipush 840
            iastore
            dup
            iconst_3
            ldc 113549
            iastore
            dup
            iconst_4
            iconst_1
            iastore
            dup
            iconst_5
            iconst_1
            iastore
            dup
            bipush 6
            bipush 8
            iastore
            invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
            putstatic com.sun.crypto.provider.OAEPParameters.OID_MGF1:Lsun/security/util/ObjectIdentifier;
         1: .line 64
            goto 4
      StackMap locals:
      StackMap stack: java.io.IOException
         2: pop
         3: .line 66
            aconst_null
            putstatic com.sun.crypto.provider.OAEPParameters.OID_MGF1:Lsun/security/util/ObjectIdentifier;
         4: .line 70
      StackMap locals:
      StackMap stack:
            new sun.security.util.ObjectIdentifier
            dup
            bipush 7
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_2
            iastore
            dup
            iconst_2
            sipush 840
            iastore
            dup
            iconst_3
            ldc 113549
            iastore
            dup
            iconst_4
            iconst_1
            iastore
            dup
            iconst_5
            iconst_1
            iastore
            dup
            bipush 6
            bipush 9
            iastore
            invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
         5: .line 69
            putstatic com.sun.crypto.provider.OAEPParameters.OID_PSpecified:Lsun/security/util/ObjectIdentifier;
         6: .line 71
            goto 9
      StackMap locals:
      StackMap stack: java.io.IOException
         7: pop
         8: .line 73
            aconst_null
            putstatic com.sun.crypto.provider.OAEPParameters.OID_PSpecified:Lsun/security/util/ObjectIdentifier;
         9: .line 75
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
           4     6       7  Class java.io.IOException

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.crypto.provider.OAEPParameters this
         0: .line 77
            aload 0 /* this */
            invokespecial java.security.AlgorithmParametersSpi.<init>:()V
         1: .line 78
            return
        end local 0 // com.sun.crypto.provider.OAEPParameters this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/crypto/provider/OAEPParameters;

  protected void engineInit(java.security.spec.AlgorithmParameterSpec);
    descriptor: (Ljava/security/spec/AlgorithmParameterSpec;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // com.sun.crypto.provider.OAEPParameters this
        start local 1 // java.security.spec.AlgorithmParameterSpec paramSpec
         0: .line 82
            aload 1 /* paramSpec */
            instanceof javax.crypto.spec.OAEPParameterSpec
            ifne 4
         1: .line 83
            new java.security.spec.InvalidParameterSpecException
            dup
         2: .line 84
            ldc "Inappropriate parameter specification"
         3: .line 83
            invokespecial java.security.spec.InvalidParameterSpecException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 86
      StackMap locals:
      StackMap stack:
            aload 1 /* paramSpec */
            checkcast javax.crypto.spec.OAEPParameterSpec
            astore 2 /* spec */
        start local 2 // javax.crypto.spec.OAEPParameterSpec spec
         5: .line 87
            aload 0 /* this */
            aload 2 /* spec */
            invokevirtual javax.crypto.spec.OAEPParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
            putfield com.sun.crypto.provider.OAEPParameters.mdName:Ljava/lang/String;
         6: .line 88
            aload 2 /* spec */
            invokevirtual javax.crypto.spec.OAEPParameterSpec.getMGFAlgorithm:()Ljava/lang/String;
            astore 3 /* mgfName */
        start local 3 // java.lang.String mgfName
         7: .line 89
            aload 3 /* mgfName */
            ldc "MGF1"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 11
         8: .line 90
            new java.security.spec.InvalidParameterSpecException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported mgf "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 91
            aload 3 /* mgfName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "; MGF1 only"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 90
            invokespecial java.security.spec.InvalidParameterSpecException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 93
      StackMap locals: javax.crypto.spec.OAEPParameterSpec java.lang.String
      StackMap stack:
            aload 2 /* spec */
            invokevirtual javax.crypto.spec.OAEPParameterSpec.getMGFParameters:()Ljava/security/spec/AlgorithmParameterSpec;
            astore 4 /* mgfSpec */
        start local 4 // java.security.spec.AlgorithmParameterSpec mgfSpec
        12: .line 94
            aload 4 /* mgfSpec */
            instanceof java.security.spec.MGF1ParameterSpec
            ifne 14
        13: .line 95
            new java.security.spec.InvalidParameterSpecException
            dup
            ldc "Inappropriate mgf parameters; non-null MGF1ParameterSpec only"
            invokespecial java.security.spec.InvalidParameterSpecException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 98
      StackMap locals: java.security.spec.AlgorithmParameterSpec
      StackMap stack:
            aload 0 /* this */
            aload 4 /* mgfSpec */
            checkcast java.security.spec.MGF1ParameterSpec
            putfield com.sun.crypto.provider.OAEPParameters.mgfSpec:Ljava/security/spec/MGF1ParameterSpec;
        15: .line 99
            aload 2 /* spec */
            invokevirtual javax.crypto.spec.OAEPParameterSpec.getPSource:()Ljavax/crypto/spec/PSource;
            astore 5 /* pSrc */
        start local 5 // javax.crypto.spec.PSource pSrc
        16: .line 100
            aload 5 /* pSrc */
            invokevirtual javax.crypto.spec.PSource.getAlgorithm:()Ljava/lang/String;
            ldc "PSpecified"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 101
            aload 0 /* this */
            aload 5 /* pSrc */
            checkcast javax.crypto.spec.PSource$PSpecified
            invokevirtual javax.crypto.spec.PSource$PSpecified.getValue:()[B
            putfield com.sun.crypto.provider.OAEPParameters.p:[B
        18: .line 102
            goto 22
        19: .line 103
      StackMap locals: javax.crypto.spec.PSource
      StackMap stack:
            new java.security.spec.InvalidParameterSpecException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported pSource "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        20: .line 104
            aload 5 /* pSrc */
            invokevirtual javax.crypto.spec.PSource.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "; PSpecified only"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 103
            invokespecial java.security.spec.InvalidParameterSpecException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 106
      StackMap locals:
      StackMap stack:
            return
        end local 5 // javax.crypto.spec.PSource pSrc
        end local 4 // java.security.spec.AlgorithmParameterSpec mgfSpec
        end local 3 // java.lang.String mgfName
        end local 2 // javax.crypto.spec.OAEPParameterSpec spec
        end local 1 // java.security.spec.AlgorithmParameterSpec paramSpec
        end local 0 // com.sun.crypto.provider.OAEPParameters this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   23     0       this  Lcom/sun/crypto/provider/OAEPParameters;
            0   23     1  paramSpec  Ljava/security/spec/AlgorithmParameterSpec;
            5   23     2       spec  Ljavax/crypto/spec/OAEPParameterSpec;
            7   23     3    mgfName  Ljava/lang/String;
           12   23     4    mgfSpec  Ljava/security/spec/AlgorithmParameterSpec;
           16   23     5       pSrc  Ljavax/crypto/spec/PSource;
    Exceptions:
      throws java.security.spec.InvalidParameterSpecException
    MethodParameters:
           Name  Flags
      paramSpec  

  protected void engineInit(byte[]);
    descriptor: ([B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // com.sun.crypto.provider.OAEPParameters this
        start local 1 // byte[] encoded
         0: .line 110
            new sun.security.util.DerInputStream
            dup
            aload 1 /* encoded */
            invokespecial sun.security.util.DerInputStream.<init>:([B)V
            astore 2 /* der */
        start local 2 // sun.security.util.DerInputStream der
         1: .line 111
            aload 0 /* this */
            ldc "SHA-1"
            putfield com.sun.crypto.provider.OAEPParameters.mdName:Ljava/lang/String;
         2: .line 112
            aload 0 /* this */
            getstatic java.security.spec.MGF1ParameterSpec.SHA1:Ljava/security/spec/MGF1ParameterSpec;
            putfield com.sun.crypto.provider.OAEPParameters.mgfSpec:Ljava/security/spec/MGF1ParameterSpec;
         3: .line 113
            aload 0 /* this */
            iconst_0
            newarray 8
            putfield com.sun.crypto.provider.OAEPParameters.p:[B
         4: .line 114
            aload 2 /* der */
            iconst_3
            invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
            astore 3 /* datum */
        start local 3 // sun.security.util.DerValue[] datum
         5: .line 115
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 48
         7: .line 116
      StackMap locals: sun.security.util.DerInputStream sun.security.util.DerValue[] int
      StackMap stack:
            aload 3 /* datum */
            iload 4 /* i */
            aaload
            astore 5 /* data */
        start local 5 // sun.security.util.DerValue data
         8: .line 117
            aload 5 /* data */
            iconst_0
            invokevirtual sun.security.util.DerValue.isContextSpecific:(B)Z
            ifeq 15
         9: .line 119
            aload 0 /* this */
        10: .line 120
            aload 5 /* data */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
        11: .line 119
            invokestatic sun.security.x509.AlgorithmId.parse:(Lsun/security/util/DerValue;)Lsun/security/x509/AlgorithmId;
        12: .line 120
            invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
        13: .line 119
            invokestatic sun.security.x509.AlgorithmId.getStandardDigestName:(Ljava/lang/String;)Ljava/lang/String;
            putfield com.sun.crypto.provider.OAEPParameters.mdName:Ljava/lang/String;
        14: .line 121
            goto 47
      StackMap locals: sun.security.util.DerValue
      StackMap stack:
        15: aload 5 /* data */
            iconst_1
            invokevirtual sun.security.util.DerValue.isContextSpecific:(B)Z
            ifeq 38
        16: .line 123
            aload 5 /* data */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            invokestatic sun.security.x509.AlgorithmId.parse:(Lsun/security/util/DerValue;)Lsun/security/x509/AlgorithmId;
            astore 6 /* val */
        start local 6 // sun.security.x509.AlgorithmId val
        17: .line 124
            aload 6 /* val */
            invokevirtual sun.security.x509.AlgorithmId.getOID:()Lsun/security/util/ObjectIdentifier;
            getstatic com.sun.crypto.provider.OAEPParameters.OID_MGF1:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 19
        18: .line 125
            new java.io.IOException
            dup
            ldc "Only MGF1 mgf is supported"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 127
      StackMap locals: sun.security.x509.AlgorithmId
      StackMap stack:
            new sun.security.util.DerValue
            dup
            aload 6 /* val */
            invokevirtual sun.security.x509.AlgorithmId.getEncodedParams:()[B
            invokespecial sun.security.util.DerValue.<init>:([B)V
            invokestatic sun.security.x509.AlgorithmId.parse:(Lsun/security/util/DerValue;)Lsun/security/x509/AlgorithmId;
            astore 7 /* params */
        start local 7 // sun.security.x509.AlgorithmId params
        20: .line 129
            aload 7 /* params */
            invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
        21: .line 128
            invokestatic sun.security.x509.AlgorithmId.getStandardDigestName:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* mgfDigestName */
        start local 8 // java.lang.String mgfDigestName
        22: .line 130
            aload 8 /* mgfDigestName */
            ldc "SHA-1"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
        23: .line 131
            aload 0 /* this */
            getstatic java.security.spec.MGF1ParameterSpec.SHA1:Ljava/security/spec/MGF1ParameterSpec;
            putfield com.sun.crypto.provider.OAEPParameters.mgfSpec:Ljava/security/spec/MGF1ParameterSpec;
        24: .line 132
            goto 47
      StackMap locals: sun.security.x509.AlgorithmId java.lang.String
      StackMap stack:
        25: aload 8 /* mgfDigestName */
            ldc "SHA-224"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 28
        26: .line 133
            aload 0 /* this */
            new java.security.spec.MGF1ParameterSpec
            dup
            ldc "SHA-224"
            invokespecial java.security.spec.MGF1ParameterSpec.<init>:(Ljava/lang/String;)V
            putfield com.sun.crypto.provider.OAEPParameters.mgfSpec:Ljava/security/spec/MGF1ParameterSpec;
        27: .line 134
            goto 47
      StackMap locals:
      StackMap stack:
        28: aload 8 /* mgfDigestName */
            ldc "SHA-256"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 31
        29: .line 135
            aload 0 /* this */
            getstatic java.security.spec.MGF1ParameterSpec.SHA256:Ljava/security/spec/MGF1ParameterSpec;
            putfield com.sun.crypto.provider.OAEPParameters.mgfSpec:Ljava/security/spec/MGF1ParameterSpec;
        30: .line 136
            goto 47
      StackMap locals:
      StackMap stack:
        31: aload 8 /* mgfDigestName */
            ldc "SHA-384"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 34
        32: .line 137
            aload 0 /* this */
            getstatic java.security.spec.MGF1ParameterSpec.SHA384:Ljava/security/spec/MGF1ParameterSpec;
            putfield com.sun.crypto.provider.OAEPParameters.mgfSpec:Ljava/security/spec/MGF1ParameterSpec;
        33: .line 138
            goto 47
      StackMap locals:
      StackMap stack:
        34: aload 8 /* mgfDigestName */
            ldc "SHA-512"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 37
        35: .line 139
            aload 0 /* this */
            getstatic java.security.spec.MGF1ParameterSpec.SHA512:Ljava/security/spec/MGF1ParameterSpec;
            putfield com.sun.crypto.provider.OAEPParameters.mgfSpec:Ljava/security/spec/MGF1ParameterSpec;
        36: .line 140
            goto 47
        37: .line 141
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            ldc "Unrecognized message digest algorithm"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.String mgfDigestName
        end local 7 // sun.security.x509.AlgorithmId params
        end local 6 // sun.security.x509.AlgorithmId val
        38: .line 143
      StackMap locals:
      StackMap stack:
            aload 5 /* data */
            iconst_2
            invokevirtual sun.security.util.DerValue.isContextSpecific:(B)Z
            ifeq 46
        39: .line 145
            aload 5 /* data */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            invokestatic sun.security.x509.AlgorithmId.parse:(Lsun/security/util/DerValue;)Lsun/security/x509/AlgorithmId;
            astore 6 /* val */
        start local 6 // sun.security.x509.AlgorithmId val
        40: .line 146
            aload 6 /* val */
            invokevirtual sun.security.x509.AlgorithmId.getOID:()Lsun/security/util/ObjectIdentifier;
            getstatic com.sun.crypto.provider.OAEPParameters.OID_PSpecified:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 42
        41: .line 147
            new java.io.IOException
            dup
            ldc "Wrong OID for pSpecified"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        42: .line 149
      StackMap locals: sun.security.x509.AlgorithmId
      StackMap stack:
            new sun.security.util.DerInputStream
            dup
            aload 6 /* val */
            invokevirtual sun.security.x509.AlgorithmId.getEncodedParams:()[B
            invokespecial sun.security.util.DerInputStream.<init>:([B)V
            astore 7 /* dis */
        start local 7 // sun.security.util.DerInputStream dis
        43: .line 150
            aload 0 /* this */
            aload 7 /* dis */
            invokevirtual sun.security.util.DerInputStream.getOctetString:()[B
            putfield com.sun.crypto.provider.OAEPParameters.p:[B
        44: .line 151
            aload 7 /* dis */
            invokevirtual sun.security.util.DerInputStream.available:()I
            ifeq 47
        45: .line 152
            new java.io.IOException
            dup
            ldc "Extra data for pSpecified"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // sun.security.util.DerInputStream dis
        end local 6 // sun.security.x509.AlgorithmId val
        46: .line 155
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            ldc "Invalid encoded OAEPParameters"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // sun.security.util.DerValue data
        47: .line 115
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        48: iload 4 /* i */
            aload 3 /* datum */
            arraylength
            if_icmplt 7
        end local 4 // int i
        49: .line 158
            return
        end local 3 // sun.security.util.DerValue[] datum
        end local 2 // sun.security.util.DerInputStream der
        end local 1 // byte[] encoded
        end local 0 // com.sun.crypto.provider.OAEPParameters this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   50     0           this  Lcom/sun/crypto/provider/OAEPParameters;
            0   50     1        encoded  [B
            1   50     2            der  Lsun/security/util/DerInputStream;
            5   50     3          datum  [Lsun/security/util/DerValue;
            6   49     4              i  I
            8   47     5           data  Lsun/security/util/DerValue;
           17   38     6            val  Lsun/security/x509/AlgorithmId;
           20   38     7         params  Lsun/security/x509/AlgorithmId;
           22   38     8  mgfDigestName  Ljava/lang/String;
           40   46     6            val  Lsun/security/x509/AlgorithmId;
           43   46     7            dis  Lsun/security/util/DerInputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      encoded  

  protected void engineInit(byte[], java.lang.String);
    descriptor: ([BLjava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.crypto.provider.OAEPParameters this
        start local 1 // byte[] encoded
        start local 2 // java.lang.String decodingMethod
         0: .line 162
            aload 2 /* decodingMethod */
            ifnull 3
         1: .line 163
            aload 2 /* decodingMethod */
            ldc "ASN.1"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 3
         2: .line 164
            new java.lang.IllegalArgumentException
            dup
            ldc "Only support ASN.1 format"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* encoded */
            invokevirtual com.sun.crypto.provider.OAEPParameters.engineInit:([B)V
         4: .line 167
            return
        end local 2 // java.lang.String decodingMethod
        end local 1 // byte[] encoded
        end local 0 // com.sun.crypto.provider.OAEPParameters this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/sun/crypto/provider/OAEPParameters;
            0    5     1         encoded  [B
            0    5     2  decodingMethod  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      encoded         
      decodingMethod  

  protected <T extends java.security.spec.AlgorithmParameterSpec> T engineGetParameterSpec(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // com.sun.crypto.provider.OAEPParameters this
        start local 1 // java.lang.Class paramSpec
         0: .line 172
            ldc Ljavax/crypto/spec/OAEPParameterSpec;
            aload 1 /* paramSpec */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 6
         1: .line 173
            aload 1 /* paramSpec */
         2: .line 174
            new javax.crypto.spec.OAEPParameterSpec
            dup
            aload 0 /* this */
            getfield com.sun.crypto.provider.OAEPParameters.mdName:Ljava/lang/String;
            ldc "MGF1"
            aload 0 /* this */
            getfield com.sun.crypto.provider.OAEPParameters.mgfSpec:Ljava/security/spec/MGF1ParameterSpec;
         3: .line 175
            new javax.crypto.spec.PSource$PSpecified
            dup
            aload 0 /* this */
            getfield com.sun.crypto.provider.OAEPParameters.p:[B
            invokespecial javax.crypto.spec.PSource$PSpecified.<init>:([B)V
         4: .line 174
            invokespecial javax.crypto.spec.OAEPParameterSpec.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;Ljavax/crypto/spec/PSource;)V
         5: .line 173
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.spec.AlgorithmParameterSpec
            areturn
         6: .line 177
      StackMap locals:
      StackMap stack:
            new java.security.spec.InvalidParameterSpecException
            dup
         7: .line 178
            ldc "Inappropriate parameter specification"
         8: .line 177
            invokespecial java.security.spec.InvalidParameterSpecException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Class paramSpec
        end local 0 // com.sun.crypto.provider.OAEPParameters this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lcom/sun/crypto/provider/OAEPParameters;
            0    9     1  paramSpec  Ljava/lang/Class<TT;>;
    Exceptions:
      throws java.security.spec.InvalidParameterSpecException
    Signature: <T::Ljava/security/spec/AlgorithmParameterSpec;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
           Name  Flags
      paramSpec  

  protected byte[] engineGetEncoded();
    descriptor: ()[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // com.sun.crypto.provider.OAEPParameters this
         0: .line 183
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 1 /* tmp */
        start local 1 // sun.security.util.DerOutputStream tmp
         1: .line 189
            aload 0 /* this */
            getfield com.sun.crypto.provider.OAEPParameters.mdName:Ljava/lang/String;
            invokestatic sun.security.x509.AlgorithmId.get:(Ljava/lang/String;)Lsun/security/x509/AlgorithmId;
            astore 4 /* mdAlgId */
        start local 4 // sun.security.x509.AlgorithmId mdAlgId
         2: .line 190
            goto 7
        end local 4 // sun.security.x509.AlgorithmId mdAlgId
      StackMap locals: com.sun.crypto.provider.OAEPParameters sun.security.util.DerOutputStream
      StackMap stack: java.security.NoSuchAlgorithmException
         3: pop
         4: .line 191
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "AlgorithmId "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.crypto.provider.OAEPParameters.mdName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 192
            ldc " impl not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 191
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // sun.security.x509.AlgorithmId mdAlgId
         7: .line 194
      StackMap locals: com.sun.crypto.provider.OAEPParameters sun.security.util.DerOutputStream top top sun.security.x509.AlgorithmId
      StackMap stack:
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 2 /* tmp2 */
        start local 2 // sun.security.util.DerOutputStream tmp2
         8: .line 195
            aload 4 /* mdAlgId */
            aload 2 /* tmp2 */
            invokevirtual sun.security.x509.AlgorithmId.derEncode:(Ljava/io/OutputStream;)V
         9: .line 196
            aload 1 /* tmp */
            bipush -128
            iconst_1
            iconst_0
            invokestatic sun.security.util.DerValue.createTag:(BZB)B
        10: .line 197
            aload 2 /* tmp2 */
        11: .line 196
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        12: .line 200
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 2 /* tmp2 */
        13: .line 201
            aload 2 /* tmp2 */
            getstatic com.sun.crypto.provider.OAEPParameters.OID_MGF1:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
        14: .line 204
            aload 0 /* this */
            getfield com.sun.crypto.provider.OAEPParameters.mgfSpec:Ljava/security/spec/MGF1ParameterSpec;
            invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
            invokestatic sun.security.x509.AlgorithmId.get:(Ljava/lang/String;)Lsun/security/x509/AlgorithmId;
            astore 5 /* mgfDigestId */
        start local 5 // sun.security.x509.AlgorithmId mgfDigestId
        15: .line 205
            goto 20
        end local 5 // sun.security.x509.AlgorithmId mgfDigestId
      StackMap locals: com.sun.crypto.provider.OAEPParameters sun.security.util.DerOutputStream sun.security.util.DerOutputStream top sun.security.x509.AlgorithmId
      StackMap stack: java.security.NoSuchAlgorithmException
        16: pop
        17: .line 206
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "AlgorithmId "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        18: .line 207
            aload 0 /* this */
            getfield com.sun.crypto.provider.OAEPParameters.mgfSpec:Ljava/security/spec/MGF1ParameterSpec;
            invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " impl not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 206
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        start local 5 // sun.security.x509.AlgorithmId mgfDigestId
        20: .line 209
      StackMap locals: sun.security.x509.AlgorithmId
      StackMap stack:
            aload 5 /* mgfDigestId */
            aload 2 /* tmp2 */
            invokevirtual sun.security.x509.AlgorithmId.encode:(Lsun/security/util/DerOutputStream;)V
        21: .line 210
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 3 /* tmp3 */
        start local 3 // sun.security.util.DerOutputStream tmp3
        22: .line 211
            aload 3 /* tmp3 */
            bipush 48
            aload 2 /* tmp2 */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        23: .line 212
            aload 1 /* tmp */
            bipush -128
            iconst_1
            iconst_1
            invokestatic sun.security.util.DerValue.createTag:(BZB)B
        24: .line 213
            aload 3 /* tmp3 */
        25: .line 212
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        26: .line 216
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 2 /* tmp2 */
        27: .line 217
            aload 2 /* tmp2 */
            getstatic com.sun.crypto.provider.OAEPParameters.OID_PSpecified:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
        28: .line 218
            aload 2 /* tmp2 */
            aload 0 /* this */
            getfield com.sun.crypto.provider.OAEPParameters.p:[B
            invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
        29: .line 219
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 3 /* tmp3 */
        30: .line 220
            aload 3 /* tmp3 */
            bipush 48
            aload 2 /* tmp2 */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        31: .line 221
            aload 1 /* tmp */
            bipush -128
            iconst_1
            iconst_2
            invokestatic sun.security.util.DerValue.createTag:(BZB)B
        32: .line 222
            aload 3 /* tmp3 */
        33: .line 221
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        34: .line 225
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 6 /* out */
        start local 6 // sun.security.util.DerOutputStream out
        35: .line 226
            aload 6 /* out */
            bipush 48
            aload 1 /* tmp */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        36: .line 227
            aload 6 /* out */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            areturn
        end local 6 // sun.security.util.DerOutputStream out
        end local 5 // sun.security.x509.AlgorithmId mgfDigestId
        end local 4 // sun.security.x509.AlgorithmId mdAlgId
        end local 3 // sun.security.util.DerOutputStream tmp3
        end local 2 // sun.security.util.DerOutputStream tmp2
        end local 1 // sun.security.util.DerOutputStream tmp
        end local 0 // com.sun.crypto.provider.OAEPParameters this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   37     0         this  Lcom/sun/crypto/provider/OAEPParameters;
            1   37     1          tmp  Lsun/security/util/DerOutputStream;
            8   37     2         tmp2  Lsun/security/util/DerOutputStream;
           22   37     3         tmp3  Lsun/security/util/DerOutputStream;
            2    3     4      mdAlgId  Lsun/security/x509/AlgorithmId;
            7   37     4      mdAlgId  Lsun/security/x509/AlgorithmId;
           15   16     5  mgfDigestId  Lsun/security/x509/AlgorithmId;
           20   37     5  mgfDigestId  Lsun/security/x509/AlgorithmId;
           35   37     6          out  Lsun/security/util/DerOutputStream;
      Exception table:
        from    to  target  type
           1     2       3  Class java.security.NoSuchAlgorithmException
          14    15      16  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws java.io.IOException

  protected byte[] engineGetEncoded(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.crypto.provider.OAEPParameters this
        start local 1 // java.lang.String encodingMethod
         0: .line 232
            aload 1 /* encodingMethod */
            ifnull 3
         1: .line 233
            aload 1 /* encodingMethod */
            ldc "ASN.1"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 3
         2: .line 234
            new java.lang.IllegalArgumentException
            dup
            ldc "Only support ASN.1 format"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.crypto.provider.OAEPParameters.engineGetEncoded:()[B
            areturn
        end local 1 // java.lang.String encodingMethod
        end local 0 // com.sun.crypto.provider.OAEPParameters this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/sun/crypto/provider/OAEPParameters;
            0    4     1  encodingMethod  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      encodingMethod  

  protected java.lang.String engineToString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.sun.crypto.provider.OAEPParameters this
         0: .line 240
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuffer sb
         1: .line 241
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "MD: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.crypto.provider.OAEPParameters.mdName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         2: .line 242
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "MGF: MGF1"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.crypto.provider.OAEPParameters.mgfSpec:Ljava/security/spec/MGF1ParameterSpec;
            invokevirtual java.security.spec.MGF1ParameterSpec.getDigestAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         3: .line 243
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "PSource: PSpecified "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 244
            aload 0 /* this */
            getfield com.sun.crypto.provider.OAEPParameters.p:[B
            arraylength
            ifne 5
            ldc ""
            goto 6
      StackMap locals: com.sun.crypto.provider.OAEPParameters java.lang.StringBuffer
      StackMap stack: java.lang.StringBuffer java.lang.StringBuilder
         5: new java.math.BigInteger
            dup
            aload 0 /* this */
            getfield com.sun.crypto.provider.OAEPParameters.p:[B
            invokespecial java.math.BigInteger.<init>:([B)V
            invokestatic sun.security.util.Debug.toHexString:(Ljava/math/BigInteger;)Ljava/lang/String;
      StackMap locals: com.sun.crypto.provider.OAEPParameters java.lang.StringBuffer
      StackMap stack: java.lang.StringBuffer java.lang.StringBuilder java.lang.String
         6: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 243
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         8: .line 245
            aload 1 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuffer sb
        end local 0 // com.sun.crypto.provider.OAEPParameters this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/crypto/provider/OAEPParameters;
            1    9     1    sb  Ljava/lang/StringBuffer;
}
SourceFile: "OAEPParameters.java"
InnerClasses:
  public final PSpecified = javax.crypto.spec.PSource$PSpecified of javax.crypto.spec.PSource