aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/operator/jcajce/JcePBEDataDecryptorFactoryBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/operator/jcajce/JcePBEDataDecryptorFactoryBuilder.java')
-rw-r--r--libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/operator/jcajce/JcePBEDataDecryptorFactoryBuilder.java99
1 files changed, 0 insertions, 99 deletions
diff --git a/libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/operator/jcajce/JcePBEDataDecryptorFactoryBuilder.java b/libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/operator/jcajce/JcePBEDataDecryptorFactoryBuilder.java
deleted file mode 100644
index 7f18d34b8..000000000
--- a/libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/operator/jcajce/JcePBEDataDecryptorFactoryBuilder.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package org.spongycastle.openpgp.operator.jcajce;
-
-import java.security.Provider;
-
-import javax.crypto.Cipher;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
-
-import org.spongycastle.jcajce.DefaultJcaJceHelper;
-import org.spongycastle.jcajce.NamedJcaJceHelper;
-import org.spongycastle.jcajce.ProviderJcaJceHelper;
-import org.spongycastle.openpgp.PGPException;
-import org.spongycastle.openpgp.operator.PBEDataDecryptorFactory;
-import org.spongycastle.openpgp.operator.PGPDataDecryptor;
-import org.spongycastle.openpgp.operator.PGPDigestCalculatorProvider;
-
-public class JcePBEDataDecryptorFactoryBuilder
-{
- private OperatorHelper helper = new OperatorHelper(new DefaultJcaJceHelper());
- private PGPDigestCalculatorProvider calculatorProvider;
-
- /**
- * Base constructor.
- *
- * @param calculatorProvider a digest calculator provider to provide calculators to support the key generation calculation required.
- */
- public JcePBEDataDecryptorFactoryBuilder(PGPDigestCalculatorProvider calculatorProvider)
- {
- this.calculatorProvider = calculatorProvider;
- }
-
- /**
- * Set the provider object to use for creating cryptographic primitives in the resulting factory the builder produces.
- *
- * @param provider provider object for cryptographic primitives.
- * @return the current builder.
- */
- public JcePBEDataDecryptorFactoryBuilder setProvider(Provider provider)
- {
- this.helper = new OperatorHelper(new ProviderJcaJceHelper(provider));
-
- return this;
- }
-
- /**
- * Set the provider name to use for creating cryptographic primitives in the resulting factory the builder produces.
- *
- * @param providerName the name of the provider to reference for cryptographic primitives.
- * @return the current builder.
- */
- public JcePBEDataDecryptorFactoryBuilder setProvider(String providerName)
- {
- this.helper = new OperatorHelper(new NamedJcaJceHelper(providerName));
-
- return this;
- }
-
- public PBEDataDecryptorFactory build(char[] passPhrase)
- {
- return new PBEDataDecryptorFactory(passPhrase, calculatorProvider)
- {
- public byte[] recoverSessionData(int keyAlgorithm, byte[] key, byte[] secKeyData)
- throws PGPException
- {
- try
- {
- if (secKeyData != null && secKeyData.length > 0)
- {
- String cipherName = PGPUtil.getSymmetricCipherName(keyAlgorithm);
- Cipher keyCipher = helper.createCipher(cipherName + "/CFB/NoPadding");
-
- keyCipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key, cipherName), new IvParameterSpec(new byte[keyCipher.getBlockSize()]));
-
- return keyCipher.doFinal(secKeyData);
- }
- else
- {
- byte[] keyBytes = new byte[key.length + 1];
-
- keyBytes[0] = (byte)keyAlgorithm;
- System.arraycopy(key, 0, keyBytes, 1, key.length);
-
- return keyBytes;
- }
- }
- catch (Exception e)
- {
- throw new PGPException("Exception recovering session info", e);
- }
- }
-
- public PGPDataDecryptor createDataDecryptor(boolean withIntegrityPacket, int encAlgorithm, byte[] key)
- throws PGPException
- {
- return helper.createDataDecryptor(withIntegrityPacket, encAlgorithm, key);
- }
- };
- }
-}