webcrypto-core
Advanced tools
Comparing version 0.1.9 to 0.1.10
{ | ||
"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 | ||
}); | ||
}); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
159094
3403
6