]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/helpers/peertube-crypto.ts
Better typescript typing for a better world
[github/Chocobozzz/PeerTube.git] / server / helpers / peertube-crypto.ts
index 8e8001cd69bbd3563351ad025e176852a28cac1e..89aef99c48e43a0c3d1195de7b86f6380bc97a77 100644 (file)
@@ -1,5 +1,5 @@
 import * as crypto from 'crypto'
-import * as fs from 'fs'
+import * as Promise from 'bluebird'
 import { join } from 'path'
 
 import {
@@ -30,7 +30,7 @@ function checkSignature (publicKey: string, data: string, hexSignature: string)
     try {
       dataString = JSON.stringify(data)
     } catch (err) {
-      logger.error('Cannot check signature.', { error: err })
+      logger.error('Cannot check signature.', err)
       return false
     }
   }
@@ -51,19 +51,16 @@ function sign (data: string|Object) {
     try {
       dataString = JSON.stringify(data)
     } catch (err) {
-      logger.error('Cannot sign data.', { error: err })
-      return ''
+      logger.error('Cannot sign data.', err)
+      return Promise.resolve('')
     }
   }
 
   sign.update(dataString, 'utf8')
 
-  // TODO: make async
-  const certPath = join(CONFIG.STORAGE.CERT_DIR, PRIVATE_CERT_NAME)
-  const myKey = fs.readFileSync(certPath)
-  const signature = sign.sign(myKey.toString(), SIGNATURE_ENCODING)
-
-  return signature
+  return getMyPrivateCert().then(myKey => {
+    return sign.sign(myKey, SIGNATURE_ENCODING)
+  })
 }
 
 function comparePassword (plainPassword: string, hashPassword: string) {