Просмотр исходного кода

Fix crypto import in passwords

painor 4 лет назад
Родитель
Сommit
2cbded9c3c
4 измененных файлов с 11754 добавлено и 6 удалено
  1. 3 2
      gramjs/Password.ts
  2. 1 1
      gramjs/crypto/crypto.ts
  3. 11749 2
      package-lock.json
  4. 1 1
      package.json

+ 3 - 2
gramjs/Password.ts

@@ -1,6 +1,8 @@
 import {Api} from "./tl";
 import {bigIntMod, generateRandomBytes, modExp, readBigIntFromBuffer, readBufferFromBigInt, sha256} from "./Helpers";
 import bigInt from 'big-integer';
+import {isBrowser, isNode} from "browser-or-node";
+const crypto = require(isNode ? 'crypto' : './crypto/crypto');
 
 const SIZE_FOR_HASH = 256;
 
@@ -154,8 +156,7 @@ function xor(a: Buffer, b: Buffer) {
 
 function pbkdf2sha512(password: Buffer, salt: Buffer, iterations: number) {
 
-    // @ts-ignore should probably add pollifier
-    return crypto.pbkdf2(password, salt, iterations, 64, 'sha512')
+    return crypto.pbkdf2Sync(password, salt, iterations, 64, 'sha512');
 }
 
 /**

+ 1 - 1
gramjs/crypto/crypto.ts

@@ -114,7 +114,7 @@ export class Hash {
     }
 }
 
-export async function pbkdf2(password:any, salt:any, iterations:any) {
+export async function pbkdf2Sync(password:any, salt:any, iterations:any) {
     const passwordKey = await crypto.subtle.importKey('raw', password,
         {name: 'PBKDF2'}, false, ['deriveBits']);
     return Buffer.from(await crypto.subtle.deriveBits({

Разница между файлами не показана из-за своего большого размера
+ 11749 - 2
package-lock.json


+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "telegram",
-  "version": "1.2.4",
+  "version": "1.2.5",
   "description": "NodeJS MTProto API Telegram client library,",
   "main": "index.js",
   "types": "index.d.ts",

Некоторые файлы не были показаны из-за большого количества измененных файлов