public class javax.crypto.SealedObject implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.crypto.SealedObject
  super_class: java.lang.Object
{
  static final long serialVersionUID;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4482838265551344752

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

  private java.lang.String sealAlg;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String paramsAlg;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  protected byte[] encodedParams;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 451
            new javax.crypto.SealedObject$1
            dup
            invokespecial javax.crypto.SealedObject$1.<init>:()V
            invokestatic sun.misc.SharedSecrets.setJavaxCryptoSealedObjectAccess:(Lsun/misc/JavaxCryptoSealedObjectAccess;)V
         1: .line 458
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.io.Serializable, javax.crypto.Cipher);
    descriptor: (Ljava/io/Serializable;Ljavax/crypto/Cipher;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // javax.crypto.SealedObject this
        start local 1 // java.io.Serializable object
        start local 2 // javax.crypto.Cipher c
         0: .line 151
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 106
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.SealedObject.encryptedContent:[B
         2: .line 113
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.SealedObject.sealAlg:Ljava/lang/String;
         3: .line 120
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.SealedObject.paramsAlg:Ljava/lang/String;
         4: .line 130
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.SealedObject.encodedParams:[B
         5: .line 159
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 3 /* b */
        start local 3 // java.io.ByteArrayOutputStream b
         6: .line 160
            new java.io.ObjectOutputStream
            dup
            aload 3 /* b */
            invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 4 /* a */
        start local 4 // java.io.ObjectOutput a
         7: .line 164
            aload 4 /* a */
            aload 1 /* object */
            invokeinterface java.io.ObjectOutput.writeObject:(Ljava/lang/Object;)V
         8: .line 165
            aload 4 /* a */
            invokeinterface java.io.ObjectOutput.flush:()V
         9: .line 166
            aload 3 /* b */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            astore 5 /* content */
        start local 5 // byte[] content
        10: .line 167
            goto 14
        end local 5 // byte[] content
      StackMap locals: javax.crypto.SealedObject java.io.Serializable javax.crypto.Cipher java.io.ByteArrayOutputStream java.io.ObjectOutput
      StackMap stack: java.lang.Throwable
        11: astore 6
        12: .line 168
            aload 4 /* a */
            invokeinterface java.io.ObjectOutput.close:()V
        13: .line 169
            aload 6
            athrow
        start local 5 // byte[] content
        14: .line 168
      StackMap locals: byte[]
      StackMap stack:
            aload 4 /* a */
            invokeinterface java.io.ObjectOutput.close:()V
        15: .line 175
            aload 0 /* this */
            aload 2 /* c */
            aload 5 /* content */
            invokevirtual javax.crypto.Cipher.doFinal:([B)[B
            putfield javax.crypto.SealedObject.encryptedContent:[B
        16: .line 176
            goto 18
        17: .line 177
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
            pop
        18: .line 183
      StackMap locals:
      StackMap stack:
            aload 2 /* c */
            invokevirtual javax.crypto.Cipher.getParameters:()Ljava/security/AlgorithmParameters;
            ifnull 21
        19: .line 184
            aload 0 /* this */
            aload 2 /* c */
            invokevirtual javax.crypto.Cipher.getParameters:()Ljava/security/AlgorithmParameters;
            invokevirtual java.security.AlgorithmParameters.getEncoded:()[B
            putfield javax.crypto.SealedObject.encodedParams:[B
        20: .line 185
            aload 0 /* this */
            aload 2 /* c */
            invokevirtual javax.crypto.Cipher.getParameters:()Ljava/security/AlgorithmParameters;
            invokevirtual java.security.AlgorithmParameters.getAlgorithm:()Ljava/lang/String;
            putfield javax.crypto.SealedObject.paramsAlg:Ljava/lang/String;
        21: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* c */
            invokevirtual javax.crypto.Cipher.getAlgorithm:()Ljava/lang/String;
            putfield javax.crypto.SealedObject.sealAlg:Ljava/lang/String;
        22: .line 190
            return
        end local 5 // byte[] content
        end local 4 // java.io.ObjectOutput a
        end local 3 // java.io.ByteArrayOutputStream b
        end local 2 // javax.crypto.Cipher c
        end local 1 // java.io.Serializable object
        end local 0 // javax.crypto.SealedObject this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0     this  Ljavax/crypto/SealedObject;
            0   23     1   object  Ljava/io/Serializable;
            0   23     2        c  Ljavax/crypto/Cipher;
            6   23     3        b  Ljava/io/ByteArrayOutputStream;
            7   23     4        a  Ljava/io/ObjectOutput;
           10   11     5  content  [B
           14   23     5  content  [B
      Exception table:
        from    to  target  type
           7    11      11  any
          15    16      17  Class javax.crypto.BadPaddingException
    Exceptions:
      throws java.io.IOException, javax.crypto.IllegalBlockSizeException
    MethodParameters:
        Name  Flags
      object  
      c       

  protected void <init>(javax.crypto.SealedObject);
    descriptor: (Ljavax/crypto/SealedObject;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.crypto.SealedObject this
        start local 1 // javax.crypto.SealedObject so
         0: .line 198
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 106
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.SealedObject.encryptedContent:[B
         2: .line 113
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.SealedObject.sealAlg:Ljava/lang/String;
         3: .line 120
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.SealedObject.paramsAlg:Ljava/lang/String;
         4: .line 130
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.SealedObject.encodedParams:[B
         5: .line 199
            aload 0 /* this */
            aload 1 /* so */
            getfield javax.crypto.SealedObject.encryptedContent:[B
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            putfield javax.crypto.SealedObject.encryptedContent:[B
         6: .line 200
            aload 0 /* this */
            aload 1 /* so */
            getfield javax.crypto.SealedObject.sealAlg:Ljava/lang/String;
            putfield javax.crypto.SealedObject.sealAlg:Ljava/lang/String;
         7: .line 201
            aload 0 /* this */
            aload 1 /* so */
            getfield javax.crypto.SealedObject.paramsAlg:Ljava/lang/String;
            putfield javax.crypto.SealedObject.paramsAlg:Ljava/lang/String;
         8: .line 202
            aload 1 /* so */
            getfield javax.crypto.SealedObject.encodedParams:[B
            ifnull 11
         9: .line 203
            aload 0 /* this */
            aload 1 /* so */
            getfield javax.crypto.SealedObject.encodedParams:[B
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            putfield javax.crypto.SealedObject.encodedParams:[B
        10: .line 204
            goto 12
        11: .line 205
      StackMap locals: javax.crypto.SealedObject javax.crypto.SealedObject
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield javax.crypto.SealedObject.encodedParams:[B
        12: .line 207
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.crypto.SealedObject so
        end local 0 // javax.crypto.SealedObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Ljavax/crypto/SealedObject;
            0   13     1    so  Ljavax/crypto/SealedObject;
    MethodParameters:
      Name  Flags
      so    

  public final java.lang.String getAlgorithm();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.crypto.SealedObject this
         0: .line 215
            aload 0 /* this */
            getfield javax.crypto.SealedObject.sealAlg:Ljava/lang/String;
            areturn
        end local 0 // javax.crypto.SealedObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/crypto/SealedObject;

  public final java.lang.Object getObject(java.security.Key);
    descriptor: (Ljava/security/Key;)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.crypto.SealedObject this
        start local 1 // java.security.Key key
         0: .line 251
            aload 1 /* key */
            ifnonnull 2
         1: .line 252
            new java.lang.NullPointerException
            dup
            ldc "key is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* key */
            aconst_null
            invokevirtual javax.crypto.SealedObject.unseal:(Ljava/security/Key;Ljava/lang/String;)Ljava/lang/Object;
         3: areturn
         4: .line 257
      StackMap locals:
      StackMap stack: java.security.NoSuchProviderException
            pop
         5: .line 261
            new java.security.NoSuchAlgorithmException
            dup
            ldc "algorithm not found"
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 262
      StackMap locals:
      StackMap stack: javax.crypto.IllegalBlockSizeException
            astore 2 /* ibse */
        start local 2 // javax.crypto.IllegalBlockSizeException ibse
         7: .line 263
            new java.security.InvalidKeyException
            dup
            aload 2 /* ibse */
            invokevirtual javax.crypto.IllegalBlockSizeException.getMessage:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // javax.crypto.IllegalBlockSizeException ibse
         8: .line 264
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
            astore 2 /* bpe */
        start local 2 // javax.crypto.BadPaddingException bpe
         9: .line 265
            new java.security.InvalidKeyException
            dup
            aload 2 /* bpe */
            invokevirtual javax.crypto.BadPaddingException.getMessage:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // javax.crypto.BadPaddingException bpe
        end local 1 // java.security.Key key
        end local 0 // javax.crypto.SealedObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljavax/crypto/SealedObject;
            0   10     1   key  Ljava/security/Key;
            7    8     2  ibse  Ljavax/crypto/IllegalBlockSizeException;
            9   10     2   bpe  Ljavax/crypto/BadPaddingException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.security.NoSuchProviderException
           2     3       6  Class javax.crypto.IllegalBlockSizeException
           2     3       8  Class javax.crypto.BadPaddingException
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException
    MethodParameters:
      Name  Flags
      key   

  public final java.lang.Object getObject(javax.crypto.Cipher);
    descriptor: (Ljavax/crypto/Cipher;)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // javax.crypto.SealedObject this
        start local 1 // javax.crypto.Cipher c
         0: .line 295
            aload 0 /* this */
            aload 1 /* c */
            invokevirtual javax.crypto.SealedObject.getExtObjectInputStream:(Ljavax/crypto/Cipher;)Ljava/io/ObjectInputStream;
            astore 2 /* a */
        start local 2 // java.io.ObjectInput a
         1: .line 297
            aload 2 /* a */
            invokeinterface java.io.ObjectInput.readObject:()Ljava/lang/Object;
            astore 3 /* obj */
        start local 3 // java.lang.Object obj
         2: .line 298
            aload 3 /* obj */
            astore 5
         3: .line 300
            aload 2 /* a */
            invokeinterface java.io.ObjectInput.close:()V
         4: .line 298
            aload 5
            areturn
        end local 3 // java.lang.Object obj
         5: .line 299
      StackMap locals: javax.crypto.SealedObject javax.crypto.Cipher java.io.ObjectInput
      StackMap stack: java.lang.Throwable
            astore 4
         6: .line 300
            aload 2 /* a */
            invokeinterface java.io.ObjectInput.close:()V
         7: .line 301
            aload 4
            athrow
        end local 2 // java.io.ObjectInput a
        end local 1 // javax.crypto.Cipher c
        end local 0 // javax.crypto.SealedObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljavax/crypto/SealedObject;
            0    8     1     c  Ljavax/crypto/Cipher;
            1    8     2     a  Ljava/io/ObjectInput;
            2    5     3   obj  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     3       5  any
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
      Name  Flags
      c     

  public final java.lang.Object getObject(java.security.Key, java.lang.String);
    descriptor: (Ljava/security/Key;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.crypto.SealedObject this
        start local 1 // java.security.Key key
        start local 2 // java.lang.String provider
         0: .line 340
            aload 1 /* key */
            ifnonnull 2
         1: .line 341
            new java.lang.NullPointerException
            dup
            ldc "key is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 343
      StackMap locals:
      StackMap stack:
            aload 2 /* provider */
            ifnull 3
            aload 2 /* provider */
            invokevirtual java.lang.String.length:()I
            ifne 4
         3: .line 344
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "missing provider"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* key */
            aload 2 /* provider */
            invokevirtual javax.crypto.SealedObject.unseal:(Ljava/security/Key;Ljava/lang/String;)Ljava/lang/Object;
         5: areturn
         6: .line 349
      StackMap locals:
      StackMap stack: javax.crypto.IllegalBlockSizeException
            astore 3 /* ex */
        start local 3 // javax.crypto.IllegalBlockSizeException ex
         7: .line 350
            new java.security.InvalidKeyException
            dup
            aload 3 /* ex */
            invokevirtual javax.crypto.IllegalBlockSizeException.getMessage:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // javax.crypto.IllegalBlockSizeException ex
         8: .line 351
      StackMap locals:
      StackMap stack: javax.crypto.BadPaddingException
            astore 3 /* ex */
        start local 3 // javax.crypto.BadPaddingException ex
         9: .line 352
            new java.security.InvalidKeyException
            dup
            aload 3 /* ex */
            invokevirtual javax.crypto.BadPaddingException.getMessage:()Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // javax.crypto.BadPaddingException ex
        end local 2 // java.lang.String provider
        end local 1 // java.security.Key key
        end local 0 // javax.crypto.SealedObject this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Ljavax/crypto/SealedObject;
            0   10     1       key  Ljava/security/Key;
            0   10     2  provider  Ljava/lang/String;
            7    8     3        ex  Ljavax/crypto/IllegalBlockSizeException;
            9   10     3        ex  Ljavax/crypto/BadPaddingException;
      Exception table:
        from    to  target  type
           4     5       6  Class javax.crypto.IllegalBlockSizeException
           4     5       8  Class javax.crypto.BadPaddingException
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.InvalidKeyException
    MethodParameters:
          Name  Flags
      key       
      provider  

  private java.lang.Object unseal(java.security.Key, java.lang.String);
    descriptor: (Ljava/security/Key;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // javax.crypto.SealedObject this
        start local 1 // java.security.Key key
        start local 2 // java.lang.String provider
         0: .line 365
            aconst_null
            astore 3 /* params */
        start local 3 // java.security.AlgorithmParameters params
         1: .line 366
            aload 0 /* this */
            getfield javax.crypto.SealedObject.encodedParams:[B
            ifnull 16
         2: .line 368
            aload 2 /* provider */
            ifnull 7
         3: .line 369
            aload 0 /* this */
            getfield javax.crypto.SealedObject.paramsAlg:Ljava/lang/String;
         4: .line 370
            aload 2 /* provider */
         5: .line 369
            invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/AlgorithmParameters;
            astore 3 /* params */
         6: .line 370
            goto 15
         7: .line 372
      StackMap locals: java.security.AlgorithmParameters
      StackMap stack:
            aload 0 /* this */
            getfield javax.crypto.SealedObject.paramsAlg:Ljava/lang/String;
            invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
            astore 3 /* params */
         8: .line 374
            goto 15
      StackMap locals:
      StackMap stack: java.security.NoSuchProviderException
         9: astore 4 /* nspe */
        start local 4 // java.security.NoSuchProviderException nspe
        10: .line 375
            aload 2 /* provider */
            ifnonnull 14
        11: .line 376
            new java.security.NoSuchAlgorithmException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield javax.crypto.SealedObject.paramsAlg:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 377
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 376
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 379
      StackMap locals: java.security.NoSuchProviderException
      StackMap stack:
            new java.security.NoSuchProviderException
            dup
            aload 4 /* nspe */
            invokevirtual java.security.NoSuchProviderException.getMessage:()Ljava/lang/String;
            invokespecial java.security.NoSuchProviderException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.security.NoSuchProviderException nspe
        15: .line 382
      StackMap locals:
      StackMap stack:
            aload 3 /* params */
            aload 0 /* this */
            getfield javax.crypto.SealedObject.encodedParams:[B
            invokevirtual java.security.AlgorithmParameters.init:([B)V
        16: .line 390
      StackMap locals:
      StackMap stack:
            aload 2 /* provider */
            ifnull 19
        17: .line 391
            aload 0 /* this */
            getfield javax.crypto.SealedObject.sealAlg:Ljava/lang/String;
            aload 2 /* provider */
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 4 /* c */
        start local 4 // javax.crypto.Cipher c
        18: goto 27
        end local 4 // javax.crypto.Cipher c
        19: .line 393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.crypto.SealedObject.sealAlg:Ljava/lang/String;
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 4 /* c */
        start local 4 // javax.crypto.Cipher c
        20: .line 394
            goto 27
        end local 4 // javax.crypto.Cipher c
      StackMap locals:
      StackMap stack: javax.crypto.NoSuchPaddingException
        21: pop
        22: .line 395
            new java.security.NoSuchAlgorithmException
            dup
            ldc "Padding that was used in sealing operation not available"
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 398
      StackMap locals:
      StackMap stack: java.security.NoSuchProviderException
            astore 5 /* nspe */
        start local 5 // java.security.NoSuchProviderException nspe
        24: .line 399
            aload 2 /* provider */
            ifnonnull 26
        25: .line 400
            new java.security.NoSuchAlgorithmException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield javax.crypto.SealedObject.sealAlg:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
            athrow
        26: .line 402
      StackMap locals: javax.crypto.SealedObject java.security.Key java.lang.String java.security.AlgorithmParameters top java.security.NoSuchProviderException
      StackMap stack:
            new java.security.NoSuchProviderException
            dup
            aload 5 /* nspe */
            invokevirtual java.security.NoSuchProviderException.getMessage:()Ljava/lang/String;
            invokespecial java.security.NoSuchProviderException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.security.NoSuchProviderException nspe
        start local 4 // javax.crypto.Cipher c
        27: .line 407
      StackMap locals: javax.crypto.SealedObject java.security.Key java.lang.String java.security.AlgorithmParameters javax.crypto.Cipher
      StackMap stack:
            aload 3 /* params */
            ifnull 29
        28: .line 408
            aload 4 /* c */
            iconst_2
            aload 1 /* key */
            aload 3 /* params */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
            goto 33
        29: .line 410
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            iconst_2
            aload 1 /* key */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;)V
        30: .line 411
            goto 33
      StackMap locals:
      StackMap stack: java.security.InvalidAlgorithmParameterException
        31: astore 5 /* iape */
        start local 5 // java.security.InvalidAlgorithmParameterException iape
        32: .line 414
            new java.lang.RuntimeException
            dup
            aload 5 /* iape */
            invokevirtual java.security.InvalidAlgorithmParameterException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.security.InvalidAlgorithmParameterException iape
        33: .line 417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* c */
            invokevirtual javax.crypto.SealedObject.getExtObjectInputStream:(Ljavax/crypto/Cipher;)Ljava/io/ObjectInputStream;
            astore 5 /* a */
        start local 5 // java.io.ObjectInput a
        34: .line 419
            aload 5 /* a */
            invokeinterface java.io.ObjectInput.readObject:()Ljava/lang/Object;
            astore 6 /* obj */
        start local 6 // java.lang.Object obj
        35: .line 420
            aload 6 /* obj */
            astore 8
        36: .line 422
            aload 5 /* a */
            invokeinterface java.io.ObjectInput.close:()V
        37: .line 420
            aload 8
            areturn
        end local 6 // java.lang.Object obj
        38: .line 421
      StackMap locals: javax.crypto.SealedObject java.security.Key java.lang.String java.security.AlgorithmParameters javax.crypto.Cipher java.io.ObjectInput
      StackMap stack: java.lang.Throwable
            astore 7
        39: .line 422
            aload 5 /* a */
            invokeinterface java.io.ObjectInput.close:()V
        40: .line 423
            aload 7
            athrow
        end local 5 // java.io.ObjectInput a
        end local 4 // javax.crypto.Cipher c
        end local 3 // java.security.AlgorithmParameters params
        end local 2 // java.lang.String provider
        end local 1 // java.security.Key key
        end local 0 // javax.crypto.SealedObject this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   41     0      this  Ljavax/crypto/SealedObject;
            0   41     1       key  Ljava/security/Key;
            0   41     2  provider  Ljava/lang/String;
            1   41     3    params  Ljava/security/AlgorithmParameters;
           10   15     4      nspe  Ljava/security/NoSuchProviderException;
           18   19     4         c  Ljavax/crypto/Cipher;
           20   21     4         c  Ljavax/crypto/Cipher;
           27   41     4         c  Ljavax/crypto/Cipher;
           24   27     5      nspe  Ljava/security/NoSuchProviderException;
           32   33     5      iape  Ljava/security/InvalidAlgorithmParameterException;
           34   41     5         a  Ljava/io/ObjectInput;
           35   38     6       obj  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           2     8       9  Class java.security.NoSuchProviderException
          16    20      21  Class javax.crypto.NoSuchPaddingException
          16    20      23  Class java.security.NoSuchProviderException
          27    30      31  Class java.security.InvalidAlgorithmParameterException
          34    36      38  any
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException, java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException, java.security.InvalidKeyException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
    MethodParameters:
          Name  Flags
      key       
      provider  

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.crypto.SealedObject this
        start local 1 // java.io.ObjectInputStream s
         0: .line 434
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 435
            aload 0 /* this */
            getfield javax.crypto.SealedObject.encryptedContent:[B
            ifnull 3
         2: .line 436
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.crypto.SealedObject.encryptedContent:[B
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            putfield javax.crypto.SealedObject.encryptedContent:[B
         3: .line 437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.crypto.SealedObject.encodedParams:[B
            ifnull 5
         4: .line 438
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.crypto.SealedObject.encodedParams:[B
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            putfield javax.crypto.SealedObject.encodedParams:[B
         5: .line 439
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.ObjectInputStream s
        end local 0 // javax.crypto.SealedObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljavax/crypto/SealedObject;
            0    6     1     s  Ljava/io/ObjectInputStream;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      s     

  private java.io.ObjectInputStream getExtObjectInputStream(javax.crypto.Cipher);
    descriptor: (Ljavax/crypto/Cipher;)Ljava/io/ObjectInputStream;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // javax.crypto.SealedObject this
        start local 1 // javax.crypto.Cipher c
         0: .line 445
            aload 1 /* c */
            aload 0 /* this */
            getfield javax.crypto.SealedObject.encryptedContent:[B
            invokevirtual javax.crypto.Cipher.doFinal:([B)[B
            astore 2 /* content */
        start local 2 // byte[] content
         1: .line 446
            new java.io.ByteArrayInputStream
            dup
            aload 2 /* content */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 3 /* b */
        start local 3 // java.io.ByteArrayInputStream b
         2: .line 447
            new javax.crypto.extObjectInputStream
            dup
            aload 3 /* b */
            invokespecial javax.crypto.extObjectInputStream.<init>:(Ljava/io/InputStream;)V
            areturn
        end local 3 // java.io.ByteArrayInputStream b
        end local 2 // byte[] content
        end local 1 // javax.crypto.Cipher c
        end local 0 // javax.crypto.SealedObject this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Ljavax/crypto/SealedObject;
            0    3     1        c  Ljavax/crypto/Cipher;
            1    3     2  content  [B
            2    3     3        b  Ljava/io/ByteArrayInputStream;
    Exceptions:
      throws javax.crypto.BadPaddingException, javax.crypto.IllegalBlockSizeException, java.io.IOException
    MethodParameters:
      Name  Flags
      c     
}
SourceFile: "SealedObject.java"
NestMembers:
  javax.crypto.SealedObject$1
InnerClasses:
  javax.crypto.SealedObject$1