summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/db
diff options
context:
space:
mode:
authorSimon Rettberg2014-10-14 19:20:26 +0200
committerSimon Rettberg2014-10-14 19:20:26 +0200
commitc2fcf2370dc8c3137ea77ba94f6a12f1ab01a415 (patch)
tree619187290b86e56d72cdc77b1a4814753f68b580 /src/main/java/org/openslx/imagemaster/db
parentAdd authmethod (ecp url) to OrganizationData query (diff)
downloadmasterserver-c2fcf2370dc8c3137ea77ba94f6a12f1ab01a415.tar.gz
masterserver-c2fcf2370dc8c3137ea77ba94f6a12f1ab01a415.tar.xz
masterserver-c2fcf2370dc8c3137ea77ba94f6a12f1ab01a415.zip
Implement registerSatellite RPC
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/db')
-rw-r--r--src/main/java/org/openslx/imagemaster/db/DbPendingSatellite.java16
-rw-r--r--src/main/java/org/openslx/imagemaster/db/DbSatellite.java24
2 files changed, 20 insertions, 20 deletions
diff --git a/src/main/java/org/openslx/imagemaster/db/DbPendingSatellite.java b/src/main/java/org/openslx/imagemaster/db/DbPendingSatellite.java
new file mode 100644
index 0000000..30ec5a2
--- /dev/null
+++ b/src/main/java/org/openslx/imagemaster/db/DbPendingSatellite.java
@@ -0,0 +1,16 @@
+package org.openslx.imagemaster.db;
+
+import org.apache.log4j.Logger;
+
+public class DbPendingSatellite
+{
+
+ private static final Logger LOG = Logger.getLogger( DbPendingSatellite.class );
+
+ public static boolean add( String organizationId, String address, String modulus, String exponent )
+ {
+ String publickey = "mod:" + modulus + " exp:" + exponent;
+ return MySQL.update( "INSERT INTO pending_satellite (dateline, organizationid, address, publickey)"
+ + " VALUES (UNIX_TIMESTAMP(), ?, ?, ?)", organizationId, address, publickey ) != 0;
+ }
+}
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 );