From 035874efe04370c17cacfc03ba305de65c2f146b Mon Sep 17 00:00:00 2001
From: Felix Sidokhine <felix.sidokhine@randstad.ca>
Date: Wed, 13 May 2020 15:19:36 +0300
Subject: [PATCH] fixed minor NPE bug

---
 .../src/main/java/net/jami/datastore/dao/DeviceDao.java  | 2 +-
 .../jami/jams/ca/workers/csr/builders/UserBuilder.java   | 9 +++++----
 .../net/jami/jams/common/objects/devices/Device.java     | 3 ++-
 .../objects/responses/DeviceRegistrationResponse.java    | 2 ++
 4 files changed, 10 insertions(+), 6 deletions(-)

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 cc069316..9f7db3e5 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 117523f2..2ec6e9c8 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 669de80b..036a7983 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 23c29363..b7d96d2c 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();
     }
 
-- 
GitLab