Commit 5a3de9a5 authored by Omar Morsi's avatar Omar Morsi Committed by Chromium LUCI CQ

Fix platform keys API tests ignoring failure

Before this CL, platform keys API tests should have been failed as there
was a typo in the JS side. An error message with the unexpected variable
name was printed to the console but the C++ side of the test wasn't
failing.

Note: This CL doesn't fully fix the flakiness mentioned by linked bug,
but is a necessary step for fixing it.

Bug: 1157137
Change-Id: Ib9787997707cd56b46ed1f328a5ad080e82971e3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2607887Reviewed-by: default avatarPavol Marko <pmarko@chromium.org>
Commit-Queue: Omar Morsi <omorsi@google.com>
Cr-Commit-Position: refs/heads/master@{#840174}
parent 0b01c289
...@@ -493,30 +493,35 @@ function verifyRsaKeySign( ...@@ -493,30 +493,35 @@ function verifyRsaKeySign(
function verifyEcKeySign(token, params, keyPair, spki, debugMessage, callback) { function verifyEcKeySign(token, params, keyPair, spki, debugMessage, callback) {
var cachedSignature; var cachedSignature;
token.subtleCrypto.sign(params.sign, keyPair.privateKey, DATA) token.subtleCrypto.sign(params.sign, keyPair.privateKey, DATA)
.then(function(signature) { .then(
assertTrue(!!signature, debugMessage + ': No signature.'); function(signature) {
assertTrue( assertTrue(!!signature, debugMessage + ': No signature.');
signature.length != 0, debugMessage + ': Signature is empty.'); assertTrue(
cachedSignature = signature; signature.length != 0, debugMessage + ': Signature is empty.');
return window.crypto.subtle.importKey( cachedSignature = signature;
'spki', cachedSpki, params.importKey, false, ['verify']); return window.crypto.subtle.importKey(
}), 'spki', spki, params.importKey, false, ['verify']);
function(error) { },
fail(debugMessage + ': Sign failed: ' + error); function(error) {
}.then(function(webCryptoPublicKey) { fail(debugMessage + ': Sign failed: ' + error);
assertTrue(!!webCryptoPublicKey); })
return window.crypto.subtle.verify( .then(
params.verify, webCryptoPublicKey, cachedSignature, DATA); function(webCryptoPublicKey) {
}), assertTrue(!!webCryptoPublicKey);
function(error) { return window.crypto.subtle.verify(
fail(debugMessage + ': Import failed: ' + error); params.verify, webCryptoPublicKey, cachedSignature, DATA);
}.then(function(success) { },
assertEq(true, success, debugMessage + ': Signature invalid.'); function(error) {
callback(keyPair, spki); fail(debugMessage + ': Import failed: ' + error);
}), })
function(error) { .then(
fail(debugMessage + ': Verification failed: ' + error); function(success) {
}; assertEq(true, success, debugMessage + ': Signature invalid.');
callback(keyPair, spki);
},
function(error) {
fail(debugMessage + ': Verification failed: ' + error);
});
} }
// Generates an RSA key with the |algorithm| parameters. Signs random data using // Generates an RSA key with the |algorithm| parameters. Signs random data using
...@@ -589,7 +594,7 @@ function generateEcKeyAndVerify(token, params, callback) { ...@@ -589,7 +594,7 @@ function generateEcKeyAndVerify(token, params, callback) {
var publicKey = cachedKeyPair.publicKey; var publicKey = cachedKeyPair.publicKey;
assertEq([], publicKey.usages); assertEq([], publicKey.usages);
verifyEcKeySign( return verifyEcKeySign(
token, params, cachedKeyPair, publicKeySpki, token, params, cachedKeyPair, publicKeySpki,
/*debugMessage=*/ 'First signing attempt', callback); /*debugMessage=*/ 'First signing attempt', callback);
}, },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment