diff --git a/tst/com/amazon/corretto/crypto/provider/test/EvpKeyAgreementTest.java b/tst/com/amazon/corretto/crypto/provider/test/EvpKeyAgreementTest.java index ef99b101..b0cf8f65 100644 --- a/tst/com/amazon/corretto/crypto/provider/test/EvpKeyAgreementTest.java +++ b/tst/com/amazon/corretto/crypto/provider/test/EvpKeyAgreementTest.java @@ -69,8 +69,8 @@ public class EvpKeyAgreementTest { private final KeyPairGenerator keyGen; // We test pairwise across lots of keypairs in an effort // to catch rarer edge-cases. - private final KeyPair[] pairs; - private final byte[][][] rawSecrets; + private KeyPair[] pairs; + private byte[][][] rawSecrets; private final List invalidKeys; private final Provider nativeProvider; private final Provider jceProvider; @@ -86,27 +86,6 @@ public EvpKeyAgreementTest(final String algorithm, final String displayName, fin this.invalidKeys = invalidKeys; this.nativeProvider = nativeProvider; this.jceProvider = jceProvider; - - pairs = new KeyPair[PAIR_COUNT]; - for (int x = 0; x < pairs.length; x++) { - pairs[x] = keyGen.generateKeyPair(); - } - - nativeAgreement = KeyAgreement.getInstance(algorithm, nativeProvider); - jceAgreement = KeyAgreement.getInstance(algorithm, jceProvider); - // Do pairwise agreement between all pairs - rawSecrets = new byte[pairs.length][][]; - for (int x = 0; x < pairs.length; x++) { - rawSecrets[x] = new byte[pairs.length][]; - } - for (int x = 0; x < pairs.length; x++) { - for (int y = x; y < pairs.length; y++) { - jceAgreement.init(pairs[x].getPrivate()); - jceAgreement.doPhase(pairs[y].getPublic(), true); - rawSecrets[x][y] = jceAgreement.generateSecret(); - rawSecrets[y][x] = rawSecrets[x][y]; - } - } } @Parameters(name = "{1}") @@ -134,6 +113,25 @@ public static Collection data() throws Exception { public void setup() throws GeneralSecurityException { nativeAgreement = KeyAgreement.getInstance(algorithm, nativeProvider); jceAgreement = KeyAgreement.getInstance(algorithm, jceProvider); + + pairs = new KeyPair[PAIR_COUNT]; + for (int x = 0; x < pairs.length; x++) { + pairs[x] = keyGen.generateKeyPair(); + } + + // Do pairwise agreement between all pairs + rawSecrets = new byte[pairs.length][][]; + for (int x = 0; x < pairs.length; x++) { + rawSecrets[x] = new byte[pairs.length][]; + } + for (int x = 0; x < pairs.length; x++) { + for (int y = x; y < pairs.length; y++) { + jceAgreement.init(pairs[x].getPrivate()); + jceAgreement.doPhase(pairs[y].getPublic(), true); + rawSecrets[x][y] = jceAgreement.generateSecret(); + rawSecrets[y][x] = rawSecrets[x][y]; + } + } } @After @@ -142,6 +140,8 @@ public void teardown() { // if we do not properly null our references nativeAgreement = null; jceAgreement = null; + pairs = null; + rawSecrets = null; } private static Object[] buildDhParameters(final int keySize) throws GeneralSecurityException { diff --git a/tst/com/amazon/corretto/crypto/provider/test/EvpSignatureTest.java b/tst/com/amazon/corretto/crypto/provider/test/EvpSignatureTest.java index 4ba37bdf..d273e65e 100644 --- a/tst/com/amazon/corretto/crypto/provider/test/EvpSignatureTest.java +++ b/tst/com/amazon/corretto/crypto/provider/test/EvpSignatureTest.java @@ -55,8 +55,6 @@ public class EvpSignatureTest { private static final int[] MESSAGE_LENGTHS = new int[] { 0, 1, 16, 32, 2047, 2048, 2049, 4100 }; private static Map KEY_PAIRS; - private final byte[] message_; - static { try { final Map tmpMap = new HashMap<>(); @@ -120,32 +118,27 @@ public static Collection data() { private final boolean readOnly_; private final boolean slice_; private final KeyPair keyPair_; - private final byte[] goodSignature_; + private final int length_; + private byte[] message_; private Signature signer_; private Signature verifier_; private Signature jceVerifier_; + private byte[] goodSignature_; public EvpSignatureTest(final String base, final String hash, final int length, boolean readOnly, boolean slice) throws GeneralSecurityException { base_ = base; hash_ = hash; readOnly_ = readOnly; slice_ = slice; - message_ = new byte[length]; + length_ = length; - for (int x = 0; x < message_.length; x++) { - message_[x] = (byte) ((x % 256) - 128); - } if (base_.startsWith("RSA")) { keyPair_ = KEY_PAIRS.get("RSA"); } else { keyPair_ = KEY_PAIRS.get(base_); } algorithm_ = format("%swith%s", hash_, base_); - final Signature jceSigner = getJceSigner(); - jceSigner.initSign(keyPair_.getPrivate()); - jceSigner.update(message_); - goodSignature_ = jceSigner.sign(); } @Before @@ -156,6 +149,17 @@ public void setup() throws GeneralSecurityException { verifier_.initVerify(keyPair_.getPublic()); jceVerifier_ = getJceSigner(); jceVerifier_.initVerify(keyPair_.getPublic()); + + message_ = new byte[length_]; + + for (int x = 0; x < message_.length; x++) { + message_[x] = (byte) ((x % 256) - 128); + } + + final Signature jceSigner = getJceSigner(); + jceSigner.initSign(keyPair_.getPrivate()); + jceSigner.update(message_); + goodSignature_ = jceSigner.sign(); } @After @@ -165,6 +169,8 @@ public void teardown() { signer_ = null; verifier_ = null; jceVerifier_ = null; + message_ = null; + goodSignature_ = null; } private Signature getNativeSigner() throws NoSuchAlgorithmException {