Bug 1078847 - GenerateAsymmetricKeyTask should allow generating key pairs where only the public key or the private key has any usages r=rbarnes

This commit is contained in:
Tim Taubert 2014-10-07 00:47:21 +02:00
Родитель 57c905e150
Коммит a164f4b49a
2 изменённых файлов: 27 добавлений и 1 удалений

Просмотреть файл

@ -2048,7 +2048,7 @@ public:
}
// If no usages ended up being allowed, DataError
if (!mKeyPair.mPrivateKey.get()->HasAnyUsage() ||
if (!mKeyPair.mPublicKey.get()->HasAnyUsage() &&
!mKeyPair.mPrivateKey.get()->HasAnyUsage()) {
mEarlyRv = NS_ERROR_DOM_DATA_ERR;
return;

Просмотреть файл

@ -1308,6 +1308,32 @@ TestArray.addTest(
doCheckRSASSA().then(error(that), complete(that));
}
);
// -----------------------------------------------------------------------------
TestArray.addTest(
"Test that we reject generating keys without any usage",
function() {
var that = this;
var alg = {
name: "RSA-OAEP",
hash: "SHA-256",
modulusLength: 2048,
publicExponent: new Uint8Array([0x01, 0x00, 0x01])
};
function generateKey(usages) {
return crypto.subtle.generateKey(alg, false, usages);
}
generateKey(["encrypt", "decrypt"]).then(function () {
return generateKey(["encrypt"]);
}).then(function () {
return generateKey(["decrypt"]);
}).then(function () {
return generateKey(["sign"])
}, error(that)).then(error(that), complete(that));
}
);
/*]]>*/</script>
</head>