public final class com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt implements com.google.crypto.tink.HybridEncrypt
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt
  super_class: java.lang.Object
{
  private static final byte[] EMPTY_AAD;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final com.google.crypto.tink.subtle.EciesHkdfSenderKem senderKem;
    descriptor: Lcom/google/crypto/tink/subtle/EciesHkdfSenderKem;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String hkdfHmacAlgo;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final byte[] hkdfSalt;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.google.crypto.tink.subtle.EllipticCurves$PointFormatType ecPointFormat;
    descriptor: Lcom/google/crypto/tink/subtle/EllipticCurves$PointFormatType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.google.crypto.tink.subtle.EciesAeadHkdfDemHelper demHelper;
    descriptor: Lcom/google/crypto/tink/subtle/EciesAeadHkdfDemHelper;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 32
            iconst_0
            newarray 8
            putstatic com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.EMPTY_AAD:[B
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.security.interfaces.ECPublicKey, byte[], java.lang.String, com.google.crypto.tink.subtle.EllipticCurves$PointFormatType, com.google.crypto.tink.subtle.EciesAeadHkdfDemHelper);
    descriptor: (Ljava/security/interfaces/ECPublicKey;[BLjava/lang/String;Lcom/google/crypto/tink/subtle/EllipticCurves$PointFormatType;Lcom/google/crypto/tink/subtle/EciesAeadHkdfDemHelper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt this
        start local 1 // java.security.interfaces.ECPublicKey recipientPublicKey
        start local 2 // byte[] hkdfSalt
        start local 3 // java.lang.String hkdfHmacAlgo
        start local 4 // com.google.crypto.tink.subtle.EllipticCurves$PointFormatType ecPointFormat
        start local 5 // com.google.crypto.tink.subtle.EciesAeadHkdfDemHelper demHelper
         0: .line 39
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 1 /* recipientPublicKey */
            invokestatic com.google.crypto.tink.subtle.EllipticCurves.checkPublicKey:(Ljava/security/interfaces/ECPublicKey;)V
         2: .line 47
            aload 0 /* this */
            new com.google.crypto.tink.subtle.EciesHkdfSenderKem
            dup
            aload 1 /* recipientPublicKey */
            invokespecial com.google.crypto.tink.subtle.EciesHkdfSenderKem.<init>:(Ljava/security/interfaces/ECPublicKey;)V
            putfield com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.senderKem:Lcom/google/crypto/tink/subtle/EciesHkdfSenderKem;
         3: .line 48
            aload 0 /* this */
            aload 2 /* hkdfSalt */
            putfield com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.hkdfSalt:[B
         4: .line 49
            aload 0 /* this */
            aload 3 /* hkdfHmacAlgo */
            putfield com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.hkdfHmacAlgo:Ljava/lang/String;
         5: .line 50
            aload 0 /* this */
            aload 4 /* ecPointFormat */
            putfield com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.ecPointFormat:Lcom/google/crypto/tink/subtle/EllipticCurves$PointFormatType;
         6: .line 51
            aload 0 /* this */
            aload 5 /* demHelper */
            putfield com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.demHelper:Lcom/google/crypto/tink/subtle/EciesAeadHkdfDemHelper;
         7: .line 52
            return
        end local 5 // com.google.crypto.tink.subtle.EciesAeadHkdfDemHelper demHelper
        end local 4 // com.google.crypto.tink.subtle.EllipticCurves$PointFormatType ecPointFormat
        end local 3 // java.lang.String hkdfHmacAlgo
        end local 2 // byte[] hkdfSalt
        end local 1 // java.security.interfaces.ECPublicKey recipientPublicKey
        end local 0 // com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lcom/google/crypto/tink/subtle/EciesAeadHkdfHybridEncrypt;
            0    8     1  recipientPublicKey  Ljava/security/interfaces/ECPublicKey;
            0    8     2            hkdfSalt  [B
            0    8     3        hkdfHmacAlgo  Ljava/lang/String;
            0    8     4       ecPointFormat  Lcom/google/crypto/tink/subtle/EllipticCurves$PointFormatType;
            0    8     5           demHelper  Lcom/google/crypto/tink/subtle/EciesAeadHkdfDemHelper;
    Exceptions:
      throws java.security.GeneralSecurityException
    MethodParameters:
                    Name  Flags
      recipientPublicKey  final
      hkdfSalt            final
      hkdfHmacAlgo        
      ecPointFormat       
      demHelper           

  public byte[] encrypt(byte[], byte[]);
    descriptor: ([B[B)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt this
        start local 1 // byte[] plaintext
        start local 2 // byte[] contextInfo
         0: .line 64
            aload 0 /* this */
            getfield com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.senderKem:Lcom/google/crypto/tink/subtle/EciesHkdfSenderKem;
         1: .line 65
            aload 0 /* this */
            getfield com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.hkdfHmacAlgo:Ljava/lang/String;
         2: .line 66
            aload 0 /* this */
            getfield com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.hkdfSalt:[B
         3: .line 67
            aload 2 /* contextInfo */
         4: .line 68
            aload 0 /* this */
            getfield com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.demHelper:Lcom/google/crypto/tink/subtle/EciesAeadHkdfDemHelper;
            invokeinterface com.google.crypto.tink.subtle.EciesAeadHkdfDemHelper.getSymmetricKeySizeInBytes:()I
         5: .line 69
            aload 0 /* this */
            getfield com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.ecPointFormat:Lcom/google/crypto/tink/subtle/EllipticCurves$PointFormatType;
         6: .line 64
            invokevirtual com.google.crypto.tink.subtle.EciesHkdfSenderKem.generateKey:(Ljava/lang/String;[B[BILcom/google/crypto/tink/subtle/EllipticCurves$PointFormatType;)Lcom/google/crypto/tink/subtle/EciesHkdfSenderKem$KemKey;
         7: .line 63
            astore 3 /* kemKey */
        start local 3 // com.google.crypto.tink.subtle.EciesHkdfSenderKem$KemKey kemKey
         8: .line 70
            aload 0 /* this */
            getfield com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.demHelper:Lcom/google/crypto/tink/subtle/EciesAeadHkdfDemHelper;
            aload 3 /* kemKey */
            invokevirtual com.google.crypto.tink.subtle.EciesHkdfSenderKem$KemKey.getSymmetricKey:()[B
            invokeinterface com.google.crypto.tink.subtle.EciesAeadHkdfDemHelper.getAead:([B)Lcom/google/crypto/tink/Aead;
            astore 4 /* aead */
        start local 4 // com.google.crypto.tink.Aead aead
         9: .line 71
            aload 4 /* aead */
            aload 1 /* plaintext */
            getstatic com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt.EMPTY_AAD:[B
            invokeinterface com.google.crypto.tink.Aead.encrypt:([B[B)[B
            astore 5 /* ciphertext */
        start local 5 // byte[] ciphertext
        10: .line 72
            aload 3 /* kemKey */
            invokevirtual com.google.crypto.tink.subtle.EciesHkdfSenderKem$KemKey.getKemBytes:()[B
            astore 6 /* header */
        start local 6 // byte[] header
        11: .line 73
            aload 6 /* header */
            arraylength
            aload 5 /* ciphertext */
            arraylength
            iadd
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
        12: .line 74
            aload 6 /* header */
            invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
        13: .line 75
            aload 5 /* ciphertext */
            invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
        14: .line 76
            invokevirtual java.nio.ByteBuffer.array:()[B
        15: .line 73
            areturn
        end local 6 // byte[] header
        end local 5 // byte[] ciphertext
        end local 4 // com.google.crypto.tink.Aead aead
        end local 3 // com.google.crypto.tink.subtle.EciesHkdfSenderKem$KemKey kemKey
        end local 2 // byte[] contextInfo
        end local 1 // byte[] plaintext
        end local 0 // com.google.crypto.tink.subtle.EciesAeadHkdfHybridEncrypt this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Lcom/google/crypto/tink/subtle/EciesAeadHkdfHybridEncrypt;
            0   16     1    plaintext  [B
            0   16     2  contextInfo  [B
            8   16     3       kemKey  Lcom/google/crypto/tink/subtle/EciesHkdfSenderKem$KemKey;
            9   16     4         aead  Lcom/google/crypto/tink/Aead;
           10   16     5   ciphertext  [B
           11   16     6       header  [B
    Exceptions:
      throws java.security.GeneralSecurityException
    MethodParameters:
             Name  Flags
      plaintext    final
      contextInfo  final
}
SourceFile: "EciesAeadHkdfHybridEncrypt.java"
InnerClasses:
  public final KemKey = com.google.crypto.tink.subtle.EciesHkdfSenderKem$KemKey of com.google.crypto.tink.subtle.EciesHkdfSenderKem
  public final PointFormatType = com.google.crypto.tink.subtle.EllipticCurves$PointFormatType of com.google.crypto.tink.subtle.EllipticCurves