package org.spongycastle.openpgp.operator; import org.spongycastle.bcpg.S2K; import org.spongycastle.openpgp.PGPException; public abstract class PBEDataDecryptorFactory implements PGPDataDecryptorFactory { private char[] passPhrase; private PGPDigestCalculatorProvider calculatorProvider; protected PBEDataDecryptorFactory(char[] passPhrase, PGPDigestCalculatorProvider calculatorProvider) { this.passPhrase = passPhrase; this.calculatorProvider = calculatorProvider; } public byte[] makeKeyFromPassPhrase(int keyAlgorithm, S2K s2k) throws PGPException { return PGPUtil.makeKeyFromPassPhrase(calculatorProvider, keyAlgorithm, s2k, passPhrase); } public abstract byte[] recoverSessionData(int keyAlgorithm, byte[] key, byte[] seckKeyData) throws PGPException; }