Coverity-CWE 330: Use of Insufficiently Random Values 44/14244/1
authorSANDHYA.JS <sandhya.j@tataelxsi.co.in>
Thu, 7 Mar 2024 17:38:48 +0000 (23:08 +0530)
committerSANDHYA.JS <sandhya.j@tataelxsi.co.in>
Thu, 7 Mar 2024 17:38:48 +0000 (23:08 +0530)
- Resolved Cryptographically weak PRNG issue by not using
  Math.random() in code.

Change-Id: I237d90caba67d4b866e910c895b88ef3b292353f
Signed-off-by: SANDHYA.JS <sandhya.j@tataelxsi.co.in>
src/services/SharedService.ts

index e8eac94..f3b70fa 100644 (file)
@@ -128,9 +128,13 @@ export class SharedService {
     // eslint-disable-next-line @typescript-eslint/no-magic-numbers
     private randomStringLength: number = 4;
 
-    /** Max length of Uint8Array */
+    /** express number for rgb manipulation */
     // eslint-disable-next-line @typescript-eslint/no-magic-numbers
-    private unit8Array: number = 255;
+    private colourHour: number = 10;
+
+    /** express number for rgb manipulation*/
+    // eslint-disable-next-line @typescript-eslint/no-magic-numbers
+    private colourMin: number = 5;
 
     /** Instance of the rest service @private */
     private restService: RestService;
@@ -138,10 +142,6 @@ export class SharedService {
     /** Service holds the router information @private */
     private router: Router;
 
-    /** Random color string generator length @private */
-    // eslint-disable-next-line @typescript-eslint/no-magic-numbers
-    private colorStringLength: number = 256;
-
     /** Check for the root directory @private */
     // eslint-disable-next-line @typescript-eslint/no-magic-numbers
     private directoryCount: number = 2;
@@ -260,10 +260,9 @@ export class SharedService {
 
     /** Generate random string @public */
     public randomString(): string {
-        const chars: string = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
         let result: string = '';
         for (let randomStringRef: number = this.randomStringLength; randomStringRef > 0; --randomStringRef) {
-            result += chars[Math.floor(Math.random() * chars.length)];
+            result += new Date().getSeconds();
         }
         return result;
     }
@@ -425,9 +424,9 @@ export class SharedService {
 
     /** Random RGB color code generator @public */
     public generateColor(): string {
-        const x: number = Math.floor(Math.random() * this.colorStringLength);
-        const y: number = Math.floor(Math.random() * this.colorStringLength);
-        const z: number = Math.floor(Math.random() * this.colorStringLength);
+        const x: number = Math.floor((new Date().getHours()) * this.colourHour);
+        const y: number = Math.floor((new Date().getMinutes()) * this.colourMin);
+        const z: number = Math.floor((new Date().getSeconds()) * this.colourMin);
         return 'rgb(' + x + ',' + y + ',' + z + ')';
     }