| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -34,7 +34,7 @@ Last update: | |||
| 34 | 34 | - wasm/jsapi: https://github.com/web-platform-tests/wpt/tree/cde25e7e3c/wasm/jsapi | |
| 35 | 35 | - wasm/webapi: https://github.com/web-platform-tests/wpt/tree/fd1b23eeaa/wasm/webapi | |
| 36 | 36 | - web-locks: https://github.com/web-platform-tests/wpt/tree/10a122a6bc/web-locks | |
| 37 | - - WebCryptoAPI: https://github.com/web-platform-tests/wpt/tree/7cbe7e8ed9/WebCryptoAPI | ||
| 37 | + - WebCryptoAPI: https://github.com/web-platform-tests/wpt/tree/42e47329fd/WebCryptoAPI | ||
| 38 | 38 | - webidl: https://github.com/web-platform-tests/wpt/tree/63ca529a02/webidl | |
| 39 | 39 | - webidl/ecmascript-binding/es-exceptions: https://github.com/web-platform-tests/wpt/tree/2f96fa1996/webidl/ecmascript-binding/es-exceptions | |
| 40 | 40 | - webmessaging/broadcastchannel: https://github.com/web-platform-tests/wpt/tree/6495c91853/webmessaging/broadcastchannel | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -171,26 +171,42 @@ Object.keys(digestedData).forEach(function (alg) { | |||
| 171 | 171 | }); | |
| 172 | 172 | }, alg + ' with ' + length + ' bit output and ' + size + ' source data'); | |
| 173 | 173 | ||
| 174 | - promise_test(function (test) { | ||
| 175 | - var buffer = new Uint8Array(sourceData[size]); | ||
| 176 | - return crypto.subtle | ||
| 177 | - .digest({ name: alg, length: length }, buffer) | ||
| 178 | - .then(function (result) { | ||
| 179 | - // Alter the buffer after calling digest | ||
| 180 | - if (buffer.length > 0) { | ||
| 174 | + if (sourceData[size].length > 0) { | ||
| 175 | + promise_test(function (test) { | ||
| 176 | + var buffer = new Uint8Array(sourceData[size]); | ||
| 177 | + // Alter the buffer before calling digest | ||
| 178 | + buffer[0] = ~buffer[0]; | ||
| 179 | + return crypto.subtle | ||
| 180 | + .digest({ | ||
| 181 | + get name() { | ||
| 182 | + // Alter the buffer back while calling digest | ||
| 183 | + buffer[0] = sourceData[size][0]; | ||
| 184 | + return alg; | ||
| 185 | + }, | ||
| 186 | + length | ||
| 187 | + }, buffer) | ||
| 188 | + .then(function (result) { | ||
| 189 | + assert_true( | ||
| 190 | + equalBuffers(result, digestedData[alg][length][size]), | ||
| 191 | + 'digest matches expected' | ||
| 192 | + ); | ||
| 193 | + }); | ||
| 194 | + }, alg + ' with ' + length + ' bit output and ' + size + ' source data and altered buffer during call'); | ||
| 195 | + | ||
| 196 | + promise_test(function (test) { | ||
| 197 | + var buffer = new Uint8Array(sourceData[size]); | ||
| 198 | + return crypto.subtle | ||
| 199 | + .digest({ name: alg, length: length }, buffer) | ||
| 200 | + .then(function (result) { | ||
| 201 | + // Alter the buffer after calling digest | ||
| 181 | 202 | buffer[0] = ~buffer[0]; | |
| 182 | - } | ||
| 183 | - assert_true( | ||
| 184 | - equalBuffers(result, digestedData[alg][length][size]), | ||
| 185 | - 'digest matches expected' | ||
| 186 | - ); | ||
| 187 | - }); | ||
| 188 | - }, alg + | ||
| 189 | - ' with ' + | ||
| 190 | - length + | ||
| 191 | - ' bit output and ' + | ||
| 192 | - size + | ||
| 193 | - ' source data and altered buffer after call'); | ||
| 203 | + assert_true( | ||
| 204 | + equalBuffers(result, digestedData[alg][length][size]), | ||
| 205 | + 'digest matches expected' | ||
| 206 | + ); | ||
| 207 | + }); | ||
| 208 | + }, alg + ' with ' + length + ' bit output and ' + size + ' source data and altered buffer after call'); | ||
| 209 | + } | ||
| 194 | 210 | }); | |
| 195 | 211 | }); | |
| 196 | 212 | }); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -83,19 +83,37 @@ | |||
| 83 | 83 | return promise; | |
| 84 | 84 | }, mixedCase + " with " + size + " source data"); | |
| 85 | 85 | ||
| 86 | - promise_test(function(test) { | ||
| 87 | - var copiedBuffer = copyBuffer(sourceData[size]); | ||
| 88 | - var promise = subtle.digest({name: upCase}, copiedBuffer) | ||
| 89 | - .then(function(result) { | ||
| 90 | - assert_true(equalBuffers(result, digestedData[alg][size]), "digest() yielded expected result for " + alg + ":" + size); | ||
| 91 | - }, function(err) { | ||
| 92 | - assert_unreached("digest() threw an error for " + alg + ":" + size + " - " + err.message); | ||
| 93 | - }); | ||
| 94 | - | ||
| 95 | - copiedBuffer[0] = 255 - copiedBuffer; | ||
| 96 | - return promise; | ||
| 97 | - }, upCase + " with " + size + " source data and altered buffer after call"); | ||
| 98 | - | ||
| 86 | + if (sourceData[size].length > 0) { | ||
| 87 | + promise_test(function(test) { | ||
| 88 | + var copiedBuffer = copyBuffer(sourceData[size]); | ||
| 89 | + copiedBuffer[0] = 255 - copiedBuffer[0]; | ||
| 90 | + var promise = subtle.digest({ | ||
| 91 | + get name() { | ||
| 92 | + copiedBuffer[0] = sourceData[size][0]; | ||
| 93 | + return upCase; | ||
| 94 | + } | ||
| 95 | + }, copiedBuffer) | ||
| 96 | + .then(function(result) { | ||
| 97 | + assert_true(equalBuffers(result, digestedData[alg][size]), "digest() yielded expected result for " + alg + ":" + size); | ||
| 98 | + }, function(err) { | ||
| 99 | + assert_unreached("digest() threw an error for " + alg + ":" + size + " - " + err.message); | ||
| 100 | + }); | ||
| 101 | + return promise; | ||
| 102 | + }, upCase + " with " + size + " source data and altered buffer during call"); | ||
| 103 | + | ||
| 104 | + promise_test(function(test) { | ||
| 105 | + var copiedBuffer = copyBuffer(sourceData[size]); | ||
| 106 | + var promise = subtle.digest({name: upCase}, copiedBuffer) | ||
| 107 | + .then(function(result) { | ||
| 108 | + assert_true(equalBuffers(result, digestedData[alg][size]), "digest() yielded expected result for " + alg + ":" + size); | ||
| 109 | + }, function(err) { | ||
| 110 | + assert_unreached("digest() threw an error for " + alg + ":" + size + " - " + err.message); | ||
| 111 | + }); | ||
| 112 | + | ||
| 113 | + copiedBuffer[0] = 255 - copiedBuffer[0]; | ||
| 114 | + return promise; | ||
| 115 | + }, upCase + " with " + size + " source data and altered buffer after call"); | ||
| 116 | + } | ||
| 99 | 117 | }); | |
| 100 | 118 | }); | |
| 101 | 119 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -109,19 +109,39 @@ Object.keys(sourceData).forEach(function (size) { | |||
| 109 | 109 | }); | |
| 110 | 110 | }, alg + ' with ' + size + ' source data'); | |
| 111 | 111 | ||
| 112 | - promise_test(function (test) { | ||
| 113 | - var buffer = new Uint8Array(sourceData[size]); | ||
| 114 | - return crypto.subtle.digest(alg, buffer).then(function (result) { | ||
| 115 | - // Alter the buffer after calling digest | ||
| 116 | - if (buffer.length > 0) { | ||
| 112 | + if (sourceData[size].length > 0) { | ||
| 113 | + promise_test(function (test) { | ||
| 114 | + var buffer = new Uint8Array(sourceData[size]); | ||
| 115 | + // Alter the buffer before calling digest | ||
| 116 | + buffer[0] = ~buffer[0]; | ||
| 117 | + return crypto.subtle | ||
| 118 | + .digest({ | ||
| 119 | + get name() { | ||
| 120 | + // Alter the buffer back while calling digest | ||
| 121 | + buffer[0] = sourceData[size][0]; | ||
| 122 | + return alg; | ||
| 123 | + } | ||
| 124 | + }, buffer) | ||
| 125 | + .then(function (result) { | ||
| 126 | + assert_true( | ||
| 127 | + equalBuffers(result, digestedData[alg][size]), | ||
| 128 | + 'digest matches expected' | ||
| 129 | + ); | ||
| 130 | + }); | ||
| 131 | + }, alg + ' with ' + size + ' source data and altered buffer during call'); | ||
| 132 | + | ||
| 133 | + promise_test(function (test) { | ||
| 134 | + var buffer = new Uint8Array(sourceData[size]); | ||
| 135 | + return crypto.subtle.digest(alg, buffer).then(function (result) { | ||
| 136 | + // Alter the buffer after calling digest | ||
| 117 | 137 | buffer[0] = ~buffer[0]; | |
| 118 | - } | ||
| 119 | - assert_true( | ||
| 120 | - equalBuffers(result, digestedData[alg][size]), | ||
| 121 | - 'digest matches expected' | ||
| 122 | - ); | ||
| 123 | - }); | ||
| 124 | - }, alg + ' with ' + size + ' source data and altered buffer after call'); | ||
| 138 | + assert_true( | ||
| 139 | + equalBuffers(result, digestedData[alg][size]), | ||
| 140 | + 'digest matches expected' | ||
| 141 | + ); | ||
| 142 | + }); | ||
| 143 | + }, alg + ' with ' + size + ' source data and altered buffer after call'); | ||
| 144 | + } | ||
| 125 | 145 | }); | |
| 126 | 146 | }); | |
| 127 | 147 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -35,6 +35,38 @@ function run_test() { | |||
| 35 | 35 | all_promises.push(promise); | |
| 36 | 36 | }); | |
| 37 | 37 | ||
| 38 | + // Check for successful encryption even if the buffer is changed while calling encrypt. | ||
| 39 | + passingVectors.forEach(function(vector) { | ||
| 40 | + var plaintext = copyBuffer(vector.plaintext); | ||
| 41 | + plaintext[0] = 255 - plaintext[0]; | ||
| 42 | + var promise = importVectorKey(vector, ["encrypt", "decrypt"]) | ||
| 43 | + .then(function(vector) { | ||
| 44 | + promise_test(function(test) { | ||
| 45 | + var operation = subtle.encrypt({ | ||
| 46 | + ...vector.algorithm, | ||
| 47 | + get name() { | ||
| 48 | + plaintext[0] = vector.plaintext[0]; | ||
| 49 | + return vector.algorithm.name; | ||
| 50 | + } | ||
| 51 | + }, vector.key, plaintext) | ||
| 52 | + .then(function(result) { | ||
| 53 | + assert_true(equalBuffers(result, vector.result), "Should return expected result"); | ||
| 54 | + }, function(err) { | ||
| 55 | + assert_unreached("encrypt error for test " + vector.name + ": " + err.message); | ||
| 56 | + }); | ||
| 57 | + return operation; | ||
| 58 | + }, vector.name + " with altered plaintext during call"); | ||
| 59 | + }, function(err) { | ||
| 60 | + // We need a failed test if the importVectorKey operation fails, so | ||
| 61 | + // we know we never tested encryption | ||
| 62 | + promise_test(function(test) { | ||
| 63 | + assert_unreached("importKey failed for " + vector.name); | ||
| 64 | + }, "importKey step: " + vector.name + " with altered plaintext during call"); | ||
| 65 | + }); | ||
| 66 | + | ||
| 67 | + all_promises.push(promise); | ||
| 68 | + }); | ||
| 69 | + | ||
| 38 | 70 | // Check for successful encryption even if the buffer is changed after calling encrypt. | |
| 39 | 71 | passingVectors.forEach(function(vector) { | |
| 40 | 72 | var plaintext = copyBuffer(vector.plaintext); | |
@@ -49,13 +81,13 @@ function run_test() { | |||
| 49 | 81 | }); | |
| 50 | 82 | plaintext[0] = 255 - plaintext[0]; | |
| 51 | 83 | return operation; | |
| 52 | - }, vector.name + " with altered plaintext"); | ||
| 84 | + }, vector.name + " with altered plaintext after call"); | ||
| 53 | 85 | }, function(err) { | |
| 54 | 86 | // We need a failed test if the importVectorKey operation fails, so | |
| 55 | 87 | // we know we never tested encryption | |
| 56 | 88 | promise_test(function(test) { | |
| 57 | 89 | assert_unreached("importKey failed for " + vector.name); | |
| 58 | - }, "importKey step: " + vector.name + " with altered plaintext"); | ||
| 90 | + }, "importKey step: " + vector.name + " with altered plaintext after call"); | ||
| 59 | 91 | }); | |
| 60 | 92 | ||
| 61 | 93 | all_promises.push(promise); | |
@@ -84,7 +116,39 @@ function run_test() { | |||
| 84 | 116 | all_promises.push(promise); | |
| 85 | 117 | }); | |
| 86 | 118 | ||
| 87 | - // Check for successful decryption even if ciphertext is altered. | ||
| 119 | + // Check for successful decryption even if ciphertext is altered while calling encrypt. | ||
| 120 | + passingVectors.forEach(function(vector) { | ||
| 121 | + var ciphertext = copyBuffer(vector.result); | ||
| 122 | + ciphertext[0] = 255 - ciphertext[0]; | ||
| 123 | + var promise = importVectorKey(vector, ["encrypt", "decrypt"]) | ||
| 124 | + .then(function(vector) { | ||
| 125 | + promise_test(function(test) { | ||
| 126 | + var operation = subtle.decrypt({ | ||
| 127 | + ...vector.algorithm, | ||
| 128 | + get name() { | ||
| 129 | + ciphertext[0] = vector.result[0]; | ||
| 130 | + return vector.algorithm.name; | ||
| 131 | + } | ||
| 132 | + }, vector.key, ciphertext) | ||
| 133 | + .then(function(result) { | ||
| 134 | + assert_true(equalBuffers(result, vector.plaintext), "Should return expected result"); | ||
| 135 | + }, function(err) { | ||
| 136 | + assert_unreached("decrypt error for test " + vector.name + ": " + err.message); | ||
| 137 | + }); | ||
| 138 | + return operation; | ||
| 139 | + }, vector.name + " decryption with altered ciphertext during call"); | ||
| 140 | + }, function(err) { | ||
| 141 | + // We need a failed test if the importVectorKey operation fails, so | ||
| 142 | + // we know we never tested encryption | ||
| 143 | + promise_test(function(test) { | ||
| 144 | + assert_unreached("importKey failed for " + vector.name); | ||
| 145 | + }, "importKey step for decryption: " + vector.name + " with altered ciphertext during call"); | ||
| 146 | + }); | ||
| 147 | + | ||
| 148 | + all_promises.push(promise); | ||
| 149 | + }); | ||
| 150 | + | ||
| 151 | + // Check for successful decryption even if ciphertext is altered after calling encrypt. | ||
| 88 | 152 | passingVectors.forEach(function(vector) { | |
| 89 | 153 | var ciphertext = copyBuffer(vector.result); | |
| 90 | 154 | var promise = importVectorKey(vector, ["encrypt", "decrypt"]) | |
@@ -98,13 +162,13 @@ function run_test() { | |||
| 98 | 162 | }); | |
| 99 | 163 | ciphertext[0] = 255 - ciphertext[0]; | |
| 100 | 164 | return operation; | |
| 101 | - }, vector.name + " decryption with altered ciphertext"); | ||
| 165 | + }, vector.name + " decryption with altered ciphertext after call"); | ||
| 102 | 166 | }, function(err) { | |
| 103 | 167 | // We need a failed test if the importVectorKey operation fails, so | |
| 104 | 168 | // we know we never tested encryption | |
| 105 | 169 | promise_test(function(test) { | |
| 106 | 170 | assert_unreached("importKey failed for " + vector.name); | |
| 107 | - }, "importKey step for decryption: " + vector.name + " with altered ciphertext"); | ||
| 171 | + }, "importKey step for decryption: " + vector.name + " with altered ciphertext after call"); | ||
| 108 | 172 | }); | |
| 109 | 173 | ||
| 110 | 174 | all_promises.push(promise); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments