diff options
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/db/DbSatellite.java')
-rw-r--r-- | src/main/java/org/openslx/imagemaster/db/DbSatellite.java | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/src/main/java/org/openslx/imagemaster/db/DbSatellite.java b/src/main/java/org/openslx/imagemaster/db/DbSatellite.java index 383377a..4d70bef 100644 --- a/src/main/java/org/openslx/imagemaster/db/DbSatellite.java +++ b/src/main/java/org/openslx/imagemaster/db/DbSatellite.java @@ -1,14 +1,13 @@ package org.openslx.imagemaster.db; import java.math.BigInteger; -import java.security.KeyFactory; import java.security.NoSuchAlgorithmException; import java.security.PublicKey; import java.security.spec.InvalidKeySpecException; -import java.security.spec.RSAPublicKeySpec; import java.util.List; import org.apache.log4j.Logger; +import org.openslx.encryption.AsymKeyHolder; import org.openslx.imagemaster.thrift.iface.OrganizationData; /** @@ -21,18 +20,6 @@ public class DbSatellite private String organizationId, address, name, publickeyString; private PublicKey publickey = null; - private static final KeyFactory keyFact; - - static - { - KeyFactory kf; - try { - kf = KeyFactory.getInstance( "RSA" ); - } catch ( NoSuchAlgorithmException e ) { - kf = null; - } - keyFact = kf; - } public DbSatellite( String organizationId, String address, String name, String publickeyString ) { @@ -104,18 +91,15 @@ public class DbSatellite */ public PublicKey getPubkey() { - if ( publickey == null && keyFact != null && publickeyString != null ) { + if ( publickey == null && publickeyString != null ) { String parts[] = publickeyString.split( " " ); if ( parts.length != 2 ) return null; try { BigInteger mod = new BigInteger( parts[0] ); BigInteger exp = new BigInteger( parts[1] ); - RSAPublicKeySpec keySpec = new RSAPublicKeySpec( mod, exp ); - synchronized ( keyFact ) { - publickey = keyFact.generatePublic( keySpec ); - } - } catch ( InvalidKeySpecException e ) { + publickey = new AsymKeyHolder( null, exp, mod ).getPublicKey(); + } catch ( InvalidKeySpecException | NoSuchAlgorithmException e ) { LOG.info( "PubKey of " + this.name + " is not valid.", e ); } catch ( NumberFormatException e ) { LOG.info( "PubKey of " + this.name + " is corrupted in database!", e ); |