createECDH криптомодуля в электронном 4+ не поддерживает secp256k1 - PullRequest
0 голосов
/ 17 июня 2020

В моем проекте используется электрон 3.1.13, и приведенный ниже код работает нормально.

class MessageEncryption {
    private ec = crypto.createECDH('secp256k1');
    private key = this.ec.generateKeys();
    private shared;

    getPublicKey() {
        return this.key;
    }

    setSharedKey(key) {
        this.shared = this.ec.computeSecret(key);
    }
}

Однако, когда я обновляю версию Electron до 4.0.0+, появляется ошибка.

Uncaught Error: Failed to create EC_KEY using curve name

Итак, я запускаю crypto.getCurves(), и результат показан ниже.

Array(4)
  0: "prime256v1"
  1: "secp224r1"
  2: "secp384r1"
  3: "secp521r1"

secp256k1 нет в списке. : (

Я хочу использовать как старшую версию электрона, так и secp256k1, есть ли решение?

Спасибо!

1 Ответ

0 голосов
/ 17 июня 2020

Если в модуле crypto нет того, что вам нужно, просто используйте другой. На NPM много модулей, связанных с шифрованием.

Попробуйте несколько модулей шифрования, чтобы выяснить, есть ли у них secp256k1:

https://www.npmjs.com/search?q=crypt

Или просто введите secp256k1 напрямую:

https://www.npmjs.com/search?q=secp256k1

...