Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Unified Diff: LayoutTests/crypto/resources/common.js

Issue 39093002: [webcrypto] Add some more layouttests for crypto.subtle.digest() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « LayoutTests/crypto/importKey.html ('k') | LayoutTests/crypto/sign-verify.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/crypto/resources/common.js
diff --git a/LayoutTests/crypto/resources/common.js b/LayoutTests/crypto/resources/common.js
index 17a2effe2be84154ab6ef1598f21486428cb9131..ba4563fafd9cd00d194020d428b6a5f8ff0b2c49 100644
--- a/LayoutTests/crypto/resources/common.js
+++ b/LayoutTests/crypto/resources/common.js
@@ -1,7 +1,7 @@
function importTestKeys()
{
var keyFormat = "raw";
- var data = asciiToArrayBuffer("16 bytes of key!");
+ var data = asciiToUint8Array("16 bytes of key!");
var extractable = true;
var keyUsages = ['encrypt', 'decrypt', 'sign', 'verify'];
@@ -18,11 +18,30 @@ function importTestKeys()
});
}
-// Builds a hex string representation of any array-like input (array or
-// ArrayBufferView). The output looks like this:
-// [ab 03 4c 99]
-function byteArrayToHexString(bytes)
+// Verifies that the given "bytes" holds the same value as "expectedHexString".
+// "bytes" can be anything recognized by "bytesToHexString()".
+function bytesShouldMatchHexString(testDescription, expectedHexString, bytes)
{
+ expectedHexString = "[" + expectedHexString.toLowerCase() + "]";
+ var actualHexString = "[" + bytesToHexString(bytes) + "]";
+
+ if (actualHexString === expectedHexString) {
+ debug("PASS: " + testDescription + " should be " + expectedHexString + " and was");
+ } else {
+ debug("FAIL: " + testDescription + " should be " + expectedHexString + " but was " + actualHexString);
+ }
+}
+
+// Builds a hex string representation for an array-like input.
+// "bytes" can be an Array of bytes, an ArrayBuffer, or any TypedArray.
+// The output looks like this:
+// ab034c99
+function bytesToHexString(bytes)
+{
+ if (!bytes)
+ return null;
+
+ bytes = new Uint8Array(bytes);
var hexBytes = [];
for (var i = 0; i < bytes.length; ++i) {
@@ -32,15 +51,26 @@ function byteArrayToHexString(bytes)
hexBytes.push(byteString);
}
- return "[" + hexBytes.join(" ") + "]";
+ return hexBytes.join("");
}
-function arrayBufferToHexString(buffer)
+function hexStringToUint8Array(hexString)
{
- return byteArrayToHexString(new Uint8Array(buffer));
+ if (hexString.length % 2 != 0)
+ throw "Invalid hexString";
+ var arrayBuffer = new Uint8Array(hexString.length / 2);
+
+ for (var i = 0; i < hexString.length; i += 2) {
+ var byteValue = parseInt(hexString.substr(i, 2), 16);
+ if (byteValue == NaN)
+ throw "Invalid hexString";
+ arrayBuffer[i/2] = byteValue;
+ }
+
+ return arrayBuffer;
}
-function asciiToArrayBuffer(str)
+function asciiToUint8Array(str)
{
var chars = [];
for (var i = 0; i < str.length; ++i)
« no previous file with comments | « LayoutTests/crypto/importKey.html ('k') | LayoutTests/crypto/sign-verify.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698