dom/wappush/tests/test_cp_pdu_helper.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 /* Any copyright is dedicated to the Public Domain.
michael@0 2 http://creativecommons.org/publicdomain/zero/1.0/ */
michael@0 3
michael@0 4 let CP = {};
michael@0 5 subscriptLoader.loadSubScript("resource://gre/modules/CpPduHelper.jsm", CP);
michael@0 6 CP.debug = do_print;
michael@0 7
michael@0 8 function run_test() {
michael@0 9 run_next_test();
michael@0 10 }
michael@0 11
michael@0 12 function test_parser(rawDataArray, contentType, expectResult) {
michael@0 13 let data = { array: rawDataArray, offset: 0 };
michael@0 14 let msg = CP.PduHelper.parse(data, contentType);
michael@0 15 do_check_eq(msg.contentType, expectResult.contentType);
michael@0 16 do_check_eq(msg.content, expectResult.content);
michael@0 17 do_check_eq(msg.content.length, expectResult.content.length);
michael@0 18 }
michael@0 19
michael@0 20 function test_hmac(rawDataArray, mac, key, expectResult) {
michael@0 21 let authInfo = CP.Authenticator.check(rawDataArray, 0, mac, function getNetworkPin() {
michael@0 22 return key;
michael@0 23 });
michael@0 24 do_check_eq(authInfo.data, rawDataArray);
michael@0 25 do_check_eq(authInfo.data.length, rawDataArray.length);
michael@0 26 do_check_eq(authInfo.checked, expectResult.checked);
michael@0 27 do_check_eq(authInfo.pass, expectResult.pass);
michael@0 28 }
michael@0 29
michael@0 30 /*
michael@0 31 * Test data from OMA-TS-WAP_ProvCont-V1_1-2009 0421-C.pdf, clause 6.1
michael@0 32 */
michael@0 33 let text_data_array = new Uint8Array([
michael@0 34 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65,
michael@0 35 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 0x31,
michael@0 36 0x2E, 0x30, 0x22, 0x3F, 0x3E, 0x3C, 0x21, 0x44,
michael@0 37 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x77,
michael@0 38 0x61, 0x70, 0x2D, 0x70, 0x72, 0x6F, 0x76, 0x69,
michael@0 39 0x73, 0x69, 0x6F, 0x6E, 0x69, 0x6E, 0x67, 0x64,
michael@0 40 0x6F, 0x63, 0x20, 0x50, 0x55, 0x42, 0x4C, 0x49,
michael@0 41 0x43, 0x20, 0x22, 0x2D, 0x2F, 0x2F, 0x57, 0x41,
michael@0 42 0x50, 0x46, 0x4F, 0x52, 0x55, 0x4D, 0x2F, 0x2F,
michael@0 43 0x44, 0x54, 0x44, 0x20, 0x50, 0x52, 0x4F, 0x56,
michael@0 44 0x20, 0x31, 0x2E, 0x30, 0x2F, 0x2F, 0x45, 0x4E,
michael@0 45 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A,
michael@0 46 0x2F, 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x77, 0x61,
michael@0 47 0x70, 0x66, 0x6F, 0x72, 0x75, 0x6D, 0x2E, 0x6F,
michael@0 48 0x72, 0x67, 0x2F, 0x44, 0x54, 0x44, 0x2F, 0x70,
michael@0 49 0x72, 0x6F, 0x76, 0x2E, 0x64, 0x74, 0x64, 0x22,
michael@0 50 0x3E, 0x3C, 0x77, 0x61, 0x70, 0x2D, 0x70, 0x72,
michael@0 51 0x6F, 0x76, 0x69, 0x73, 0x69, 0x6F, 0x6E, 0x69,
michael@0 52 0x6E, 0x67, 0x64, 0x6F, 0x63, 0x20, 0x76, 0x65,
michael@0 53 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 0x31,
michael@0 54 0x2E, 0x30, 0x22, 0x3E, 0x3C, 0x63, 0x68, 0x61,
michael@0 55 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x69, 0x73,
michael@0 56 0x74, 0x69, 0x63, 0x20, 0x74, 0x79, 0x70, 0x65,
michael@0 57 0x3D, 0x22, 0x50, 0x58, 0x4C, 0x4F, 0x47, 0x49,
michael@0 58 0x43, 0x41, 0x4C, 0x22, 0x3E, 0x3C, 0x70, 0x61,
michael@0 59 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D,
michael@0 60 0x22, 0x50, 0x52, 0x4F, 0x58, 0x59, 0x2D, 0x49,
michael@0 61 0x44, 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65,
michael@0 62 0x3D, 0x22, 0x31, 0x37, 0x30, 0x2E, 0x31, 0x38,
michael@0 63 0x37, 0x2E, 0x35, 0x31, 0x2E, 0x34, 0x22, 0x2F,
michael@0 64 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E,
michael@0 65 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x50, 0x52, 0x4F,
michael@0 66 0x58, 0x59, 0x2D, 0x50, 0x57, 0x22, 0x20, 0x76,
michael@0 67 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x70, 0x72,
michael@0 68 0x6F, 0x78, 0x79, 0x70, 0x61, 0x73, 0x73, 0x77,
michael@0 69 0x64, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72,
michael@0 70 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22,
michael@0 71 0x50, 0x50, 0x47, 0x41, 0x55, 0x54, 0x48, 0x2D,
michael@0 72 0x54, 0x59, 0x50, 0x45, 0x22, 0x20, 0x76, 0x61,
michael@0 73 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x48, 0x54, 0x54,
michael@0 74 0x50, 0x2D, 0x42, 0x41, 0x53, 0x49, 0x43, 0x22,
michael@0 75 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20,
michael@0 76 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x4E, 0x41,
michael@0 77 0x4D, 0x45, 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75,
michael@0 78 0x65, 0x3D, 0x22, 0x42, 0x61, 0x6E, 0x6B, 0x4D,
michael@0 79 0x61, 0x69, 0x6E, 0x50, 0x72, 0x6F, 0x78, 0x79,
michael@0 80 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D,
michael@0 81 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x53,
michael@0 82 0x54, 0x41, 0x52, 0x54, 0x50, 0x41, 0x47, 0x45,
michael@0 83 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D,
michael@0 84 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F,
michael@0 85 0x77, 0x77, 0x77, 0x2E, 0x62, 0x61, 0x6E, 0x6B,
michael@0 86 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x73, 0x74, 0x61,
michael@0 87 0x72, 0x74, 0x70, 0x61, 0x67, 0x65, 0x2E, 0x77,
michael@0 88 0x6D, 0x6C, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61,
michael@0 89 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D,
michael@0 90 0x22, 0x50, 0x55, 0x4C, 0x4C, 0x45, 0x4E, 0x41,
michael@0 91 0x42, 0x4C, 0x45, 0x44, 0x22, 0x20, 0x76, 0x61,
michael@0 92 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x31, 0x22, 0x2F,
michael@0 93 0x3E, 0x3C, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63,
michael@0 94 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63,
michael@0 95 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x50,
michael@0 96 0x58, 0x41, 0x55, 0x54, 0x48, 0x49, 0x4E, 0x46,
michael@0 97 0x4F, 0x22, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D,
michael@0 98 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x50,
michael@0 99 0x58, 0x41, 0x55, 0x54, 0x48, 0x2D, 0x54, 0x59,
michael@0 100 0x50, 0x45, 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75,
michael@0 101 0x65, 0x3D, 0x22, 0x48, 0x54, 0x54, 0x50, 0x2D,
michael@0 102 0x42, 0x41, 0x53, 0x49, 0x43, 0x22, 0x2F, 0x3E,
michael@0 103 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61,
michael@0 104 0x6D, 0x65, 0x3D, 0x22, 0x50, 0x58, 0x41, 0x55,
michael@0 105 0x54, 0x48, 0x2D, 0x49, 0x44, 0x22, 0x20, 0x76,
michael@0 106 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x70, 0x78,
michael@0 107 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65,
michael@0 108 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D,
michael@0 109 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x50,
michael@0 110 0x58, 0x41, 0x55, 0x54, 0x48, 0x2D, 0x50, 0x57,
michael@0 111 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D,
michael@0 112 0x22, 0x70, 0x78, 0x75, 0x73, 0x65, 0x72, 0x70,
michael@0 113 0x61, 0x73, 0x73, 0x77, 0x64, 0x22, 0x2F, 0x3E,
michael@0 114 0x3C, 0x2F, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63,
michael@0 115 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63,
michael@0 116 0x3E, 0x3C, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63,
michael@0 117 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63,
michael@0 118 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x50,
michael@0 119 0x58, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x41,
michael@0 120 0x4C, 0x22, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D,
michael@0 121 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x50,
michael@0 122 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, 0x4C, 0x2D,
michael@0 123 0x50, 0x52, 0x4F, 0x58, 0x59, 0x2D, 0x49, 0x44,
michael@0 124 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D,
michael@0 125 0x22, 0x50, 0x52, 0x4F, 0x58, 0x59, 0x20, 0x31,
michael@0 126 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D,
michael@0 127 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x44,
michael@0 128 0x4F, 0x4D, 0x41, 0x49, 0x4E, 0x22, 0x20, 0x76,
michael@0 129 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x77, 0x77,
michael@0 130 0x77, 0x2E, 0x62, 0x61, 0x6E, 0x6B, 0x2E, 0x63,
michael@0 131 0x6F, 0x6D, 0x2F, 0x22, 0x2F, 0x3E, 0x3C, 0x70,
michael@0 132 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65,
michael@0 133 0x3D, 0x22, 0x50, 0x58, 0x41, 0x44, 0x44, 0x52,
michael@0 134 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D,
michael@0 135 0x22, 0x31, 0x37, 0x30, 0x2E, 0x31, 0x38, 0x37,
michael@0 136 0x2E, 0x35, 0x31, 0x2E, 0x33, 0x22, 0x2F, 0x3E,
michael@0 137 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61,
michael@0 138 0x6D, 0x65, 0x3D, 0x22, 0x50, 0x58, 0x41, 0x44,
michael@0 139 0x44, 0x52, 0x54, 0x59, 0x50, 0x45, 0x22, 0x20,
michael@0 140 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x49,
michael@0 141 0x50, 0x56, 0x34, 0x22, 0x2F, 0x3E, 0x3C, 0x70,
michael@0 142 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65,
michael@0 143 0x3D, 0x22, 0x50, 0x58, 0x41, 0x44, 0x44, 0x52,
michael@0 144 0x2D, 0x46, 0x51, 0x44, 0x4E, 0x22, 0x20, 0x76,
michael@0 145 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x70, 0x72,
michael@0 146 0x6F, 0x78, 0x79, 0x31, 0x2E, 0x6F, 0x70, 0x65,
michael@0 147 0x72, 0x61, 0x74, 0x6F, 0x72, 0x2E, 0x63, 0x6F,
michael@0 148 0x6D, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72,
michael@0 149 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22,
michael@0 150 0x54, 0x4F, 0x2D, 0x4E, 0x41, 0x50, 0x49, 0x44,
michael@0 151 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D,
michael@0 152 0x22, 0x49, 0x4E, 0x54, 0x45, 0x52, 0x4E, 0x45,
michael@0 153 0x54, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72,
michael@0 154 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22,
michael@0 155 0x54, 0x4F, 0x2D, 0x4E, 0x41, 0x50, 0x49, 0x44,
michael@0 156 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D,
michael@0 157 0x22, 0x4E, 0x41, 0x50, 0x31, 0x22, 0x2F, 0x3E,
michael@0 158 0x3C, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74,
michael@0 159 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x20,
michael@0 160 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x50, 0x4F,
michael@0 161 0x52, 0x54, 0x22, 0x3E, 0x3C, 0x70, 0x61, 0x72,
michael@0 162 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22,
michael@0 163 0x50, 0x4F, 0x52, 0x54, 0x4E, 0x42, 0x52, 0x22,
michael@0 164 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22,
michael@0 165 0x39, 0x32, 0x30, 0x33, 0x22, 0x2F, 0x3E, 0x3C,
michael@0 166 0x2F, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74,
michael@0 167 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x3E,
michael@0 168 0x3C, 0x2F, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63,
michael@0 169 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63,
michael@0 170 0x3E, 0x3C, 0x2F, 0x63, 0x68, 0x61, 0x72, 0x61,
michael@0 171 0x63, 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69,
michael@0 172 0x63, 0x3E, 0x3C, 0x63, 0x68, 0x61, 0x72, 0x61,
michael@0 173 0x63, 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69,
michael@0 174 0x63, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22,
michael@0 175 0x4E, 0x41, 0x50, 0x44, 0x45, 0x46, 0x22, 0x3E,
michael@0 176 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61,
michael@0 177 0x6D, 0x65, 0x3D, 0x22, 0x4E, 0x41, 0x50, 0x49,
michael@0 178 0x44, 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65,
michael@0 179 0x3D, 0x22, 0x4E, 0x41, 0x50, 0x31, 0x22, 0x2F,
michael@0 180 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E,
michael@0 181 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x42, 0x45, 0x41,
michael@0 182 0x52, 0x45, 0x52, 0x22, 0x20, 0x76, 0x61, 0x6C,
michael@0 183 0x75, 0x65, 0x3D, 0x22, 0x47, 0x53, 0x4D, 0x2D,
michael@0 184 0x43, 0x53, 0x44, 0x22, 0x2F, 0x3E, 0x3C, 0x70,
michael@0 185 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65,
michael@0 186 0x3D, 0x22, 0x4E, 0x41, 0x4D, 0x45, 0x22, 0x20,
michael@0 187 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x4D,
michael@0 188 0x59, 0x20, 0x49, 0x53, 0x50, 0x20, 0x43, 0x53,
michael@0 189 0x44, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72,
michael@0 190 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22,
michael@0 191 0x4E, 0x41, 0x50, 0x2D, 0x41, 0x44, 0x44, 0x52,
michael@0 192 0x45, 0x53, 0x53, 0x22, 0x20, 0x76, 0x61, 0x6C,
michael@0 193 0x75, 0x65, 0x3D, 0x22, 0x2B, 0x33, 0x35, 0x38,
michael@0 194 0x30, 0x38, 0x31, 0x32, 0x34, 0x30, 0x30, 0x32,
michael@0 195 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D,
michael@0 196 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x4E,
michael@0 197 0x41, 0x50, 0x2D, 0x41, 0x44, 0x44, 0x52, 0x54,
michael@0 198 0x59, 0x50, 0x45, 0x22, 0x20, 0x76, 0x61, 0x6C,
michael@0 199 0x75, 0x65, 0x3D, 0x22, 0x45, 0x31, 0x36, 0x34,
michael@0 200 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D,
michael@0 201 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x44,
michael@0 202 0x4E, 0x53, 0x2D, 0x41, 0x44, 0x44, 0x52, 0x22,
michael@0 203 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22,
michael@0 204 0x31, 0x37, 0x30, 0x2E, 0x31, 0x38, 0x37, 0x2E,
michael@0 205 0x35, 0x31, 0x2E, 0x32, 0x22, 0x2F, 0x3E, 0x3C,
michael@0 206 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D,
michael@0 207 0x65, 0x3D, 0x22, 0x43, 0x41, 0x4C, 0x4C, 0x54,
michael@0 208 0x59, 0x50, 0x45, 0x22, 0x20, 0x76, 0x61, 0x6C,
michael@0 209 0x75, 0x65, 0x3D, 0x22, 0x41, 0x4E, 0x41, 0x4C,
michael@0 210 0x4F, 0x47, 0x2D, 0x4D, 0x4F, 0x44, 0x45, 0x4D,
michael@0 211 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D,
michael@0 212 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x4D,
michael@0 213 0x41, 0x58, 0x2D, 0x4E, 0x55, 0x4D, 0x2D, 0x52,
michael@0 214 0x45, 0x54, 0x52, 0x59, 0x22, 0x20, 0x76, 0x61,
michael@0 215 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x33, 0x22, 0x2F,
michael@0 216 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E,
michael@0 217 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x46, 0x49, 0x52,
michael@0 218 0x53, 0x54, 0x2D, 0x52, 0x45, 0x54, 0x52, 0x59,
michael@0 219 0x2D, 0x54, 0x49, 0x4D, 0x45, 0x4F, 0x55, 0x54,
michael@0 220 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D,
michael@0 221 0x22, 0x36, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61,
michael@0 222 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D,
michael@0 223 0x22, 0x52, 0x45, 0x52, 0x45, 0x47, 0x2D, 0x54,
michael@0 224 0x48, 0x52, 0x45, 0x53, 0x48, 0x4F, 0x4C, 0x44,
michael@0 225 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D,
michael@0 226 0x22, 0x33, 0x30, 0x22, 0x2F, 0x3E, 0x3C, 0x70,
michael@0 227 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65,
michael@0 228 0x3D, 0x22, 0x54, 0x2D, 0x42, 0x49, 0x54, 0x22,
michael@0 229 0x2F, 0x3E, 0x3C, 0x63, 0x68, 0x61, 0x72, 0x61,
michael@0 230 0x63, 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69,
michael@0 231 0x63, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22,
michael@0 232 0x4E, 0x41, 0x50, 0x41, 0x55, 0x54, 0x48, 0x49,
michael@0 233 0x4E, 0x46, 0x4F, 0x22, 0x3E, 0x3C, 0x70, 0x61,
michael@0 234 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D,
michael@0 235 0x22, 0x41, 0x55, 0x54, 0x48, 0x54, 0x59, 0x50,
michael@0 236 0x45, 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65,
michael@0 237 0x3D, 0x22, 0x50, 0x41, 0x50, 0x22, 0x2F, 0x3E,
michael@0 238 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61,
michael@0 239 0x6D, 0x65, 0x3D, 0x22, 0x41, 0x55, 0x54, 0x48,
michael@0 240 0x4E, 0x41, 0x4D, 0x45, 0x22, 0x20, 0x76, 0x61,
michael@0 241 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x77, 0x77, 0x77,
michael@0 242 0x6D, 0x6D, 0x6D, 0x75, 0x73, 0x65, 0x72, 0x22,
michael@0 243 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20,
michael@0 244 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x41, 0x55,
michael@0 245 0x54, 0x48, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54,
michael@0 246 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D,
michael@0 247 0x22, 0x77, 0x77, 0x77, 0x6D, 0x6D, 0x6D, 0x73,
michael@0 248 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x2F, 0x3E,
michael@0 249 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61,
michael@0 250 0x6D, 0x65, 0x3D, 0x22, 0x41, 0x55, 0x54, 0x48,
michael@0 251 0x2D, 0x45, 0x4E, 0x54, 0x49, 0x54, 0x59, 0x22,
michael@0 252 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22,
michael@0 253 0x48, 0x41, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61,
michael@0 254 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D,
michael@0 255 0x22, 0x53, 0x50, 0x49, 0x22, 0x20, 0x76, 0x61,
michael@0 256 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x46, 0x45, 0x44,
michael@0 257 0x43, 0x42, 0x41, 0x39, 0x38, 0x22, 0x2F, 0x3E,
michael@0 258 0x3C, 0x2F, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63,
michael@0 259 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63,
michael@0 260 0x3E, 0x3C, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63,
michael@0 261 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63,
michael@0 262 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x56,
michael@0 263 0x41, 0x4C, 0x49, 0x44, 0x49, 0x54, 0x59, 0x22,
michael@0 264 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E,
michael@0 265 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x43, 0x4F, 0x55,
michael@0 266 0x4E, 0x54, 0x52, 0x59, 0x22, 0x20, 0x76, 0x61,
michael@0 267 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x32, 0x32, 0x38,
michael@0 268 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D,
michael@0 269 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x4E,
michael@0 270 0x45, 0x54, 0x57, 0x4F, 0x52, 0x4B, 0x22, 0x20,
michael@0 271 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x30,
michael@0 272 0x30, 0x31, 0x22, 0x2F, 0x3E, 0x3C, 0x2F, 0x63,
michael@0 273 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72,
michael@0 274 0x69, 0x73, 0x74, 0x69, 0x63, 0x3E, 0x3C, 0x2F,
michael@0 275 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65,
michael@0 276 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x3E, 0x3C,
michael@0 277 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65,
michael@0 278 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x20, 0x74,
michael@0 279 0x79, 0x70, 0x65, 0x3D, 0x22, 0x41, 0x43, 0x43,
michael@0 280 0x45, 0x53, 0x53, 0x22, 0x3E, 0x3C, 0x2F, 0x63,
michael@0 281 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72,
michael@0 282 0x69, 0x73, 0x74, 0x69, 0x63, 0x3E, 0x3C, 0x2F,
michael@0 283 0x77, 0x61, 0x70, 0x2D, 0x70, 0x72, 0x6F, 0x76,
michael@0 284 0x69, 0x73, 0x69, 0x6F, 0x6E, 0x69, 0x6E, 0x67,
michael@0 285 0x64, 0x6F, 0x63, 0x3E
michael@0 286 ]);
michael@0 287
michael@0 288 /*
michael@0 289 * Test data from OMA-TS-WAP_ProvCont-V1_1-20090421-C.pdf, Appendix C
michael@0 290 */
michael@0 291 let wbxml_data_array = new Uint8Array([
michael@0 292 // WBXML version 1.3
michael@0 293 0x03,
michael@0 294 // The Public Identifier for "-//WAPFORUM//DTD PROV 1.0//EN"
michael@0 295 0x0b,
michael@0 296 // Character set UTF-8
michael@0 297 0x6a,
michael@0 298 // String table length = 05
michael@0 299 0x05,
michael@0 300 // String table: 'N', 'A', 'P', '1', 00
michael@0 301 0x4e, 0x41, 0x50, 0x31, 0x00,
michael@0 302 // <wap-provisioningdoc version="1.0">
michael@0 303 0xc5, 0x46, 0x01,
michael@0 304 // <characteristic type="PXLOGICAL">
michael@0 305 0xc6, 0x51, 0x01,
michael@0 306 // <parm name="PROXY-ID" value="170.187.51.4"/>
michael@0 307 0x87, 0x15, 0x06, 0x03, 0x31, 0x37, 0x30, 0x2e,
michael@0 308 0x31, 0x38, 0x37, 0x2e, 0x35, 0x31, 0x2e, 0x34,
michael@0 309 0x00, 0x01,
michael@0 310 // <parm name="PROXY-PW" value="proxypasswd"/>
michael@0 311 0x87, 0x3E, 0x06, 0x03, 0x70, 0x72, 0x6f, 0x78,
michael@0 312 0x79, 0x70, 0x61, 0x73, 0x73, 0x77, 0x64, 0x00,
michael@0 313 0x01,
michael@0 314 // <parm name="PPGAUTH-TYPE" value="HTTP-BASIC"/>
michael@0 315 0x87, 0x3F, 0x06, 0x9C, 0x01,
michael@0 316 // <parm name="NAME" value="BankMainProxy"/>
michael@0 317 0x87, 0x07, 0x06, 0x03, 0x42, 0x61, 0x6e, 0x6b,
michael@0 318 0x4d, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x78,
michael@0 319 0x79, 0x00, 0x01,
michael@0 320 // <parm name="STARTPAGE" value="http://www.bank.com/startpage.wml"/>
michael@0 321 0x87, 0x1c, 0x06, 0x03, 0x68, 0x74, 0x74, 0x70,
michael@0 322 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x62,
michael@0 323 0x61, 0x6e, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
michael@0 324 0x73, 0x74, 0x61, 0x72, 0x74, 0x70, 0x61, 0x67,
michael@0 325 0x65, 0x2e, 0x77, 0x6d, 0x6c, 0x00, 0x01,
michael@0 326 // <parm name="PULLENABLED" value="1"/>
michael@0 327 0x87, 0x47, 0x06, 0x03, 0x31, 0x00, 0x01,
michael@0 328 // <characteristic type="PXAUTHINFO">
michael@0 329 0xc6, 0x59, 0x01,
michael@0 330 // <parm name="PXAUTH-TYPE" value="HTTP-BASIC"/>
michael@0 331 0x87, 0x19, 0x06, 0x9c, 0x01,
michael@0 332 // <parm name="PXAUTH-ID" value="pxusername"/>
michael@0 333 0x87, 0x1a, 0x06, 0x03, 0x70, 0x78, 0x75, 0x73,
michael@0 334 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x00, 0x01,
michael@0 335 // <parm name="PXAUTH-PW" value="pxuserpasswd"/>
michael@0 336 0x87, 0x1b, 0x06, 0x03, 0x70, 0x78, 0x75, 0x73,
michael@0 337 0x65, 0x72, 0x70, 0x61, 0x73, 0x73, 0x77, 0x64,
michael@0 338 0x00, 0x01,
michael@0 339 // </characteristic>
michael@0 340 0x01,
michael@0 341 // <characteristic type="PXPHYSICAL">
michael@0 342 0xc6, 0x52, 0x01,
michael@0 343 // <parm name="PHYSICAL-PROXY-ID" value="PROXY 1"/>
michael@0 344 0x87, 0x2f, 0x06, 0x03, 0x50, 0x52, 0x4f, 0x58,
michael@0 345 0x59, 0x20, 0x31, 0x00, 0x01,
michael@0 346 // <parm name="DOMAIN" value="www.bank.com/"/>
michael@0 347 0x87, 0x17, 0x06, 0x03, 0x77, 0x77, 0x77, 0x2e,
michael@0 348 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x63, 0x6f, 0x6d,
michael@0 349 0x2f, 0x00, 0x01,
michael@0 350 // <parm name="PXADDR" value="170.187.51.3"/>
michael@0 351 0x87, 0x20, 0x06, 0x03, 0x31, 0x37, 0x30, 0x2e,
michael@0 352 0x31, 0x38, 0x37, 0x2e, 0x35, 0x31, 0x2e, 0x33,
michael@0 353 0x00, 0x01,
michael@0 354 // <parm name="PXADDRTYPE" value="IPV4"/>
michael@0 355 0x87, 0x21, 0x06, 0x85, 0x01,
michael@0 356 // <parm name="PXADDR-FQDN" value="proxy1.operator.com"/>
michael@0 357 0x87, 0x3D, 0x06, 0x03, 0x70, 0x72, 0x6f, 0x78,
michael@0 358 0x79, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61,
michael@0 359 0x74, 0x6f, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x00,
michael@0 360 0x01,
michael@0 361 // <parm name="TO-NAPID" value="INTERNET"/>
michael@0 362 0x87, 0x22, 0x06, 0x03, 0x49, 0x4e, 0x54, 0x45,
michael@0 363 0x52, 0x4e, 0x45, 0x54, 0x00, 0x01,
michael@0 364 // <parm name="TO-NAPID" value="NAP1"/>
michael@0 365 0x87, 0x22, 0x06, 0x83, 0x00, 0x01,
michael@0 366 // <characteristic type="PORT">
michael@0 367 0xc6, 0x53, 0x01,
michael@0 368 // <parm name="PORTNBR" value="9203"/>
michael@0 369 0x87, 0x23, 0x06, 0x03, 0x39, 0x32, 0x30, 0x33,
michael@0 370 0x00, 0x01,
michael@0 371 // </characteristic>
michael@0 372 0x01,
michael@0 373 // </characteristic>
michael@0 374 0x01,
michael@0 375 // </characteristic>
michael@0 376 0x01,
michael@0 377 // <characteristic type="NAPDEF">
michael@0 378 0xc6, 0x55, 0x01,
michael@0 379 // <parm name="NAPID" value="NAP1"/>
michael@0 380 0x87, 0x11, 0x06, 0x83, 0x00, 0x01,
michael@0 381 // <parm name="BEARER" value="GSM-CSD"/>
michael@0 382 0x87, 0x10, 0x06, 0xaa, 0x01,
michael@0 383 // <parm name="NAME" value="MY ISP CSD"/>
michael@0 384 0x87, 0x07, 0x06, 0x03, 0x4d, 0x59, 0x20, 0x49,
michael@0 385 0x53, 0x50, 0x20, 0x43, 0x53, 0x44, 0x00, 0x01,
michael@0 386 // <parm name="NAP-ADDRESS" value="+35808124002"/>
michael@0 387 0x87, 0x08, 0x06, 0x03, 0x2b, 0x33, 0x35, 0x38,
michael@0 388 0x30, 0x38, 0x31, 0x32, 0x34, 0x30, 0x30, 0x32,
michael@0 389 0x00, 0x01,
michael@0 390 // <parm name="NAP-ADDRTYPE" value="E164"/>
michael@0 391 0x87, 0x09, 0x06, 0x87, 0x01,
michael@0 392 // <parm name="DNS-ADDR" value="170.187.51.2"/>
michael@0 393 0x87, 0x48, 0x06, 0x03, 0x31, 0x37, 0x30, 0x2e,
michael@0 394 0x31, 0x38, 0x37, 0x2e, 0x35, 0x31, 0x2e, 0x32,
michael@0 395 0x00, 0x01,
michael@0 396 // <parm name="CALLTYPE" value="ANALOG-MODEM"/>
michael@0 397 0x87, 0x0a, 0x06, 0x90, 0x01,
michael@0 398 // <parm name="MAX-NUM-RETRY" value="3"/>
michael@0 399 0x87, 0x49, 0x06, 0x03, 0x33, 0x00, 0x01,
michael@0 400 // <parm name="FIRST-RETRY-TIMEOUT" value="6"/>
michael@0 401 0x87, 0x4A, 0x06, 0x03, 0x36, 0x00, 0x01,
michael@0 402 // <parm name="REREG-THRESHOLD" value="30"/>
michael@0 403 0x87, 0x4B, 0x06, 0x03, 0x33, 0x30, 0x00, 0x01,
michael@0 404 // <parm name="T-BIT"/>
michael@0 405 0x87, 0x4C, 0x01,
michael@0 406 // <characteristic type="NAPAUTHINFO">
michael@0 407 0xc6, 0x5a, 0x01,
michael@0 408 // <parm name="AUTHTYPE" value="PAP"/>
michael@0 409 0x87, 0x0c, 0x06, 0x9a, 0x01,
michael@0 410 // <parm name="AUTHNAME" value="wwwmmmuser"/>
michael@0 411 0x87, 0x0d, 0x06, 0x03, 0x77, 0x77, 0x77, 0x6d,
michael@0 412 0x6d, 0x6d, 0x75, 0x73, 0x65, 0x72, 0x00, 0x01,
michael@0 413 // <parm name="AUTHSECRET" value="wwwmmmsecret"/>
michael@0 414 0x87, 0x0e, 0x06, 0x03, 0x77, 0x77, 0x77, 0x6d,
michael@0 415 0x6d, 0x6d, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74,
michael@0 416 0x00, 0x01,
michael@0 417 // <parm name="AUTH-ENTITY" value="HA"/>
michael@0 418 0x87, 0x4E, 0x06, 0xE1, 0x01,
michael@0 419 // <parm name="SPI" value="FEDCBA98"/>
michael@0 420 0x87, 0x4F, 0x06, 0x03, 0x46, 0x45, 0x44, 0x43,
michael@0 421 0x42, 0x41, 0x39, 0x38, 0x00, 0x01,
michael@0 422 // </characteristic>
michael@0 423 0x01,
michael@0 424 // <characteristic type="VALIDITY">
michael@0 425 0xc6, 0x54, 0x01,
michael@0 426 // <parm name="COUNTRY" value="228"/>
michael@0 427 0x87, 0x12, 0x06, 0x03, 0x32, 0x32, 0x38, 0x00,
michael@0 428 0x01,
michael@0 429 // <parm name="NETWORK" value="001"/>
michael@0 430 0x87, 0x13, 0x06, 0x03, 0x30, 0x30, 0x31, 0x00,
michael@0 431 0x01,
michael@0 432 // </characteristic>
michael@0 433 0x01,
michael@0 434 // </characteristic>
michael@0 435 0x01,
michael@0 436 // <characteristic type="ACCESS">
michael@0 437 0xC6, 0x5B, 0x01,
michael@0 438 // </characteristic>
michael@0 439 0x01,
michael@0 440 // </wap-provisioningdoc>
michael@0 441 0x01
michael@0 442 ]);
michael@0 443
michael@0 444 /*
michael@0 445 * Test data from CHT CP, with code page change
michael@0 446 */
michael@0 447 let wbxml_code_page_data_array = new Uint8Array([
michael@0 448 0x03, 0x0B, 0x6A, 0x00, 0x45, 0xC6, 0x56, 0x01,
michael@0 449 0x87, 0x07, 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F,
michael@0 450 0x65, 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0x01,
michael@0 451 0xC6, 0x00, 0x01, 0x55, 0x01, 0x87, 0x36, 0x00,
michael@0 452 0x00, 0x06, 0x03, 0x77, 0x32, 0x00, 0x01, 0x87,
michael@0 453 0x00, 0x01, 0x39, 0x00, 0x00, 0x06, 0x03, 0x57,
michael@0 454 0x50, 0x52, 0x4F, 0x58, 0x59, 0x00, 0x01, 0x87,
michael@0 455 0x07, 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F, 0x65,
michael@0 456 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0xC6, 0x00,
michael@0 457 0x01, 0x59, 0x01, 0x87, 0x3A, 0x00, 0x00, 0x06,
michael@0 458 0x03, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F,
michael@0 459 0x77, 0x61, 0x70, 0x2E, 0x65, 0x6D, 0x6F, 0x6D,
michael@0 460 0x65, 0x2E, 0x6E, 0x65, 0x74, 0x2F, 0x00, 0x01,
michael@0 461 0x87, 0x07, 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F,
michael@0 462 0x65, 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0x87,
michael@0 463 0x1C, 0x01, 0x01, 0x01, 0xC6, 0x00, 0x01, 0x55,
michael@0 464 0x01, 0x87, 0x36, 0x00, 0x00, 0x06, 0x03, 0x77,
michael@0 465 0x34, 0x00, 0x01, 0x87, 0x00, 0x01, 0x39, 0x00,
michael@0 466 0x00, 0x06, 0x03, 0x4D, 0x50, 0x52, 0x4F, 0x58,
michael@0 467 0x59, 0x00, 0x01, 0x87, 0x00, 0x01, 0x34, 0x00,
michael@0 468 0x00, 0x06, 0x03, 0x68, 0x74, 0x74, 0x70, 0x3A,
michael@0 469 0x2F, 0x2F, 0x6D, 0x6D, 0x73, 0x3A, 0x38, 0x30,
michael@0 470 0x30, 0x32, 0x00, 0x01, 0x01, 0xC6, 0x51, 0x01,
michael@0 471 0x87, 0x15, 0x06, 0x03, 0x57, 0x50, 0x52, 0x4F,
michael@0 472 0x58, 0x59, 0x00, 0x01, 0x87, 0x07, 0x06, 0x03,
michael@0 473 0x43, 0x48, 0x54, 0x5F, 0x65, 0x6D, 0x6F, 0x6D,
michael@0 474 0x65, 0x00, 0x01, 0x87, 0x1C, 0x06, 0x03, 0x68,
michael@0 475 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x77, 0x61,
michael@0 476 0x70, 0x2E, 0x65, 0x6D, 0x6F, 0x6D, 0x65, 0x2E,
michael@0 477 0x6E, 0x65, 0x74, 0x2F, 0x00, 0x01, 0xC6, 0x52,
michael@0 478 0x01, 0x87, 0x2F, 0x06, 0x03, 0x50, 0x52, 0x4F,
michael@0 479 0x58, 0x59, 0x31, 0x00, 0x01, 0x87, 0x20, 0x06,
michael@0 480 0x03, 0x31, 0x30, 0x2E, 0x31, 0x2E, 0x31, 0x2E,
michael@0 481 0x31, 0x00, 0x01, 0x87, 0x21, 0x06, 0x85, 0x01,
michael@0 482 0x87, 0x22, 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F,
michael@0 483 0x65, 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0xC6,
michael@0 484 0x53, 0x01, 0x87, 0x23, 0x06, 0x03, 0x38, 0x30,
michael@0 485 0x38, 0x30, 0x00, 0x01, 0x01, 0x01, 0x01, 0xC6,
michael@0 486 0x51, 0x01, 0x87, 0x15, 0x06, 0x03, 0x4D, 0x50,
michael@0 487 0x52, 0x4F, 0x58, 0x59, 0x00, 0x01, 0x87, 0x07,
michael@0 488 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F, 0x4D, 0x4D,
michael@0 489 0x53, 0x00, 0x01, 0xC6, 0x52, 0x01, 0x87, 0x2F,
michael@0 490 0x06, 0x03, 0x50, 0x52, 0x4F, 0x58, 0x59, 0x32,
michael@0 491 0x00, 0x01, 0x87, 0x20, 0x06, 0x03, 0x31, 0x30,
michael@0 492 0x2E, 0x31, 0x2E, 0x31, 0x2E, 0x31, 0x00, 0x01,
michael@0 493 0x87, 0x21, 0x06, 0x85, 0x01, 0x87, 0x22, 0x06,
michael@0 494 0x03, 0x43, 0x48, 0x54, 0x5F, 0x4D, 0x4D, 0x53,
michael@0 495 0x00, 0x01, 0xC6, 0x53, 0x01, 0x87, 0x23, 0x06,
michael@0 496 0x03, 0x38, 0x30, 0x38, 0x30, 0x00, 0x01, 0x01,
michael@0 497 0x01, 0x01, 0xC6, 0x55, 0x01, 0x87, 0x11, 0x06,
michael@0 498 0x03, 0x43, 0x48, 0x54, 0x5F, 0x65, 0x6D, 0x6F,
michael@0 499 0x6D, 0x65, 0x00, 0x01, 0x87, 0x07, 0x06, 0x03,
michael@0 500 0x43, 0x48, 0x54, 0x5F, 0x65, 0x6D, 0x6F, 0x6D,
michael@0 501 0x65, 0x00, 0x01, 0x87, 0x10, 0x06, 0xAB, 0x01,
michael@0 502 0x87, 0x08, 0x06, 0x03, 0x65, 0x6D, 0x6F, 0x6D,
michael@0 503 0x65, 0x00, 0x01, 0x87, 0x09, 0x06, 0x89, 0x01,
michael@0 504 0x01, 0xC6, 0x55, 0x01, 0x87, 0x11, 0x06, 0x03,
michael@0 505 0x43, 0x48, 0x54, 0x5F, 0x4D, 0x4D, 0x53, 0x00,
michael@0 506 0x01, 0x87, 0x07, 0x06, 0x03, 0x43, 0x48, 0x54,
michael@0 507 0x5F, 0x4D, 0x4D, 0x53, 0x00, 0x01, 0x87, 0x10,
michael@0 508 0x06, 0xAB, 0x01, 0x87, 0x08, 0x06, 0x03, 0x65,
michael@0 509 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0x87, 0x09,
michael@0 510 0x06, 0x89, 0x01, 0x01, 0x01
michael@0 511 ]);
michael@0 512
michael@0 513 /*
michael@0 514 * Test data from OMA-TS-WAP_ProvCont-V1_1-20090421-C.pdf, clause 6.1
michael@0 515 */
michael@0 516 let xml_header =
michael@0 517 "<?xml version=\"1.0\"?>" +
michael@0 518 "<!DOCTYPE wap-provisioningdoc PUBLIC \"-//WAPFORUM//DTD PROV 1.0//EN\" \"http://www.wapforum.org/DTD/prov.dtd\">";
michael@0 519
michael@0 520 let xml_body =
michael@0 521 "<wap-provisioningdoc version=\"1.0\">" +
michael@0 522 "<characteristic type=\"PXLOGICAL\">" +
michael@0 523 "<parm name=\"PROXY-ID\" value=\"170.187.51.4\"/>" +
michael@0 524 "<parm name=\"PROXY-PW\" value=\"proxypasswd\"/>" +
michael@0 525 "<parm name=\"PPGAUTH-TYPE\" value=\"HTTP-BASIC\"/>" +
michael@0 526 "<parm name=\"NAME\" value=\"BankMainProxy\"/>" +
michael@0 527 "<parm name=\"STARTPAGE\" value=\"http://www.bank.com/startpage.wml\"/>" +
michael@0 528 "<parm name=\"PULLENABLED\" value=\"1\"/>" +
michael@0 529 "<characteristic type=\"PXAUTHINFO\">" +
michael@0 530 "<parm name=\"PXAUTH-TYPE\" value=\"HTTP-BASIC\"/>" +
michael@0 531 "<parm name=\"PXAUTH-ID\" value=\"pxusername\"/>" +
michael@0 532 "<parm name=\"PXAUTH-PW\" value=\"pxuserpasswd\"/>" +
michael@0 533 "</characteristic>" +
michael@0 534 "<characteristic type=\"PXPHYSICAL\">" +
michael@0 535 "<parm name=\"PHYSICAL-PROXY-ID\" value=\"PROXY 1\"/>" +
michael@0 536 "<parm name=\"DOMAIN\" value=\"www.bank.com/\"/>" +
michael@0 537 "<parm name=\"PXADDR\" value=\"170.187.51.3\"/>" +
michael@0 538 "<parm name=\"PXADDRTYPE\" value=\"IPV4\"/>" +
michael@0 539 "<parm name=\"PXADDR-FQDN\" value=\"proxy1.operator.com\"/>" +
michael@0 540 "<parm name=\"TO-NAPID\" value=\"INTERNET\"/>" +
michael@0 541 "<parm name=\"TO-NAPID\" value=\"NAP1\"/>" +
michael@0 542 "<characteristic type=\"PORT\">" +
michael@0 543 "<parm name=\"PORTNBR\" value=\"9203\"/>" +
michael@0 544 "</characteristic>" +
michael@0 545 "</characteristic>" +
michael@0 546 "</characteristic>" +
michael@0 547 "<characteristic type=\"NAPDEF\">" +
michael@0 548 "<parm name=\"NAPID\" value=\"NAP1\"/>" +
michael@0 549 "<parm name=\"BEARER\" value=\"GSM-CSD\"/>" +
michael@0 550 "<parm name=\"NAME\" value=\"MY ISP CSD\"/>" +
michael@0 551 "<parm name=\"NAP-ADDRESS\" value=\"+35808124002\"/>" +
michael@0 552 "<parm name=\"NAP-ADDRTYPE\" value=\"E164\"/>" +
michael@0 553 "<parm name=\"DNS-ADDR\" value=\"170.187.51.2\"/>" +
michael@0 554 "<parm name=\"CALLTYPE\" value=\"ANALOG-MODEM\"/>" +
michael@0 555 "<parm name=\"MAX-NUM-RETRY\" value=\"3\"/>" +
michael@0 556 "<parm name=\"FIRST-RETRY-TIMEOUT\" value=\"6\"/>" +
michael@0 557 "<parm name=\"REREG-THRESHOLD\" value=\"30\"/>" +
michael@0 558 "<parm name=\"T-BIT\"/>" +
michael@0 559 "<characteristic type=\"NAPAUTHINFO\">" +
michael@0 560 "<parm name=\"AUTHTYPE\" value=\"PAP\"/>" +
michael@0 561 "<parm name=\"AUTHNAME\" value=\"wwwmmmuser\"/>" +
michael@0 562 "<parm name=\"AUTHSECRET\" value=\"wwwmmmsecret\"/>" +
michael@0 563 "<parm name=\"AUTH-ENTITY\" value=\"HA\"/>" +
michael@0 564 "<parm name=\"SPI\" value=\"FEDCBA98\"/>" +
michael@0 565 "</characteristic>" +
michael@0 566 "<characteristic type=\"VALIDITY\">" +
michael@0 567 "<parm name=\"COUNTRY\" value=\"228\"/>" +
michael@0 568 "<parm name=\"NETWORK\" value=\"001\"/>" +
michael@0 569 "</characteristic>" +
michael@0 570 "</characteristic>" +
michael@0 571 "<characteristic type=\"ACCESS\">" +
michael@0 572 "</characteristic>" +
michael@0 573 "</wap-provisioningdoc>";
michael@0 574
michael@0 575 let wbxml_code_page_content =
michael@0 576 "<wap-provisioningdoc>" +
michael@0 577 "<characteristic type=\"BOOTSTRAP\">" +
michael@0 578 "<parm name=\"NAME\" value=\"CHT_emome\"/>" +
michael@0 579 "</characteristic>" +
michael@0 580 "<characteristic type=\"APPLICATION\">" +
michael@0 581 "<parm name=\"APPID\" value=\"w2\"/>" +
michael@0 582 "<parm name=\"TO-PROXY\" value=\"WPROXY\"/>" +
michael@0 583 "<parm name=\"NAME\" value=\"CHT_emome\"/>" +
michael@0 584 "<characteristic type=\"RESOURCE\">" +
michael@0 585 "<parm name=\"URI\" value=\"http://wap.emome.net/\"/>" +
michael@0 586 "<parm name=\"NAME\" value=\"CHT_emome\"/>" +
michael@0 587 "<parm name=\"STARTPAGE\"/>" +
michael@0 588 "</characteristic>" +
michael@0 589 "</characteristic>" +
michael@0 590 "<characteristic type=\"APPLICATION\">" +
michael@0 591 "<parm name=\"APPID\" value=\"w4\"/>" +
michael@0 592 "<parm name=\"TO-PROXY\" value=\"MPROXY\"/>" +
michael@0 593 "<parm name=\"ADDR\" value=\"http://mms:8002\"/>" +
michael@0 594 "</characteristic>" +
michael@0 595 "<characteristic type=\"PXLOGICAL\">" +
michael@0 596 "<parm name=\"PROXY-ID\" value=\"WPROXY\"/>" +
michael@0 597 "<parm name=\"NAME\" value=\"CHT_emome\"/>" +
michael@0 598 "<parm name=\"STARTPAGE\" value=\"http://wap.emome.net/\"/>" +
michael@0 599 "<characteristic type=\"PXPHYSICAL\">" +
michael@0 600 "<parm name=\"PHYSICAL-PROXY-ID\" value=\"PROXY1\"/>" +
michael@0 601 "<parm name=\"PXADDR\" value=\"10.1.1.1\"/>" +
michael@0 602 "<parm name=\"PXADDRTYPE\" value=\"IPV4\"/>" +
michael@0 603 "<parm name=\"TO-NAPID\" value=\"CHT_emome\"/>" +
michael@0 604 "<characteristic type=\"PORT\">" +
michael@0 605 "<parm name=\"PORTNBR\" value=\"8080\"/>" +
michael@0 606 "</characteristic>" +
michael@0 607 "</characteristic>" +
michael@0 608 "</characteristic>" +
michael@0 609 "<characteristic type=\"PXLOGICAL\">" +
michael@0 610 "<parm name=\"PROXY-ID\" value=\"MPROXY\"/>" +
michael@0 611 "<parm name=\"NAME\" value=\"CHT_MMS\"/>" +
michael@0 612 "<characteristic type=\"PXPHYSICAL\">" +
michael@0 613 "<parm name=\"PHYSICAL-PROXY-ID\" value=\"PROXY2\"/>" +
michael@0 614 "<parm name=\"PXADDR\" value=\"10.1.1.1\"/>" +
michael@0 615 "<parm name=\"PXADDRTYPE\" value=\"IPV4\"/>" +
michael@0 616 "<parm name=\"TO-NAPID\" value=\"CHT_MMS\"/>" +
michael@0 617 "<characteristic type=\"PORT\">" +
michael@0 618 "<parm name=\"PORTNBR\" value=\"8080\"/>" +
michael@0 619 "</characteristic>" +
michael@0 620 "</characteristic>" +
michael@0 621 "</characteristic>" +
michael@0 622 "<characteristic type=\"NAPDEF\">" +
michael@0 623 "<parm name=\"NAPID\" value=\"CHT_emome\"/>" +
michael@0 624 "<parm name=\"NAME\" value=\"CHT_emome\"/>" +
michael@0 625 "<parm name=\"BEARER\" value=\"GSM-GPRS\"/>" +
michael@0 626 "<parm name=\"NAP-ADDRESS\" value=\"emome\"/>" +
michael@0 627 "<parm name=\"NAP-ADDRTYPE\" value=\"APN\"/>" +
michael@0 628 "</characteristic>" +
michael@0 629 "<characteristic type=\"NAPDEF\">" +
michael@0 630 "<parm name=\"NAPID\" value=\"CHT_MMS\"/>" +
michael@0 631 "<parm name=\"NAME\" value=\"CHT_MMS\"/>" +
michael@0 632 "<parm name=\"BEARER\" value=\"GSM-GPRS\"/>" +
michael@0 633 "<parm name=\"NAP-ADDRESS\" value=\"emome\"/>" +
michael@0 634 "<parm name=\"NAP-ADDRTYPE\" value=\"APN\"/>" +
michael@0 635 "</characteristic>" +
michael@0 636 "</wap-provisioningdoc>";
michael@0 637
michael@0 638 /**
michael@0 639 * CP in plain text
michael@0 640 *
michael@0 641 * Test case from OMA-TS-WAP_ProvCont-V1_1-20090421-C.pdf, clause 6.1
michael@0 642 */
michael@0 643 add_test(function test_cp_parse_plain_text() {
michael@0 644 test_parser(text_data_array, "text/vnd.wap.connectivity-xml", {
michael@0 645 contentType: "text/vnd.wap.connectivity-xml",
michael@0 646 content: xml_header + xml_body
michael@0 647 });
michael@0 648
michael@0 649 run_next_test();
michael@0 650 });
michael@0 651
michael@0 652 /**
michael@0 653 * CP compressed by WBXML
michael@0 654 *
michael@0 655 * Test case from OMA-TS-WAP_ProvCont-V1_1-20090421-C.pdf, Appendix C
michael@0 656 */
michael@0 657 add_test(function test_cp_parse_wbxml() {
michael@0 658 test_parser(wbxml_data_array, "application/vnd.wap.connectivity-wbxml", {
michael@0 659 contentType: "text/vnd.wap.connectivity-xml",
michael@0 660 content: xml_body
michael@0 661 });
michael@0 662
michael@0 663 run_next_test();
michael@0 664 });
michael@0 665
michael@0 666 /**
michael@0 667 * CP compressed by WBXML with VENDORCONFIG
michael@0 668 */
michael@0 669 add_test(function test_cp_parse_wbxml() {
michael@0 670 let wbxml_vendor_config_data_array = new Uint8Array([
michael@0 671 0x03, 0x0b, 0x6a, 0x05, 0x4e, 0x41, 0x50, 0x31,
michael@0 672 0x00, 0xC5, 0x46, 0x01, 0xc6, 0x57, 0x01, 0x01
michael@0 673 ]);
michael@0 674
michael@0 675 test_parser(wbxml_vendor_config_data_array, "application/vnd.wap.connectivity-wbxml", {
michael@0 676 contentType: "application/vnd.wap.connectivity-wbxml",
michael@0 677 content: wbxml_vendor_config_data_array
michael@0 678 });
michael@0 679
michael@0 680 run_next_test();
michael@0 681 });
michael@0 682
michael@0 683 /**
michael@0 684 * CP compressed by WBXML with code page switch
michael@0 685 */
michael@0 686 add_test(function test_cp_parse_wbxml_code_page() {
michael@0 687 test_parser(wbxml_code_page_data_array, "application/vnd.wap.connectivity-wbxml", {
michael@0 688 contentType: "text/vnd.wap.connectivity-xml",
michael@0 689 content: wbxml_code_page_content
michael@0 690 });
michael@0 691
michael@0 692 run_next_test();
michael@0 693 });
michael@0 694
michael@0 695 /**
michael@0 696 * HMAC test
michael@0 697 */
michael@0 698 add_test(function test_cp_hmac_userpin() {
michael@0 699 test_hmac(wbxml_code_page_data_array,
michael@0 700 "AA2DC41FC48AEEF3FED7351B1EE704461A8894D4",
michael@0 701 "0000",
michael@0 702 {
michael@0 703 checked: true,
michael@0 704 pass: true
michael@0 705 });
michael@0 706
michael@0 707 run_next_test();
michael@0 708 });
michael@0 709
michael@0 710 add_test(function test_cp_hmac_networkpin() {
michael@0 711 let wbxml_empty_data_array = new Uint8Array([
michael@0 712 0x03, 0x0b, 0x6a, 0x00, 0x45, 0x01
michael@0 713 ]);
michael@0 714
michael@0 715 test_hmac(wbxml_empty_data_array,
michael@0 716 "1AF545FE2823DC9347064450F90FF1BBF957E146",
michael@0 717 CP.Authenticator.formatImsi("466923103145252"),
michael@0 718 {
michael@0 719 checked: true,
michael@0 720 pass: true
michael@0 721 });
michael@0 722
michael@0 723 run_next_test();
michael@0 724 });

mercurial