diff --git a/datastore/src/main/java/net/jami/datastore/dao/DeviceDao.java b/datastore/src/main/java/net/jami/datastore/dao/DeviceDao.java index cc069316c559d8883f0230f2a3979a864693531b..9f7db3e553425bc8af3fdce2945c59446534c6c1 100644 --- a/datastore/src/main/java/net/jami/datastore/dao/DeviceDao.java +++ b/datastore/src/main/java/net/jami/datastore/dao/DeviceDao.java @@ -20,7 +20,7 @@ public class DeviceDao extends AbstractDao<Device> { String createTable = "CREATE TABLE devices (" + "deviceId varchar(255), " + "owner varchar(255)," + - "displayName varchar(10)," + + "displayName varchar(255)," + "certificate varchar(5000), "+ "privatekey varchar(5000)," + "PRIMARY KEY (deviceId))"; diff --git a/jams-ca/src/main/java/net/jami/jams/ca/workers/csr/builders/UserBuilder.java b/jams-ca/src/main/java/net/jami/jams/ca/workers/csr/builders/UserBuilder.java index 117523f26f82168c555229f02f2537d6bb78460b..2ec6e9c81d1e47f5a3d1da6db3750e5a8385fb62 100644 --- a/jams-ca/src/main/java/net/jami/jams/ca/workers/csr/builders/UserBuilder.java +++ b/jams-ca/src/main/java/net/jami/jams/ca/workers/csr/builders/UserBuilder.java @@ -19,8 +19,9 @@ import java.util.Date; @Slf4j public class UserBuilder { - public static User generateUser(User user){ + public static User generateUser(User user) { try { + KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(4096); KeyPair keyPair = keyPairGenerator.generateKeyPair(); @@ -33,10 +34,10 @@ public class UserBuilder { SubjectPublicKeyInfo.getInstance(keyPair.getPublic().getEncoded()) ); user.setPrivateKey(keyPair.getPrivate()); - user.setCertificate(CertificateSigner.signCertificate(JamsCA.CA.getPrivateKey(),builder, ExtensionLibrary.userExtensions)); + user.setCertificate(CertificateSigner.signCertificate(JamsCA.CA.getPrivateKey(), builder, ExtensionLibrary.userExtensions)); + return user; - } - catch (Exception e){ + } catch (Exception e) { log.error("Could not generate a user certificate: " + e.toString()); return null; } diff --git a/jams-common/src/main/java/net/jami/jams/common/objects/devices/Device.java b/jams-common/src/main/java/net/jami/jams/common/objects/devices/Device.java index 669de80ba13a32b1a37068fd9da11dd09543ba5a..036a798305a11f53a46f44ad6ef2fed500f3f7ef 100644 --- a/jams-common/src/main/java/net/jami/jams/common/objects/devices/Device.java +++ b/jams-common/src/main/java/net/jami/jams/common/objects/devices/Device.java @@ -37,7 +37,8 @@ public class Device extends X509Entity implements DatabaseObject { ps.setString(2, owner); ps.setString(3,displayName); ps.setString(4, X509Utils.getPEMStringFromCertificate(this.getCertificate())); - ps.setString(5, X509Utils.getPEMStringFromPrivateKey(this.getPrivateKey())); + //Devices do not have private keys exposed. + ps.setString(5, ""); return ps; } diff --git a/jams-common/src/main/java/net/jami/jams/common/objects/responses/DeviceRegistrationResponse.java b/jams-common/src/main/java/net/jami/jams/common/objects/responses/DeviceRegistrationResponse.java index 23c29363a29adcd16329f1c2f5a87dd31e9b2740..b7d96d2cbaccbe4388933ac3ab0e9fe6b4d92d92 100644 --- a/jams-common/src/main/java/net/jami/jams/common/objects/responses/DeviceRegistrationResponse.java +++ b/jams-common/src/main/java/net/jami/jams/common/objects/responses/DeviceRegistrationResponse.java @@ -22,6 +22,8 @@ public class DeviceRegistrationResponse { for(int i=0;i<certificateChain.length;i++){ stringBuilder.append(X509Utils.getPEMStringFromCertificate(certificateChain[i])).append("\n"); } + //remove the last \n because it's useless. + stringBuilder.deleteCharAt(stringBuilder.length()-1); this.certificateChain = stringBuilder.toString(); }