From 98da41ff60f187be6e7906d61886410c4d565071 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Fri, 20 May 2022 13:50:53 +0200 Subject: experimental implementation of Elliptic Curve Public Key Encoding with X9.62 compressed and uncompressed --- .../java/org/uic/barcode/utils/SecurityUtils.java | 29 +++------------------- 1 file changed, 4 insertions(+), 25 deletions(-) (limited to 'src/main/java/org/uic/barcode/utils/SecurityUtils.java') diff --git a/src/main/java/org/uic/barcode/utils/SecurityUtils.java b/src/main/java/org/uic/barcode/utils/SecurityUtils.java index fc6a135..5fdbda7 100644 --- a/src/main/java/org/uic/barcode/utils/SecurityUtils.java +++ b/src/main/java/org/uic/barcode/utils/SecurityUtils.java @@ -24,37 +24,16 @@ public class SecurityUtils { * @return the provider */ public static Provider findPublicKeyProvider(String keyAlgorithmOid, byte[] keyBytes) { - - - X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes); - - String name; - try { - name = AlgorithmNameResolver.getAlgorithmName(AlgorithmNameResolver.TYPE_KEY_GENERATOR_ALG, keyAlgorithmOid, null); - } catch (Exception e2) { - return null; - } - - KeyFactory keyFactory = null; - + Provider[] provs = Security.getProviders(); for (Provider provider : provs) { try { - keyFactory = KeyFactory.getInstance(name,provider); - } catch (NoSuchAlgorithmException e1) { + PublicKey key = ECKeyEncoder.fromEncoded(keyBytes, keyAlgorithmOid, provider); + if (key != null) return provider; + } catch (Exception e1) { //try next } - if (keyFactory != null) { - try { - keyFactory.generatePublic(keySpec); - return provider; - } catch (Exception e) { - provider = null; - //try next - } - } } - return null; } -- cgit v1.2.3