package android.crypto.hpke;

import android.annotation.FlaggedApi;
import android.annotation.NonNull;
import android.annotation.Nullable;
import java.security.GeneralSecurityException;
import java.security.InvalidKeyException;
import java.security.PrivateKey;
import java.security.PublicKey;

@FlaggedApi("com.android.libcore.hpke_v_apis")
public interface HpkeSpi {
    @FlaggedApi("com.android.libcore.hpke_v_apis")
    void engineInitSender(@NonNull PublicKey var1, @Nullable byte[] var2, @Nullable PrivateKey var3, @Nullable byte[] var4, @Nullable byte[] var5) throws InvalidKeyException;

    @FlaggedApi("com.android.libcore.hpke_v_apis")
    void engineInitSenderWithSeed(@NonNull PublicKey var1, @Nullable byte[] var2, @Nullable PrivateKey var3, @Nullable byte[] var4, @Nullable byte[] var5, @NonNull byte[] var6) throws InvalidKeyException;

    @FlaggedApi("com.android.libcore.hpke_v_apis")
    void engineInitRecipient(@NonNull byte[] var1, @NonNull PrivateKey var2, @Nullable byte[] var3, @Nullable PublicKey var4, @Nullable byte[] var5, @Nullable byte[] var6) throws InvalidKeyException;

    @FlaggedApi("com.android.libcore.hpke_v_apis")
    @NonNull
    byte[] engineSeal(@NonNull byte[] var1, @Nullable byte[] var2);

    @FlaggedApi("com.android.libcore.hpke_v_apis")
    @NonNull
    byte[] engineOpen(@NonNull byte[] var1, @Nullable byte[] var2) throws GeneralSecurityException;

    @FlaggedApi("com.android.libcore.hpke_v_apis")
    @NonNull
    byte[] engineExport(int var1, @Nullable byte[] var2);

    @FlaggedApi("com.android.libcore.hpke_v_apis")
    @NonNull
    byte[] getEncapsulated();
}