browserify / browserify/diffie-hellman
nodejs crypto module DH secret hash is not the same with diffie-hellman/browser
- Vorherrschende Sprache
- JavaScript
- Sterne
- 95
- Forks
- 26
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I do a test about crypto module with diffie-hellman/browser
- When I use the followed , DH secret hex is not the same,
```
var dh1_secret = dh1.computeSecret(dh2.getPublicKey('hex'), 'hex');
var dh2_secret = dh2.computeSecret(dh1.getPublicKey('hex'), 'hex');
console.log(dh1_secret.toString('hex') === dh2_secret.toString('hex')); // false
```
- when I use the followed, DH secret is the same,
```
var dh1_secret = dh1.computeSecret(dh2.getPublicKey());
var dh2_secret = dh2.computeSecret(dh1.getPublicKey()); // true
```
**The followed is the completed code.**
```
var myCrypto = require('./browser');
var crypto = require('./');
p1 = "modp18"
var dh1 = myCrypto.getDiffieHellman(p1);
let dh1_secret_key = dh1.generateKeys();
let dh1_pk = dh1.getPublicKey('hex');
let dh2 = myCrypto.getDiffieHellman(p1);
let dh2_secret_key = dh2.generateKeys();
var dh1_secret = dh1.computeSecret(dh2.getPublicKey('hex'), 'hex');
var dh2_secret = dh2.computeSecret(dh1.getPublicKey('hex'), 'hex');
console.log(dh1_secret.toString('hex') === dh2_secret.toString('hex'));
```
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne mit dem Vergleich der über ./browser verwendeten Browser-Implementierung mit dem über ./ verwendeten regulären Modul und konzentriere dich dabei auf getDiffieHellman, getPublicKey('hex') und computeSecret(..., 'hex'). Reproduziere das modp18-Beispiel und überprüfe, ob beide Seiten identische hexadezimale Geheimnisse erzeugen; das Issue ist abgeschlossen, wenn die Abweichung erklärt ist und eine Regression-Prüfung die demonstrierten Aufrufe abdeckt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, nodejs
- Bereich
- cryptography
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100