Beta 7 with some repo names changed.

This commit is contained in:
Luis Fernando Molina committed 2020-11-15 13:05:19 +01:00
1 parent 0f7b40cca7
commit 963c19493a
3408 files changed
+462217 -15516

No files matched your search

+124
View File
@@ -0,0 +1,124 @@
var elliptic = require('elliptic')
var BN = require('bn.js')
module.exports = function createECDH (curve) {
return new ECDH(curve)
}
var aliases = {
secp256k1: {
name: 'secp256k1',
byteLength: 32
},
secp224r1: {
name: 'p224',
byteLength: 28
},
prime256v1: {
name: 'p256',
byteLength: 32
},
prime192v1: {
name: 'p192',
byteLength: 24
},
ed25519: {
name: 'ed25519',
byteLength: 32
},
secp384r1: {
name: 'p384',
byteLength: 48
},
secp521r1: {
name: 'p521',
byteLength: 66
}
}
aliases.p224 = aliases.secp224r1
aliases.p256 = aliases.secp256r1 = aliases.prime256v1
aliases.p192 = aliases.secp192r1 = aliases.prime192v1
aliases.p384 = aliases.secp384r1
aliases.p521 = aliases.secp521r1
function ECDH (curve) {
this.curveType = aliases[curve]
if (!this.curveType) {
this.curveType = {
name: curve
}
}
this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap
this.keys = void 0
}
ECDH.prototype.generateKeys = function (enc, format) {
this.keys = this.curve.genKeyPair()
return this.getPublicKey(enc, format)
}
ECDH.prototype.computeSecret = function (other, inenc, enc) {
inenc = inenc || 'utf8'
if (!Buffer.isBuffer(other)) {
other = new Buffer(other, inenc)
}
var otherPub = this.curve.keyFromPublic(other).getPublic()
var out = otherPub.mul(this.keys.getPrivate()).getX()
return formatReturnValue(out, enc, this.curveType.byteLength)
}
ECDH.prototype.getPublicKey = function (enc, format) {
var key = this.keys.getPublic(format === 'compressed', true)
if (format === 'hybrid') {
if (key[key.length - 1] % 2) {
key[0] = 7
} else {
key[0] = 6
}
}
return formatReturnValue(key, enc)
}
ECDH.prototype.getPrivateKey = function (enc) {
return formatReturnValue(this.keys.getPrivate(), enc)
}
ECDH.prototype.setPublicKey = function (pub, enc) {
enc = enc || 'utf8'
if (!Buffer.isBuffer(pub)) {
pub = new Buffer(pub, enc)
}
this.keys._importPublic(pub)
return this
}
ECDH.prototype.setPrivateKey = function (priv, enc) {
enc = enc || 'utf8'
if (!Buffer.isBuffer(priv)) {
priv = new Buffer(priv, enc)
}
var _priv = new BN(priv)
_priv = _priv.toString(16)
this.keys = this.curve.genKeyPair()
this.keys._importPrivate(_priv)
return this
}
function formatReturnValue (bn, enc, len) {
if (!Array.isArray(bn)) {
bn = bn.toArray()
}
var buf = new Buffer(bn)
if (len && buf.length < len) {
var zeros = new Buffer(len - buf.length)
zeros.fill(0)
buf = Buffer.concat([zeros, buf])
}
if (!enc) {
return buf
} else {
return buf.toString(enc)
}
}
+3
View File
@@ -0,0 +1,3 @@
var createECDH = require('crypto').createECDH
module.exports = createECDH || require('./browser')
+39
View File
@@ -0,0 +1,39 @@
{
"name": "create-ecdh",
"version": "4.0.4",
"description": "createECDH but browserifiable",
"main": "index.js",
"browser": "browser.js",
"scripts": {
"test": "standard && node test.js | tspec"
},
"repository": {
"type": "git",
"url": "https://github.com/crypto-browserify/createECDH.git"
},
"keywords": [
"diffie",
"hellman",
"diffiehellman",
"ECDH"
],
"author": "Calvin Metcalf",
"license": "MIT",
"bugs": {
"url": "https://github.com/crypto-browserify/createECDH/issues"
},
"homepage": "https://github.com/crypto-browserify/createECDH",
"dependencies": {
"bn.js": "^4.1.0",
"elliptic": "^6.5.3"
},
"devDependencies": {
"tap-spec": "^1.0.1",
"tape": "^3.0.1",
"standard": "^5.4.1"
}
,"_resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz"
,"_integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A=="
,"_from": "create-ecdh@^4.0.0"
}