Rely on ProviderFactory for access to BouncyCastleProvider

This commit is contained in:
Paul Schaub 2020-01-10 19:03:04 +01:00
parent ead54cb00b
commit cd4bf1ef96
Signed by: vanitasvitae
GPG Key ID: 62BEE9264BF17311
11 changed files with 20 additions and 43 deletions

View File

@ -51,6 +51,7 @@ import org.pgpainless.key.generation.type.KeyType;
import org.pgpainless.key.generation.type.RSA_GENERAL;
import org.pgpainless.key.generation.type.curve.EllipticCurve;
import org.pgpainless.key.generation.type.length.RsaLength;
import org.pgpainless.provider.ProviderFactory;
import org.pgpainless.util.Passphrase;
public class KeyRingBuilder implements KeyRingBuilderInterface {
@ -160,6 +161,7 @@ public class KeyRingBuilder implements KeyRingBuilderInterface {
// Hash Calculator
PGPDigestCalculator calculator = new JcaPGPDigestCalculatorProviderBuilder()
.setProvider(ProviderFactory.getProvider())
.build()
.get(HashAlgorithm.SHA1.getAlgorithmId());
@ -183,7 +185,8 @@ public class KeyRingBuilder implements KeyRingBuilderInterface {
// Signer for creating self-signature
PGPContentSignerBuilder signer = new JcaPGPContentSignerBuilder(
certKey.getPublicKey().getAlgorithm(), HashAlgorithm.SHA512.getAlgorithmId());
certKey.getPublicKey().getAlgorithm(), HashAlgorithm.SHA512.getAlgorithmId())
.setProvider(ProviderFactory.getProvider());
PGPSignatureSubpacketVector hashedSubPackets = certKeySpec.getSubpackets();
@ -212,7 +215,7 @@ public class KeyRingBuilder implements KeyRingBuilderInterface {
throws NoSuchAlgorithmException, PGPException,
InvalidAlgorithmParameterException {
KeyType type = spec.getKeyType();
KeyPairGenerator certKeyGenerator = KeyPairGenerator.getInstance(type.getName());
KeyPairGenerator certKeyGenerator = KeyPairGenerator.getInstance(type.getName(), ProviderFactory.getProvider());
certKeyGenerator.initialize(type.getAlgorithmSpec());
// Create raw Key Pair

View File

@ -1,29 +0,0 @@
/*
* Copyright 2018 Paul Schaub.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.pgpainless;
import java.security.Security;
import org.junit.BeforeClass;
import org.pgpainless.provider.ProviderFactory;
public abstract class AbstractPGPainlessTest {
@BeforeClass
public static void registerProvider() {
Security.insertProviderAt(ProviderFactory.getProvider(), 1);
}
}

View File

@ -42,7 +42,7 @@ import org.pgpainless.key.generation.type.RSA_GENERAL;
import org.pgpainless.key.generation.type.length.RsaLength;
import org.pgpainless.util.BCUtil;
public class BCUtilTest extends AbstractPGPainlessTest {
public class BCUtilTest {
private static final Logger LOGGER = Logger.getLogger(BCUtil.class.getName());

View File

@ -41,8 +41,9 @@ import org.bouncycastle.openpgp.operator.jcajce.JcaPGPContentSignerBuilder;
import org.bouncycastle.openpgp.operator.jcajce.JcaPGPDigestCalculatorProviderBuilder;
import org.bouncycastle.openpgp.operator.jcajce.JcaPGPKeyPair;
import org.junit.Test;
import org.pgpainless.provider.ProviderFactory;
public class BouncycastleExportSubkeys extends AbstractPGPainlessTest {
public class BouncycastleExportSubkeys {
@Test
public void testExportImport() throws NoSuchAlgorithmException, InvalidAlgorithmParameterException, PGPException {
@ -51,7 +52,7 @@ public class BouncycastleExportSubkeys extends AbstractPGPainlessTest {
// Generate master key
generator = KeyPairGenerator.getInstance("ECDSA");
generator = KeyPairGenerator.getInstance("ECDSA", ProviderFactory.getProvider());
generator.initialize(new ECNamedCurveGenParameterSpec("P-256"));
pair = generator.generateKeyPair();
@ -77,7 +78,7 @@ public class BouncycastleExportSubkeys extends AbstractPGPainlessTest {
// Generate sub key
generator = KeyPairGenerator.getInstance("ECDH");
generator = KeyPairGenerator.getInstance("ECDH", ProviderFactory.getProvider());
generator.initialize(new ECNamedCurveGenParameterSpec("P-256"));
pair = generator.generateKeyPair();
@ -86,11 +87,13 @@ public class BouncycastleExportSubkeys extends AbstractPGPainlessTest {
// Assemble key
PGPDigestCalculator calculator = new JcaPGPDigestCalculatorProviderBuilder()
.setProvider(ProviderFactory.getProvider())
.build()
.get(HashAlgorithmTags.SHA1);
PGPContentSignerBuilder signerBuilder = new JcaPGPContentSignerBuilder(
pgpMasterKey.getPublicKey().getAlgorithm(), HashAlgorithmTags.SHA512);
pgpMasterKey.getPublicKey().getAlgorithm(), HashAlgorithmTags.SHA512)
.setProvider(ProviderFactory.getProvider());
PGPKeyRingGenerator pgpGenerator = new PGPKeyRingGenerator(PGPSignature.POSITIVE_CERTIFICATION,
pgpMasterKey, "alice@wonderland.lit", calculator, subPackets.generate(), null,

View File

@ -52,7 +52,7 @@ import org.pgpainless.key.protection.SecretKeyRingProtector;
import org.pgpainless.key.protection.UnprotectedKeysProtector;
import org.pgpainless.util.BCUtil;
public class EncryptDecryptTest extends AbstractPGPainlessTest {
public class EncryptDecryptTest {
private static final Logger LOGGER = Logger.getLogger(EncryptDecryptTest.class.getName());
private static final Charset UTF8 = Charset.forName("UTF-8");

View File

@ -32,7 +32,7 @@ import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator;
import org.junit.Test;
import org.pgpainless.key.collection.PGPKeyRing;
public class ImportExportKeyTest extends AbstractPGPainlessTest {
public class ImportExportKeyTest {
/**
* Test the export and import of a key ring with sub keys.

View File

@ -39,7 +39,7 @@ import org.pgpainless.key.protection.UnprotectedKeysProtector;
/**
* Class used to determine the length of cipher-text depending on used algorithms.
*/
public class LengthTest extends AbstractPGPainlessTest {
public class LengthTest {
private static final Logger LOGGER = Logger.getLogger(LengthTest.class.getName());

View File

@ -24,7 +24,7 @@ import org.bouncycastle.openpgp.PGPPublicKey;
import org.junit.Test;
import org.pgpainless.key.OpenPgpV4Fingerprint;
public class OpenPgpV4FingerprintTest extends AbstractPGPainlessTest {
public class OpenPgpV4FingerprintTest {
@Test(expected = IllegalArgumentException.class)
public void fpTooShort() {

View File

@ -29,7 +29,7 @@ import org.junit.Test;
import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
import org.pgpainless.util.Passphrase;
public class SymmetricTest extends AbstractPGPainlessTest {
public class SymmetricTest {
private static final Logger LOGGER = Logger.getLogger(SymmetricTest.class.getName());

View File

@ -28,7 +28,7 @@ import org.bouncycastle.openpgp.operator.KeyFingerPrintCalculator;
import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator;
import org.pgpainless.key.OpenPgpV4Fingerprint;
public class TestKeys extends AbstractPGPainlessTest {
public class TestKeys {
private static final KeyFingerPrintCalculator calc = new BcKeyFingerprintCalculator();
private static PGPSecretKeyRing julietSecretKeyRing = null;

View File

@ -38,7 +38,7 @@ import org.pgpainless.decryption_verification.OpenPgpMetadata;
import org.pgpainless.key.OpenPgpV4Fingerprint;
import org.pgpainless.key.protection.UnprotectedKeysProtector;
public class TestKeysTest extends AbstractPGPainlessTest {
public class TestKeysTest {
private final PGPSecretKeyRing juliet;
private final PGPSecretKeyRing romeo;