From e023e674020f1a435f7b8c8b9276704f576ea6e5 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Mon, 29 Mar 2021 14:08:45 +0200 Subject: structure change 1 --- .../uic/barcode/utils/AlgorithmNameResolver.java | 173 --------------------- 1 file changed, 173 deletions(-) delete mode 100644 src/org/uic/barcode/utils/AlgorithmNameResolver.java (limited to 'src/org/uic/barcode/utils/AlgorithmNameResolver.java') diff --git a/src/org/uic/barcode/utils/AlgorithmNameResolver.java b/src/org/uic/barcode/utils/AlgorithmNameResolver.java deleted file mode 100644 index 300bf7d..0000000 --- a/src/org/uic/barcode/utils/AlgorithmNameResolver.java +++ /dev/null @@ -1,173 +0,0 @@ -package org.uic.barcode.utils; - -import java.security.Provider; -import java.security.Provider.Service; -import java.security.Security; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class AlgorithmNameResolver { - - - public static final String TYPE_KEY_GENERATOR_ALG = "KeyPairGenerator"; - public static final String TYPE_SIGNATURE_ALG = "Signature"; - - - private static final Pattern KEY_TYPE_PATTERN = Pattern.compile("^(\\w+)[.].*$"); - private static final Pattern KEY_ALIAS_TYPE_PATTERN = Pattern.compile("^Alg[.]Alias[.](\\w+).*$"); - private static final Pattern KEY_OID_PATTERN = Pattern.compile(".*?(\\d+(?:[.]\\d+){3,})$"); - - public static String getSignatureAlgorithmName (String oid) throws Exception { - - Provider[] provs = Security.getProviders(); - for (Provider prov : provs) { - Service service = prov.getService(AlgorithmNameResolver.TYPE_SIGNATURE_ALG,oid); - if (service != null) { - return service.getAlgorithm(); - } - } - return null; - - } - - - public static String getName(String type, String oid) throws Exception { - - Provider[] provs = Security.getProviders(); - - for (Provider prov : provs) { - - SortedSet typeAndOID = getTypeAndOIDStrings(prov); - - for (String entry : typeAndOID) { - String[] typeAndOIDArray = entry.split("-"); - String ptype = typeAndOIDArray[0]; - if (ptype.equalsIgnoreCase(type)) { - String poid = typeAndOIDArray[1]; - Service pservice = prov.getService(ptype, poid); - String palgo = pservice.getAlgorithm(); - - if (ptype.equalsIgnoreCase(type) && poid.equals(oid)) { - return palgo; - } - } - } - } - - - if (oid.startsWith("1.2.840.10045")) { - return "ECDSA"; - } else if (oid.startsWith("1.2.840.10040")) { - return "DSA"; - } - - return null; - - } - - public static String getName(String type, String oid, String providerName) throws Exception { - - Provider[] provs = Security.getProviders(); - - for (Provider prov : provs) { - - if (providerName == null || prov.getName().equals(providerName)) { - - SortedSet typeAndOID = getTypeAndOIDStrings(prov); - - for (String entry : typeAndOID) { - String[] typeAndOIDArray = entry.split("-"); - String ptype = typeAndOIDArray[0]; - if (ptype.equalsIgnoreCase(type)) { - String poid = typeAndOIDArray[1]; - Service pservice = prov.getService(ptype, poid); - String palgo = pservice.getAlgorithm(); - - if (ptype.equalsIgnoreCase(type) && poid.equals(oid)) { - return palgo; - } - } - } - } - } - - - if (oid.startsWith("1.2.840.10045")) { - return "ECDSA"; - } else if (oid.startsWith("1.2.840.10040")) { - return "DSA"; - } - - return null; - - } - - private static SortedSet getTypeAndOIDStrings(Provider prov) { - - SortedSet typeAndOID = new TreeSet<>(); - - Set keys = prov.keySet(); - for (Object key : keys) { - String keyString = key.toString(); - Matcher oidMatcher = KEY_OID_PATTERN.matcher(keyString); - if (oidMatcher.matches()) { - // get OID from matched keyString - String oid = oidMatcher.group(1); - - // determine type - String type; - Matcher aliasTypeMatcher = KEY_ALIAS_TYPE_PATTERN.matcher(keyString); - if (aliasTypeMatcher.matches()) { - type = aliasTypeMatcher.group(1); - } else { - Matcher typeMatcher = KEY_TYPE_PATTERN.matcher(keyString); - typeMatcher.matches(); - type = typeMatcher.group(1); - } - // algorithm parameters are not algorithms, so skip them - if (type.equals("AlgorithmParameters")) { - continue; - } - - // auto-removes dupes - typeAndOID.add(type + "-" + oid); - } - } - return typeAndOID; - } - - - public static String getSecurityNames() throws Exception { - - Provider[] provs = Security.getProviders(); - - StringBuilder sb = new StringBuilder(); - - for (Provider prov : provs) { - - SortedSet typeAndOID = getTypeAndOIDStrings(prov); - - for (String entry : typeAndOID) { - String[] typeAndOIDArray = entry.split("-"); - String ptype = typeAndOIDArray[0]; - String poid = typeAndOIDArray[1]; - Service pservice = prov.getService(ptype, poid); - String palgo = ""; - if ( pservice != null) { - palgo = pservice.getAlgorithm(); - } - sb.append(prov).append(";"); - sb.append(ptype).append(";"); - sb.append(poid).append(";"); - sb.append(palgo).append(";"); - sb.append("\r\n"); - - } - } - return sb.toString(); - - } -} -- cgit v1.2.3