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

package com.google.crypto.tink.subtle;

import java.security.GeneralSecurityException;
import java.security.interfaces.ECPublicKey;
import java.security.interfaces.ECPrivateKey;

public final class EciesHkdfRecipientKem
{
    private ECPrivateKey recipientPrivateKey;
    
    public EciesHkdfRecipientKem(final ECPrivateKey recipientPrivateKey) {
        this.recipientPrivateKey = recipientPrivateKey;
    }
    
    public byte[] generateKey(final byte[] kemBytes, final String hmacAlgo, final byte[] hkdfSalt, final byte[] hkdfInfo, final int keySizeInBytes, final EllipticCurves.PointFormatType pointFormat) throws GeneralSecurityException {
        final ECPublicKey ephemeralPublicKey = EllipticCurves.getEcPublicKey(this.recipientPrivateKey.getParams(), pointFormat, kemBytes);
        final byte[] sharedSecret = EllipticCurves.computeSharedSecret(this.recipientPrivateKey, ephemeralPublicKey);
        return Hkdf.computeEciesHkdfSymmetricKey(kemBytes, sharedSecret, hmacAlgo, hkdfSalt, hkdfInfo, keySizeInBytes);
    }
}
