Unreviewed, add another demo page for a WebCrypto API blog post
[WebKit-https.git] / Websites / webkit.org / demos / webcrypto / common.js
1 function hexStringToUint8Array(hexString)
2 {
3     if (hexString.length % 2 != 0)
4         throw "Invalid hexString";
5     var arrayBuffer = new Uint8Array(hexString.length / 2);
6
7     for (var i = 0; i < hexString.length; i += 2) {
8         var byteValue = parseInt(hexString.substr(i, 2), 16);
9         if (byteValue == NaN)
10             throw "Invalid hexString";
11         arrayBuffer[i/2] = byteValue;
12     }
13
14     return arrayBuffer;
15 }
16 function bytesToHexString(bytes)
17 {
18     if (!bytes)
19         return null;
20
21     bytes = new Uint8Array(bytes);
22     var hexBytes = [];
23
24     for (var i = 0; i < bytes.length; ++i) {
25         var byteString = bytes[i].toString(16);
26         if (byteString.length < 2)
27             byteString = "0" + byteString;
28         hexBytes.push(byteString);
29     }
30
31     return hexBytes.join("");
32 }
33 function asciiToUint8Array(str)
34 {
35     var chars = [];
36     for (var i = 0; i < str.length; ++i)
37         chars.push(str.charCodeAt(i));
38     return new Uint8Array(chars);
39 }
40 function bytesToASCIIString(bytes)
41 {
42     return String.fromCharCode.apply(null, new Uint8Array(bytes));
43 }
44 function failAndLog(error)
45 {
46     console.log(error);
47 }