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.9 to 0.1.10

3

package.json
{
"name": "webcrypto-core",
"version": "0.1.9",
"version": "0.1.10",
"description": "Common layer to be used by crypto libraries based on WebCrypto API for input validation.",

@@ -49,2 +49,3 @@ "main": "build/index.js",

"devDependencies": {
"@types/node": "^6.0.62",
"babel-preset-es2015": "^6.18.0",

@@ -51,0 +52,0 @@ "live-server": "^1",

@@ -72,3 +72,3 @@ import { WebCryptoError, AlgorithmError, CryptoKeyError } from "./error";

case "raw":
if (type && type.toLowerCase() !== "secret")
if (type && type.toLowerCase() !== "secret" && type && type.toLowerCase() !== "public")
throw new CryptoKeyError(CryptoKeyError.WRONG_FORMAT, type, "raw");

@@ -75,0 +75,0 @@ break;

@@ -60,4 +60,5 @@ import { AesCBC, AesCTR, AesGCM, AesKW } from "../aes/crypto";

this.checkKey(key, this.ALG_NAME);
if (!(format && format.toLowerCase() === "raw" && key.type === "public"))
this.checkFormat(format, key.type);
if (!(format && format.toLowerCase() === "raw" && key.type === "public")) {
this.checkFormat(format, key.type);
}
resolve(undefined);

@@ -64,0 +65,0 @@ });

@@ -121,8 +121,14 @@ var webcrypto = require("../build/index");

["public", "private"].forEach(type =>
["private"].forEach(type =>
it(`raw for ${type}`, () => {
assert.throws(() => checkFormat("rAw", type), Error);
assert.throws(() => checkFormat("raw", type), Error);
})
);
["private"].forEach(type =>
it(`jwk for ${type}`, () => {
assert.throws(() => checkFormat("raw", type), Error);
})
);
["secret", "private"].forEach(type =>

@@ -129,0 +135,0 @@ it(`spki for ${type}`, () => {

@@ -284,4 +284,12 @@ var helper = require("./helper");

context("import/export", function () {
context("import/export ECDSA", function () {
it("import raw", function (done) {
var alg = {
name: "ecdsa",
namedCurve: "p-256"
}
importKey("raw", {}, alg, ["sign"], done, false);
});
it("import jwk", function (done) {

@@ -322,2 +330,3 @@ var alg = {

// Test export of public keys
["jwk", "spki", "raw", "pkcs8"].forEach(function (format) {

@@ -332,6 +341,7 @@ it(format, function (done) {

};
exportKey(format, key, done, format === "pkcs8");
exportKey(format, key, done, format === "pkcs8"); // pkcs8 only for private!
});
});
// Test export of private keys
["jwk", "pkcs8", "spki", "raw"].forEach(function (format) {

@@ -346,3 +356,3 @@ it(format, function (done) {

};
exportKey(format, key, done, format === "spki" || format === "raw");
exportKey(format, key, done, format === "spki" || format === "raw"); // spki & raw only for public
});

@@ -364,6 +374,85 @@ });

}); // import/export
}); // import/export ECDSA
context("import/export ECDH", function () {
it("import raw", function (done) {
var alg = {
name: "ecdh",
namedCurve: "p-256"
}
importKey("raw", {}, alg, ["deriveKey", "deriveBits"], done, false);
});
it("import jwk", function (done) {
var alg = {
name: "ecdh",
namedCurve: "p-256"
}
importKey("jwk", {}, alg, ["deriveKey", "deriveBits"], done, false);
});
it("import spki", function (done) {
var alg = {
name: "ecdh",
namedCurve: "p-256"
}
importKey("spki", new Uint8Array(5), alg, ["deriveKey", "deriveBits"], done, false);
});
it("import wrong alg namedCurver", function (done) {
var alg = {
name: "ecdh",
namedCurve: "wrong"
}
importKey("jwk", {}, alg, ["deriveKey", "deriveBits"], done, true);
});
it("import", function (done) {
var alg = {
name: "ecdh",
namedCurve: "p-256"
}
importKey("jwk", {}, alg, ["deriveKey", "deriveBits"], done, false);
});
// export
it("export raw", function (done) {
var key = {
algorithm: {
name: "ecdh"
},
type: "public",
extractable: true
};
exportKey("raw", key, done, false);
});
it("export", function (done) {
var key = {
algorithm: {
name: "ecdh"
},
type: "public",
extractable: true
};
exportKey("jwk", key, done, false);
});
it("export not extractable", function (done) {
var key = {
algorithm: {
name: "ecdh"
},
type: "public",
extractable: false
};
exportKey("jwk", key, done, true);
});
}); // import/export ECDSA
});
});
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