diff options
Diffstat (limited to 'prov/src/test/java/org/spongycastle/jce/provider/test/JceTestUtil.java')
-rw-r--r-- | prov/src/test/java/org/spongycastle/jce/provider/test/JceTestUtil.java | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/prov/src/test/java/org/spongycastle/jce/provider/test/JceTestUtil.java b/prov/src/test/java/org/spongycastle/jce/provider/test/JceTestUtil.java new file mode 100644 index 00000000..271a27f8 --- /dev/null +++ b/prov/src/test/java/org/spongycastle/jce/provider/test/JceTestUtil.java @@ -0,0 +1,49 @@ +package org.spongycastle.jce.provider.test; + +import java.security.Security; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; + +import org.spongycastle.jce.provider.BouncyCastleProvider; + +abstract class JceTestUtil +{ + private JceTestUtil() + { + } + + static String[] getRegisteredAlgorithms(String prefix, String[] exclusionPatterns) + { + final BouncyCastleProvider prov = (BouncyCastleProvider)Security.getProvider("SC"); + + List matches = new ArrayList(); + Enumeration algos = prov.keys(); + while (algos.hasMoreElements()) + { + String algo = (String)algos.nextElement(); + if (!algo.startsWith(prefix)) + { + continue; + } + String algoName = algo.substring(prefix.length()); + if (!isExcluded(algoName, exclusionPatterns)) + { + matches.add(algoName); + } + } + return (String[])matches.toArray(new String[matches.size()]); + } + + private static boolean isExcluded(String algoName, String[] exclusionPatterns) + { + for (int i = 0; i < exclusionPatterns.length; i++) + { + if (algoName.contains(exclusionPatterns[i])) + { + return true; + } + } + return false; + } +} |