From 91c7b5009d3b4f8826e0d914b5fbff0f26411c4a Mon Sep 17 00:00:00 2001 From: Filip Skokan Date: Fri, 8 Feb 2019 22:35:33 +0100 Subject: [PATCH] refactor: ecdh derive --- lib/jwa/ecdh/derive.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/jwa/ecdh/derive.js b/lib/jwa/ecdh/derive.js index ed3cce31..91ff7a17 100644 --- a/lib/jwa/ecdh/derive.js +++ b/lib/jwa/ecdh/derive.js @@ -1,4 +1,4 @@ -const { createECDH, createHash } = require('crypto') +const { createECDH, createHash, constants: { POINT_CONVERSION_UNCOMPRESSED } } = require('crypto') const base64url = require('../../help/base64url') @@ -13,16 +13,15 @@ const crvToCurve = (crv) => { } } -const UNCOMPRESSED = Buffer.alloc(1, 4) -const toPubBuffer = (x, y) => Buffer.concat([UNCOMPRESSED, base64url.decodeToBuffer(x), base64url.decodeToBuffer(y)]) -const toPrivBuffer = d => base64url.decodeToBuffer(d) +const UNCOMPRESSED = Buffer.alloc(1, POINT_CONVERSION_UNCOMPRESSED) +const pubToBuffer = (x, y) => Buffer.concat([UNCOMPRESSED, base64url.decodeToBuffer(x), base64url.decodeToBuffer(y)]) const computeSecret = ({ crv, d }, { x, y }) => { const curve = crvToCurve(crv) const exchange = createECDH(curve) - exchange.setPrivateKey(toPrivBuffer(d)) - let secret = exchange.computeSecret(toPubBuffer(x, y)) + exchange.setPrivateKey(base64url.decodeToBuffer(d)) + let secret = exchange.computeSecret(pubToBuffer(x, y)) return secret }