Browse Source

Delegate crypto algorithm creation to InsecureCipherFactory

This is a preparation change to Bazel build implementation. Error
Prone rejects the code with variable crypto algorithm as insecure
see: [1].

[1] http://errorprone.info/bugpattern/InsecureCryptoUsage

Change-Id: I92db70a7da454bc364597a995e8be5dccc2d6427
Signed-off-by: David Ostrovsky <david@ostrovsky.org>
tags/v4.7.0.201704051617-r
David Ostrovsky 7 years ago
parent
commit
cee9d444e9

+ 4
- 5
org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/WalkEncryptionTest.java View File

import java.util.TreeSet; import java.util.TreeSet;
import java.util.UUID; import java.util.UUID;


import javax.crypto.Cipher;
import javax.crypto.SecretKeyFactory; import javax.crypto.SecretKeyFactory;


import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.Git;
String profile = props.getProperty(AmazonS3.Keys.CRYPTO_ALG); String profile = props.getProperty(AmazonS3.Keys.CRYPTO_ALG);
String version = props.getProperty(AmazonS3.Keys.CRYPTO_VER, String version = props.getProperty(AmazonS3.Keys.CRYPTO_VER,
WalkEncryption.Vals.DEFAULT_VERS); WalkEncryption.Vals.DEFAULT_VERS);
String crytoAlgo;
String cryptoAlgo;
String keyAlgo; String keyAlgo;
switch (version) { switch (version) {
case WalkEncryption.Vals.DEFAULT_VERS: case WalkEncryption.Vals.DEFAULT_VERS:
case WalkEncryption.JGitV1.VERSION: case WalkEncryption.JGitV1.VERSION:
crytoAlgo = profile;
cryptoAlgo = profile;
keyAlgo = profile; keyAlgo = profile;
break; break;
case WalkEncryption.JGitV2.VERSION: case WalkEncryption.JGitV2.VERSION:
crytoAlgo = props
cryptoAlgo = props
.getProperty(profile + WalkEncryption.Keys.X_ALGO); .getProperty(profile + WalkEncryption.Keys.X_ALGO);
keyAlgo = props keyAlgo = props
.getProperty(profile + WalkEncryption.Keys.X_KEY_ALGO); .getProperty(profile + WalkEncryption.Keys.X_KEY_ALGO);
return false; return false;
} }
try { try {
Cipher.getInstance(crytoAlgo);
InsecureCipherFactory.create(cryptoAlgo);
SecretKeyFactory.getInstance(keyAlgo); SecretKeyFactory.getInstance(keyAlgo);
return true; return true;
} catch (Throwable e) { } catch (Throwable e) {

Loading…
Cancel
Save