Socket
Socket
Sign inDemoInstall

webcrypto-core

Package Overview
Dependencies
Maintainers
2
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

webcrypto-core - npm Package Compare versions

Comparing version 0.1.10 to 0.1.11

dist/webcrypto-core.es.js

27

package.json
{
"name": "webcrypto-core",
"version": "0.1.10",
"version": "0.1.11",
"description": "Common layer to be used by crypto libraries based on WebCrypto API for input validation.",
"main": "build/index.js",
"main": "dist/webcrypto-core.js",
"module": "dist/webcrypto-core.es.js",
"types": "index.d.ts",

@@ -11,12 +12,12 @@ "directories": {

"scripts": {
"prepublish": "npm run build:dist",
"build": "npm run build:es5",
"build:es5": "tsc",
"build:es2015": "tsc -p tsconfig.es2015.json",
"build:rollup": "npm run build:es2015 && rollup -c",
"build:map": "tsc --sourcemap",
"build:es5": "rollup -c",
"build:map": "rollup -c -m",
"build:es2015": "rollup -c rollup.config.es.js",
"build:dist": "npm run build:es5 && npm run build:es2015",
"build:source": "tsc --declaration --declarationDir types",
"pretest": "npm run build:map",
"test": "mocha test",
"install": "npm run build",
"pub": "npm version patch && npm publish && git push",
"precoverage": "npm run build:map",
"coverage": "nyc npm test",

@@ -46,11 +47,13 @@ "precoveragehtml": "npm run coverage",

"@types/node": "^6",
"tslib": "^1.5.0",
"typescript": "^2"
"tslib": "^1.5.0"
},
"devDependencies": {
"@types/node": "^6.0.62",
"babel-preset-es2015": "^6.18.0",
"coveralls": "^2",
"live-server": "^1",
"npm-run-all": "^3",
"nyc": "^8",
"mocha": "^3.2.0",
"rollup": "^0.41.4",
"rollup-plugin-typescript": "^0.8.1",
"typescript": "^2.1.5",
"watch": "^0"

@@ -57,0 +60,0 @@ },

@@ -8,2 +8,3 @@ [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://raw.githubusercontent.com/PeculiarVentures/webcrypto-core/master/LICENSE)

# webcrypto-core
We have created a number of WebCrypto polyfills including: [node-webcrypto-ossl](https://github.com/PeculiarVentures/node-webcrypto-ossl), [node-webcrypto-p11](https://github.com/PeculiarVentures/node-webcrypto-p11), and [webcrypto-liner](https://github.com/PeculiarVentures/webcrypto-liner). `webcrypto-core` was designed to be a common layer to be used by all of these libraries for input validation.

@@ -21,3 +22,3 @@

> NOTE: `npm install` command downloads and installs modules to local folder.
> You can install all dependancies globally
> You can install all dependencies globally

@@ -34,7 +35,2 @@ typescript

babel
```
npm install babel-cli --global
```
mocha

@@ -47,3 +43,3 @@ ```

```
npm install typescript rollup babel-cli mocha --global
npm install typescript rollup mocha --global
```

@@ -72,3 +68,3 @@

|-------------------------|------------|
| webcrypto-core.js | 58Kb |
| webcrypto-core.js | 59Kb |
| webcrypto-core.min.js | 25Kb |

@@ -1,2 +0,2 @@

var webcrypto = require("../build/index");
var webcrypto = require("../");
var assert = require("assert");

@@ -28,2 +28,5 @@

});
it(alg + " generate wrong key usage", function (done) {
generate({ name: alg, length: 128 }, ["sign", "verify"], done, true);
});
it(alg + " generate 111, wrong length", function (done) {

@@ -71,83 +74,154 @@ generate({ name: alg, length: 111 }, ["encrypt", "decrypt", "wrapKey", "unwrapKey"], done, true);

it("AES-CBC encrypt", function (done) {
var alg = { name: "AES-CBC", iv: new Uint8Array(16) };
var key = {
algorithm: { name: "AES-CBC" },
type: "secret",
usages: ["encrypt"]
};
encrypt("encrypt", alg, key, done, false);
context("AES-CBC encrypt", () => {
it("ArrayBufferView", function (done) {
var alg = { name: "AES-CBC", iv: new Uint8Array(16) };
var key = {
algorithm: { name: "AES-CBC" },
type: "secret",
usages: ["encrypt"]
};
encrypt("encrypt", alg, key, done, false);
});
it("ArrayBuffer", function (done) {
var alg = { name: "AES-CBC", iv: new ArrayBuffer(16) };
var key = {
algorithm: { name: "AES-CBC" },
type: "secret",
usages: ["encrypt"]
};
encrypt("encrypt", alg, key, done, false);
});
it("Wrong iv", function (done) {
var alg = { name: "AES-CBC", iv: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6] };
var key = {
algorithm: { name: "AES-CBC" },
type: "secret",
usages: ["encrypt"]
};
encrypt("encrypt", alg, key, done, true);
});
})
context("AES-CBC decrypt", () => {
it("ArrayBufferView", function (done) {
var alg = { name: "AES-CBC", iv: new Uint16Array(8) };
var key = {
algorithm: { name: "AES-CBC" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, false);
});
it("ArrayBufferView", function (done) {
var alg = { name: "AES-CBC", iv: new ArrayBuffer(16) };
var key = {
algorithm: { name: "AES-CBC" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, false);
});
it("wrong key", function (done) {
var alg = { name: "AES-CBC", iv: new Uint8Array(16) };
var key = {
algorithm: { name: "AES-GCM" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, true);
});
it("wrong alg param, iv size 15", function (done) {
var alg = { name: "AES-CBC", iv: new Uint8Array(15) };
var key = {
algorithm: { name: "AES-CBC" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, true);
});
it("wrong key usage", function (done) {
var alg = { name: "AES-CBC", iv: new Uint8Array(16) };
var key = {
algorithm: { name: "AES-CBC" },
type: "secret",
usages: ["unwrapKey"]
};
encrypt("decrypt", alg, key, done, true);
});
});
it("AES-CBC decrypt", function (done) {
var alg = { name: "AES-CBC", iv: new Uint8Array(16) };
var key = {
algorithm: { name: "AES-CBC" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, false);
context("AES-CTR encrypt", () => {
it("counter - ArrayBufferView", function (done) {
var alg = { name: "AES-CTR", counter: new Uint8Array(16), length: 1 };
var key = {
algorithm: { name: "AES-CTR" },
type: "secret",
usages: ["encrypt"]
};
encrypt("encrypt", alg, key, done, false);
});
it("counter - ArrayBuffer", function (done) {
var alg = { name: "AES-CTR", counter: new ArrayBuffer(16), length: 1 };
var key = {
algorithm: { name: "AES-CTR" },
type: "secret",
usages: ["encrypt"]
};
encrypt("encrypt", alg, key, done, false);
});
it("counter - wrong type", function (done) {
var alg = { name: "AES-CTR", counter: "1234567890123456", length: 1 };
var key = {
algorithm: { name: "AES-CTR" },
type: "secret",
usages: ["encrypt"]
};
encrypt("encrypt", alg, key, done, true);
});
it("counter - size is not 16", function (done) {
var alg = { name: "AES-CTR", counter: new ArrayBuffer(15), length: 1 };
var key = {
algorithm: { name: "AES-CTR" },
type: "secret",
usages: ["encrypt"]
};
encrypt("encrypt", alg, key, done, true);
});
})
context("AES-CTR decrypt", () => {
it("counter - ArrayBufferView", function (done) {
var alg = { name: "AES-CTR", counter: new Uint8Array(16), length: 1 };
var key = {
algorithm: { name: "AES-CTR" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, false);
});
it("counter - ArrayBuffer", function (done) {
var alg = { name: "AES-CTR", counter: new ArrayBuffer(16), length: 1 };
var key = {
algorithm: { name: "AES-CTR" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, false);
});
it("wrong alg param, counter size 15", function (done) {
var alg = { name: "AES-CTR", counter: new Uint8Array(15), length: 1 };
var key = {
algorithm: { name: "AES-CTR" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, true);
});
it("wrong alg param, length", function (done) {
var alg = { name: "AES-CTR", counter: new Uint8Array(16), length: 256 };
var key = {
algorithm: { name: "AES-CTR" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, true);
});
});
it("AES-CBC decrypt, wrong key", function (done) {
var alg = { name: "AES-CBC", iv: new Uint8Array(16) };
var key = {
algorithm: { name: "AES-GCM" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, true);
});
it("AES-CBC decrypt, wrong alg param, iv size 15", function (done) {
var alg = { name: "AES-CBC", iv: new Uint8Array(15) };
var key = {
algorithm: { name: "AES-CBC" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, true);
});
it("AES-CBC decrypt, wrong key usage", function (done) {
var alg = { name: "AES-CBC", iv: new Uint8Array(16) };
var key = {
algorithm: { name: "AES-CBC" },
type: "secret",
usages: ["unwrapKey"]
};
encrypt("decrypt", alg, key, done, true);
});
it("AES-CTR encrypt", function (done) {
var alg = { name: "AES-CTR", counter: new Uint8Array(16), length: 1 };
var key = {
algorithm: { name: "AES-CTR" },
type: "secret",
usages: ["encrypt"]
};
encrypt("encrypt", alg, key, done, false);
});
it("AES-CTR decrypt", function (done) {
var alg = { name: "AES-CTR", counter: new Uint8Array(16), length: 1 };
var key = {
algorithm: { name: "AES-CTR" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, false);
});
it("AES-CTR decrypt, wrong alg param, counter size 15", function (done) {
var alg = { name: "AES-CTR", counter: new Uint8Array(15), length: 1 };
var key = {
algorithm: { name: "AES-CTR" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, true);
});
it("AES-CTR decrypt, wrong alg param, length", function (done) {
var alg = { name: "AES-CTR", counter: new Uint8Array(16), length: 256 };
var key = {
algorithm: { name: "AES-CTR" },
type: "secret",
usages: ["decrypt"]
};
encrypt("decrypt", alg, key, done, true);
});

@@ -167,3 +241,3 @@ it("AES-CTR wrapKey", function (done) {

};
wrapKey("jwk", alg, key, wkey, done, false);
wrapKey("jwk", alg, wkey, key, done, false);
});

@@ -228,2 +302,5 @@

});
it("valid with additionalData and iv ArrayBuffer", () => {
AesGCM.checkAlgorithmParams({ name: "AES-GCM", additionalData: new ArrayBuffer(4), iv: new ArrayBuffer(12), tagLength: 128 });
});
it("valid without tagLength", () => {

@@ -301,2 +378,14 @@ AesGCM.checkAlgorithmParams({ name: "AES-GCM", additionalData: new Uint8Array(4), iv: new Uint8Array(12) });

context("importKey", () => {
// keyLength
[128, 192, 256].forEach(keyLength => {
// format
["jwk", "raw"].forEach(format => {
it(`length: ${keyLength} ${format}`, done => {
importKey(format, new Uint8Array(3), {name: "AES-KW", length: keyLength}, ["wrapKey"], done, false);
});
})
});
});
context("wrapKey", () => {

@@ -312,4 +401,4 @@

{ name: "AES-KW" },
{ type: "private", algorithm: { name: "RSASSA-PKCS1-v1_5" }, extractable: true, usages: ["sign"] },
{ type: "secret", algorithm: { name: "AES-KW", length: keyLength }, extractable: true, usages: ["wrapKey", "unwrapKey"] },
{ type: "private", algorithm: { name: "RSASSA-PKCS1-v1_5" }, extractable: true, usages: ["sign"] },
done,

@@ -316,0 +405,0 @@ false

@@ -1,2 +0,2 @@

var Base64Url = require("../build/index").Base64Url;
var Base64Url = require("../").Base64Url;
var assert = require("assert");

@@ -3,0 +3,0 @@

@@ -1,2 +0,2 @@

var webcrypto = require("../build/index");
var webcrypto = require("../");
var assert = require("assert");

@@ -3,0 +3,0 @@

@@ -6,2 +6,3 @@ var helper = require("./helper");

var deriveKey = helper.deriveKey;
var deriveBits = helper.deriveBits;
var exportKey = helper.exportKey;

@@ -24,3 +25,3 @@ var importKey = helper.importKey;

["P-256", "P-384", "P-521", "Wrong curve"]
["P-256", "P-384", "P-521", "Wrong curve", void 0, 123]
.forEach(function (namedCurve, index) {

@@ -33,3 +34,3 @@

};
generate(_alg, keyUsages[alg], done, index === 3)
generate(_alg, keyUsages[alg], done, index >= 3)
});

@@ -158,5 +159,46 @@

context("ECDH deriveBits", () => {
it("optional length", (done) => {
var _alg = {
name: "ecdh",
public: {
type: "public",
algorithm: {
name: "ecdh"
}
}
}
var _key = {
algorithm: {
name: "ecdh"
},
type: "private",
usages: ["deriveBits"]
}
deriveBits(_alg, _key, void 0, done, false);
});
it("length", (done) => {
var _alg = {
name: "ecdh",
public: {
type: "public",
algorithm: {
name: "ecdh"
}
}
}
var _key = {
algorithm: {
name: "ecdh"
},
type: "private",
usages: ["deriveBits"]
}
deriveBits(_alg, _key, 128, done, false);
});
});
context("ECDH deriveKey", function () {
["aes-cbc", "aes-ctr", "aes-gcm"]
["aes-cbc", "aes-ctr", "aes-gcm", "aes-kw"]
.forEach(function (aesAlg) {

@@ -185,3 +227,3 @@

}
deriveKey(_alg, _key, derAlg, ["encrypt"], done, false);
deriveKey(_alg, _key, derAlg, ["wrapKey"], done, false);
});

@@ -215,2 +257,20 @@

it("empty param public", function (done) {
var _alg = {
name: "ecdh",
}
var _key = {
algorithm: {
name: "ecdh"
},
type: "private",
usages: ["deriveKey"]
}
var derAlg = {
name: "aes-ctr",
length: 128
}
deriveKey(_alg, _key, derAlg, ["encrypt"], done, true);
});
it("wrong derived key type", function (done) {

@@ -348,3 +408,3 @@ var _alg = {

});
// Test export of private keys

@@ -378,3 +438,3 @@ ["jwk", "pkcs8", "spki", "raw"].forEach(function (format) {

}); // import/export ECDSA
context("import/export ECDH", function () {

@@ -381,0 +441,0 @@

@@ -1,2 +0,2 @@

var subtle = new (require("../build/index").SubtleCrypto);
var subtle = new (require("../").SubtleCrypto);
var assert = require("assert");

@@ -64,3 +64,3 @@

function wrapKey(format, alg, key, wkey, done, error) {
checkPromise(subtle.wrapKey(format, wkey, key, alg), done, error);
checkPromise(subtle.wrapKey(format, key, wkey, alg), done, error);
}

@@ -67,0 +67,0 @@ module.exports.wrapKey = wrapKey;

@@ -1,2 +0,2 @@

var webcrypto = require("../build/index");
var webcrypto = require("../");
var assert = require("assert");

@@ -3,0 +3,0 @@

@@ -1,2 +0,2 @@

var webcrypto = require("../build/index");
var webcrypto = require("../");
var assert = require("assert");

@@ -3,0 +3,0 @@

@@ -6,2 +6,8 @@ var helper = require("./helper");

var verify = helper.verify;
var generate = helper.generate;
var importKey = helper.importKey;
var exportKey = helper.exportKey;
var encrypt = helper.encrypt;
var wrapKey = helper.wrapKey;
var unwrapKey = helper.unwrapKey;

@@ -12,20 +18,20 @@ describe("Subtle", function () {

context("generateKey", function (done) {
function generateKey(alg, keyUsages, done, error) {
var _error = true;
subtle.generateKey(alg, false, keyUsages)
.then(function (res) {
assert.equal(res, null);
_error = false;
})
.catch(function (err) {
assert.equal(!!err, error, err.message);
})
.then(function () {
assert.equal(_error, error, "Must be error");
})
.then(done, done);
}
it("with wrong publicExponent type ArrayBuffer", function (done) {
generate({
name: "rsassa-pkcs1-v1_5",
hash: "SHA-256",
modulusLength: 1024,
publicExponent: new ArrayBuffer(3),
}, ["sign"], done, true);
});
it("without hash param", function (done) {
generate({
name: "rsassa-pkcs1-v1_5",
modulusLength: 1024,
publicExponent: new Uint8Array([3]),
}, ["sign"], done, true);
});
it("RSA generate RSASSA 1024 [3] sign", function (done) {
generateKey({
generate({
name: "rsassa-pkcs1-v1_5",

@@ -38,3 +44,3 @@ modulusLength: 1024,

it("RSA generate RSASSA 2048 [1, 0, 1] verify", function (done) {
generateKey({
generate({
name: "rsassa-pkcs1-v1_5",

@@ -47,3 +53,3 @@ modulusLength: 2048,

it("RSA generate RSASSA 4048 [1, 0, 1] sign,verify(upper case)", function (done) {
generateKey({
generate({
name: "rsassa-pkcs1-v1_5",

@@ -56,3 +62,3 @@ modulusLength: 4096,

it("RSA generate RSASSA empty modulusLength", function (done) {
generateKey({
generate({
name: "rsassa-pkcs1-v1_5",

@@ -64,3 +70,3 @@ publicExponent: new Uint8Array([1, 0, 1]),

it("RSA generate RSASSA wrong modulusLength", function (done) {
generateKey({
generate({
name: "rsassa-pkcs1-v1_5",

@@ -73,3 +79,3 @@ modulusLength: 10,

it("RSA generate RSASSA empty publicExponent", function (done) {
generateKey({
generate({
name: "rsassa-pkcs1-v1_5",

@@ -81,3 +87,3 @@ modulusLength: 1024,

it("RSA generate RSASSA wrong publicExponent", function (done) {
generateKey({
generate({
name: "rsassa-pkcs1-v1_5",

@@ -90,3 +96,3 @@ modulusLength: 1024,

it("RSA generate RSASSA empty hash", function (done) {
generateKey({
generate({
name: "rsassa-pkcs1-v1_5",

@@ -98,3 +104,3 @@ modulusLength: 1024,

it("RSA generate RSASSA wrong keyUsage", function (done) {
generateKey({
generate({
name: "rsassa-pkcs1-v1_5",

@@ -107,3 +113,3 @@ modulusLength: 1024,

it("RSA generate PSS sign,verify", function (done) {
generateKey({
generate({
name: "rsa-pss",

@@ -116,3 +122,3 @@ modulusLength: 1024,

it("RSA generate OAEP decrypt,encrypt,wrapKey,unwrapKey", function (done) {
generateKey({
generate({
name: "rsa-oaep",

@@ -139,2 +145,13 @@ modulusLength: 1024,

});
it("RsaSSA verify", done => {
var key = {
algorithm: {
name: "RSASSA-PKCS1-v1_5",
hash: { name: "sha-1" }
},
usages: ["verify"],
type: "public"
};
verify({ name: "RSASSA-PKCS1-v1_5" }, key, done, false);
});
it("RsaSSA wrong type", function (done) {

@@ -182,3 +199,3 @@ var key = {

};
sign({ name: "RSA-PSS" }, key, done, false);
sign({ name: "RSA-PSS", saltLength: 8 }, key, done, false);
});

@@ -194,4 +211,15 @@ it("RsaPSS verify", function (done) {

};
verify({ name: "RSA-PSS" }, key, done, false);
verify({ name: "RSA-PSS", saltLength: 8 }, key, done, false);
});
it("RsaPSS empty salt length", function (done) {
var key = {
algorithm: {
name: "RSA-PSS",
hash: { name: "sha-1" }
},
usages: ["sign"],
type: "private"
};
sign({ name: "RSA-PSS" }, key, done, true);
});
it("RsaPSS wrong salt length", function (done) {

@@ -206,3 +234,3 @@ var key = {

};
sign({ name: "RSA-PSS" }, key, done, false);
sign({ name: "RSA-PSS", saltLength: 9 }, key, done, true);
});

@@ -213,18 +241,2 @@ })

function encrypt(func, alg, key, done, error) {
var _error = true;
subtle[func](alg, key, new Uint8Array([1, 2, 3]))
.then(function (res) {
assert.equal(res, null);
_error = false;
})
.catch(function (err) {
assert.equal(!!err, error, err.message);
})
.then(function () {
assert.equal(_error, error, "Must be error");
})
.then(done, done);
}
it("OAEP encrypt", function (done) {

@@ -245,2 +257,32 @@ var key = {

});
it("OAEP encrypt label ArrayBuffer", function (done) {
var key = {
algorithm: {
name: "RSA-OAEP",
hash: { name: "sha-1" }
},
usages: ["encrypt"],
type: "public"
};
var alg = {
name: "RSA-OAEP",
label: new ArrayBuffer(6)
}
encrypt("encrypt", alg, key, done, false);
});
it("OAEP encrypt label wrong type", function (done) {
var key = {
algorithm: {
name: "RSA-OAEP",
hash: { name: "sha-1" }
},
usages: ["encrypt"],
type: "public"
};
var alg = {
name: "RSA-OAEP",
label: "label"
}
encrypt("encrypt", alg, key, done, true);
});
it("OAEP decrypt", function (done) {

@@ -308,34 +350,2 @@ var key = {

function wrap(format, key, wKey, alg, done, error) {
var _error = true;
subtle.wrapKey(format, key, wKey, alg)
.then(function (res) {
assert.equal(res, null);
_error = false;
})
.catch(function (err) {
assert.equal(!!err, error, err.message);
})
.then(function () {
assert.equal(_error, error, "Must be error");
})
.then(done, done);
}
function unwrap(format, wKey, wAlg, alg, usages, done, error) {
var _error = true;
subtle.unwrapKey(format, new Uint8Array([1]), wKey, wAlg, alg, true, usages)
.then(function (res) {
assert.equal(res, null);
_error = false;
})
.catch(function (err) {
assert.equal(!!err, error, err.message);
})
.then(function () {
assert.equal(_error, error, "Must be error");
})
.then(done, done);
}
it("OAEP wrap AES raw", function (done) {

@@ -355,3 +365,3 @@ var wkey = {

}
wrap("raw", key, wkey, alg, done, false);
wrapKey("raw", alg, key, wkey, done, false);
});

@@ -372,3 +382,3 @@ it("OAEP wrap AES jwk", function (done) {

}
wrap("jwk", key, wkey, alg, done, false);
wrapKey("jwk", alg, key, wkey, done, false);
});

@@ -389,3 +399,3 @@ it("OAEP wrap AES wrong format pkcs8", function (done) {

}
wrap("pkcs8", key, wkey, alg, done, true);
wrapKey("pkcs8", alg, key, wkey, done, true);
});

@@ -406,3 +416,3 @@ it("OAEP wrap AES wrong wrap key alg", function (done) {

}
wrap("raw", key, wkey, alg, done, true);
wrapKey("raw", alg, key, wkey, done, true);
});

@@ -421,3 +431,3 @@ it("OAEP unwrap AES", function (done) {

}
unwrap("raw", wkey, walg, alg, ["sign"], done, false);
unwrapKey("raw", new ArrayBuffer(3), wkey, walg, alg, true, ["sign"], done, false);
});

@@ -429,39 +439,5 @@

function exportKey(format, key, done, error) {
var _error = true;
subtle.exportKey(format, key)
.then(function (res) {
assert.equal(res, null);
_error = false;
})
.catch(function (err) {
assert.equal(!!err, error, err.message);
})
.then(function () {
assert.equal(_error, error, "Must be error");
})
.then(done, done);
}
function importKey(format, keyData, alg, keyUsages, done, error) {
var _error = true;
subtle.importKey(format, keyData, alg, true, keyUsages)
.then(function (res) {
assert.equal(res, null);
_error = false;
})
.catch(function (err) {
assert.equal(!!err, error, err.message);
})
.then(function () {
assert.equal(_error, error, "Must be error");
})
.then(done, done);
}
["RSASSA-PKCS1-v1_5", "RSA-PSS", "RSA-OAEP"].forEach((alg) => {
var algs = ["RSASSA-PKCS1-v1_5", "RSA-PSS", "RSA-OAEP"];
for (var i in algs) {
var alg = algs[i];
context(alg, function () {
it("export jwk publicKey", function (done) {

@@ -518,4 +494,11 @@ var key = {

})
}
});
it("import RSA without hash param", function (done) {
var alg = {
name: "RSASSA-PKCS1-v1_5",
}
importKey("pkcs8", new Uint8Array([1]), alg, ["sign"], done, true);
});
it("import pkcs8 RSASSA-PKCS1-v1_5", function (done) {

@@ -522,0 +505,0 @@ var alg = {

"use strict";
var webcrypto = require("../build/index");
var webcrypto = require("../");
var assert = require("assert");

@@ -4,0 +4,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc