// 
// Decompiled by Procyon v0.6.0
// 

package com.google.crypto.tink.hybrid.internal;

import java.security.GeneralSecurityException;
import com.google.errorprone.annotations.Immutable;

@Immutable
public interface HpkeKem
{
    HpkeKemEncapOutput encapsulate(final byte[] recipientPublicKey) throws GeneralSecurityException;
    
    byte[] decapsulate(final byte[] encapsulatedKey, final HpkeKemPrivateKey recipientPrivateKey) throws GeneralSecurityException;
    
    HpkeKemEncapOutput authEncapsulate(final byte[] recipientPublicKey, final HpkeKemPrivateKey senderPrivateKey) throws GeneralSecurityException;
    
    byte[] authDecapsulate(final byte[] encapsulatedKey, final HpkeKemPrivateKey recipientPrivateKey, final byte[] senderPublicKey) throws GeneralSecurityException;
    
    byte[] getKemId() throws GeneralSecurityException;
}
