1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/wappush/tests/test_cp_pdu_helper.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,724 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +let CP = {}; 1.8 +subscriptLoader.loadSubScript("resource://gre/modules/CpPduHelper.jsm", CP); 1.9 +CP.debug = do_print; 1.10 + 1.11 +function run_test() { 1.12 + run_next_test(); 1.13 +} 1.14 + 1.15 +function test_parser(rawDataArray, contentType, expectResult) { 1.16 + let data = { array: rawDataArray, offset: 0 }; 1.17 + let msg = CP.PduHelper.parse(data, contentType); 1.18 + do_check_eq(msg.contentType, expectResult.contentType); 1.19 + do_check_eq(msg.content, expectResult.content); 1.20 + do_check_eq(msg.content.length, expectResult.content.length); 1.21 +} 1.22 + 1.23 +function test_hmac(rawDataArray, mac, key, expectResult) { 1.24 + let authInfo = CP.Authenticator.check(rawDataArray, 0, mac, function getNetworkPin() { 1.25 + return key; 1.26 + }); 1.27 + do_check_eq(authInfo.data, rawDataArray); 1.28 + do_check_eq(authInfo.data.length, rawDataArray.length); 1.29 + do_check_eq(authInfo.checked, expectResult.checked); 1.30 + do_check_eq(authInfo.pass, expectResult.pass); 1.31 +} 1.32 + 1.33 +/* 1.34 + * Test data from OMA-TS-WAP_ProvCont-V1_1-2009 0421-C.pdf, clause 6.1 1.35 + */ 1.36 +let text_data_array = new Uint8Array([ 1.37 + 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, 1.38 + 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 0x31, 1.39 + 0x2E, 0x30, 0x22, 0x3F, 0x3E, 0x3C, 0x21, 0x44, 1.40 + 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x77, 1.41 + 0x61, 0x70, 0x2D, 0x70, 0x72, 0x6F, 0x76, 0x69, 1.42 + 0x73, 0x69, 0x6F, 0x6E, 0x69, 0x6E, 0x67, 0x64, 1.43 + 0x6F, 0x63, 0x20, 0x50, 0x55, 0x42, 0x4C, 0x49, 1.44 + 0x43, 0x20, 0x22, 0x2D, 0x2F, 0x2F, 0x57, 0x41, 1.45 + 0x50, 0x46, 0x4F, 0x52, 0x55, 0x4D, 0x2F, 0x2F, 1.46 + 0x44, 0x54, 0x44, 0x20, 0x50, 0x52, 0x4F, 0x56, 1.47 + 0x20, 0x31, 0x2E, 0x30, 0x2F, 0x2F, 0x45, 0x4E, 1.48 + 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A, 1.49 + 0x2F, 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x77, 0x61, 1.50 + 0x70, 0x66, 0x6F, 0x72, 0x75, 0x6D, 0x2E, 0x6F, 1.51 + 0x72, 0x67, 0x2F, 0x44, 0x54, 0x44, 0x2F, 0x70, 1.52 + 0x72, 0x6F, 0x76, 0x2E, 0x64, 0x74, 0x64, 0x22, 1.53 + 0x3E, 0x3C, 0x77, 0x61, 0x70, 0x2D, 0x70, 0x72, 1.54 + 0x6F, 0x76, 0x69, 0x73, 0x69, 0x6F, 0x6E, 0x69, 1.55 + 0x6E, 0x67, 0x64, 0x6F, 0x63, 0x20, 0x76, 0x65, 1.56 + 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 0x31, 1.57 + 0x2E, 0x30, 0x22, 0x3E, 0x3C, 0x63, 0x68, 0x61, 1.58 + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x69, 0x73, 1.59 + 0x74, 0x69, 0x63, 0x20, 0x74, 0x79, 0x70, 0x65, 1.60 + 0x3D, 0x22, 0x50, 0x58, 0x4C, 0x4F, 0x47, 0x49, 1.61 + 0x43, 0x41, 0x4C, 0x22, 0x3E, 0x3C, 0x70, 0x61, 1.62 + 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 1.63 + 0x22, 0x50, 0x52, 0x4F, 0x58, 0x59, 0x2D, 0x49, 1.64 + 0x44, 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 1.65 + 0x3D, 0x22, 0x31, 0x37, 0x30, 0x2E, 0x31, 0x38, 1.66 + 0x37, 0x2E, 0x35, 0x31, 0x2E, 0x34, 0x22, 0x2F, 1.67 + 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 1.68 + 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x50, 0x52, 0x4F, 1.69 + 0x58, 0x59, 0x2D, 0x50, 0x57, 0x22, 0x20, 0x76, 1.70 + 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x70, 0x72, 1.71 + 0x6F, 0x78, 0x79, 0x70, 0x61, 0x73, 0x73, 0x77, 1.72 + 0x64, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 1.73 + 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 1.74 + 0x50, 0x50, 0x47, 0x41, 0x55, 0x54, 0x48, 0x2D, 1.75 + 0x54, 0x59, 0x50, 0x45, 0x22, 0x20, 0x76, 0x61, 1.76 + 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x48, 0x54, 0x54, 1.77 + 0x50, 0x2D, 0x42, 0x41, 0x53, 0x49, 0x43, 0x22, 1.78 + 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 1.79 + 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x4E, 0x41, 1.80 + 0x4D, 0x45, 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 1.81 + 0x65, 0x3D, 0x22, 0x42, 0x61, 0x6E, 0x6B, 0x4D, 1.82 + 0x61, 0x69, 0x6E, 0x50, 0x72, 0x6F, 0x78, 0x79, 1.83 + 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 1.84 + 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x53, 1.85 + 0x54, 0x41, 0x52, 0x54, 0x50, 0x41, 0x47, 0x45, 1.86 + 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 1.87 + 0x22, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 1.88 + 0x77, 0x77, 0x77, 0x2E, 0x62, 0x61, 0x6E, 0x6B, 1.89 + 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x73, 0x74, 0x61, 1.90 + 0x72, 0x74, 0x70, 0x61, 0x67, 0x65, 0x2E, 0x77, 1.91 + 0x6D, 0x6C, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 1.92 + 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 1.93 + 0x22, 0x50, 0x55, 0x4C, 0x4C, 0x45, 0x4E, 0x41, 1.94 + 0x42, 0x4C, 0x45, 0x44, 0x22, 0x20, 0x76, 0x61, 1.95 + 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x31, 0x22, 0x2F, 1.96 + 0x3E, 0x3C, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 1.97 + 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 1.98 + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x50, 1.99 + 0x58, 0x41, 0x55, 0x54, 0x48, 0x49, 0x4E, 0x46, 1.100 + 0x4F, 0x22, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 1.101 + 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x50, 1.102 + 0x58, 0x41, 0x55, 0x54, 0x48, 0x2D, 0x54, 0x59, 1.103 + 0x50, 0x45, 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 1.104 + 0x65, 0x3D, 0x22, 0x48, 0x54, 0x54, 0x50, 0x2D, 1.105 + 0x42, 0x41, 0x53, 0x49, 0x43, 0x22, 0x2F, 0x3E, 1.106 + 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 1.107 + 0x6D, 0x65, 0x3D, 0x22, 0x50, 0x58, 0x41, 0x55, 1.108 + 0x54, 0x48, 0x2D, 0x49, 0x44, 0x22, 0x20, 0x76, 1.109 + 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x70, 0x78, 1.110 + 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 1.111 + 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 1.112 + 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x50, 1.113 + 0x58, 0x41, 0x55, 0x54, 0x48, 0x2D, 0x50, 0x57, 1.114 + 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 1.115 + 0x22, 0x70, 0x78, 0x75, 0x73, 0x65, 0x72, 0x70, 1.116 + 0x61, 0x73, 0x73, 0x77, 0x64, 0x22, 0x2F, 0x3E, 1.117 + 0x3C, 0x2F, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 1.118 + 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 1.119 + 0x3E, 0x3C, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 1.120 + 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 1.121 + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x50, 1.122 + 0x58, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, 1.123 + 0x4C, 0x22, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 1.124 + 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x50, 1.125 + 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, 0x4C, 0x2D, 1.126 + 0x50, 0x52, 0x4F, 0x58, 0x59, 0x2D, 0x49, 0x44, 1.127 + 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 1.128 + 0x22, 0x50, 0x52, 0x4F, 0x58, 0x59, 0x20, 0x31, 1.129 + 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 1.130 + 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x44, 1.131 + 0x4F, 0x4D, 0x41, 0x49, 0x4E, 0x22, 0x20, 0x76, 1.132 + 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x77, 0x77, 1.133 + 0x77, 0x2E, 0x62, 0x61, 0x6E, 0x6B, 0x2E, 0x63, 1.134 + 0x6F, 0x6D, 0x2F, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 1.135 + 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 1.136 + 0x3D, 0x22, 0x50, 0x58, 0x41, 0x44, 0x44, 0x52, 1.137 + 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 1.138 + 0x22, 0x31, 0x37, 0x30, 0x2E, 0x31, 0x38, 0x37, 1.139 + 0x2E, 0x35, 0x31, 0x2E, 0x33, 0x22, 0x2F, 0x3E, 1.140 + 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 1.141 + 0x6D, 0x65, 0x3D, 0x22, 0x50, 0x58, 0x41, 0x44, 1.142 + 0x44, 0x52, 0x54, 0x59, 0x50, 0x45, 0x22, 0x20, 1.143 + 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x49, 1.144 + 0x50, 0x56, 0x34, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 1.145 + 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 1.146 + 0x3D, 0x22, 0x50, 0x58, 0x41, 0x44, 0x44, 0x52, 1.147 + 0x2D, 0x46, 0x51, 0x44, 0x4E, 0x22, 0x20, 0x76, 1.148 + 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x70, 0x72, 1.149 + 0x6F, 0x78, 0x79, 0x31, 0x2E, 0x6F, 0x70, 0x65, 1.150 + 0x72, 0x61, 0x74, 0x6F, 0x72, 0x2E, 0x63, 0x6F, 1.151 + 0x6D, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 1.152 + 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 1.153 + 0x54, 0x4F, 0x2D, 0x4E, 0x41, 0x50, 0x49, 0x44, 1.154 + 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 1.155 + 0x22, 0x49, 0x4E, 0x54, 0x45, 0x52, 0x4E, 0x45, 1.156 + 0x54, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 1.157 + 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 1.158 + 0x54, 0x4F, 0x2D, 0x4E, 0x41, 0x50, 0x49, 0x44, 1.159 + 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 1.160 + 0x22, 0x4E, 0x41, 0x50, 0x31, 0x22, 0x2F, 0x3E, 1.161 + 0x3C, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 1.162 + 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x20, 1.163 + 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x50, 0x4F, 1.164 + 0x52, 0x54, 0x22, 0x3E, 0x3C, 0x70, 0x61, 0x72, 1.165 + 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 1.166 + 0x50, 0x4F, 0x52, 0x54, 0x4E, 0x42, 0x52, 0x22, 1.167 + 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 1.168 + 0x39, 0x32, 0x30, 0x33, 0x22, 0x2F, 0x3E, 0x3C, 1.169 + 0x2F, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 1.170 + 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x3E, 1.171 + 0x3C, 0x2F, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 1.172 + 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 1.173 + 0x3E, 0x3C, 0x2F, 0x63, 0x68, 0x61, 0x72, 0x61, 1.174 + 0x63, 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 1.175 + 0x63, 0x3E, 0x3C, 0x63, 0x68, 0x61, 0x72, 0x61, 1.176 + 0x63, 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 1.177 + 0x63, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 1.178 + 0x4E, 0x41, 0x50, 0x44, 0x45, 0x46, 0x22, 0x3E, 1.179 + 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 1.180 + 0x6D, 0x65, 0x3D, 0x22, 0x4E, 0x41, 0x50, 0x49, 1.181 + 0x44, 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 1.182 + 0x3D, 0x22, 0x4E, 0x41, 0x50, 0x31, 0x22, 0x2F, 1.183 + 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 1.184 + 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x42, 0x45, 0x41, 1.185 + 0x52, 0x45, 0x52, 0x22, 0x20, 0x76, 0x61, 0x6C, 1.186 + 0x75, 0x65, 0x3D, 0x22, 0x47, 0x53, 0x4D, 0x2D, 1.187 + 0x43, 0x53, 0x44, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 1.188 + 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 1.189 + 0x3D, 0x22, 0x4E, 0x41, 0x4D, 0x45, 0x22, 0x20, 1.190 + 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x4D, 1.191 + 0x59, 0x20, 0x49, 0x53, 0x50, 0x20, 0x43, 0x53, 1.192 + 0x44, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 1.193 + 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 1.194 + 0x4E, 0x41, 0x50, 0x2D, 0x41, 0x44, 0x44, 0x52, 1.195 + 0x45, 0x53, 0x53, 0x22, 0x20, 0x76, 0x61, 0x6C, 1.196 + 0x75, 0x65, 0x3D, 0x22, 0x2B, 0x33, 0x35, 0x38, 1.197 + 0x30, 0x38, 0x31, 0x32, 0x34, 0x30, 0x30, 0x32, 1.198 + 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 1.199 + 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x4E, 1.200 + 0x41, 0x50, 0x2D, 0x41, 0x44, 0x44, 0x52, 0x54, 1.201 + 0x59, 0x50, 0x45, 0x22, 0x20, 0x76, 0x61, 0x6C, 1.202 + 0x75, 0x65, 0x3D, 0x22, 0x45, 0x31, 0x36, 0x34, 1.203 + 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 1.204 + 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x44, 1.205 + 0x4E, 0x53, 0x2D, 0x41, 0x44, 0x44, 0x52, 0x22, 1.206 + 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 1.207 + 0x31, 0x37, 0x30, 0x2E, 0x31, 0x38, 0x37, 0x2E, 1.208 + 0x35, 0x31, 0x2E, 0x32, 0x22, 0x2F, 0x3E, 0x3C, 1.209 + 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 1.210 + 0x65, 0x3D, 0x22, 0x43, 0x41, 0x4C, 0x4C, 0x54, 1.211 + 0x59, 0x50, 0x45, 0x22, 0x20, 0x76, 0x61, 0x6C, 1.212 + 0x75, 0x65, 0x3D, 0x22, 0x41, 0x4E, 0x41, 0x4C, 1.213 + 0x4F, 0x47, 0x2D, 0x4D, 0x4F, 0x44, 0x45, 0x4D, 1.214 + 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 1.215 + 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x4D, 1.216 + 0x41, 0x58, 0x2D, 0x4E, 0x55, 0x4D, 0x2D, 0x52, 1.217 + 0x45, 0x54, 0x52, 0x59, 0x22, 0x20, 0x76, 0x61, 1.218 + 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x33, 0x22, 0x2F, 1.219 + 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 1.220 + 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x46, 0x49, 0x52, 1.221 + 0x53, 0x54, 0x2D, 0x52, 0x45, 0x54, 0x52, 0x59, 1.222 + 0x2D, 0x54, 0x49, 0x4D, 0x45, 0x4F, 0x55, 0x54, 1.223 + 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 1.224 + 0x22, 0x36, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 1.225 + 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 1.226 + 0x22, 0x52, 0x45, 0x52, 0x45, 0x47, 0x2D, 0x54, 1.227 + 0x48, 0x52, 0x45, 0x53, 0x48, 0x4F, 0x4C, 0x44, 1.228 + 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 1.229 + 0x22, 0x33, 0x30, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 1.230 + 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 1.231 + 0x3D, 0x22, 0x54, 0x2D, 0x42, 0x49, 0x54, 0x22, 1.232 + 0x2F, 0x3E, 0x3C, 0x63, 0x68, 0x61, 0x72, 0x61, 1.233 + 0x63, 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 1.234 + 0x63, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 1.235 + 0x4E, 0x41, 0x50, 0x41, 0x55, 0x54, 0x48, 0x49, 1.236 + 0x4E, 0x46, 0x4F, 0x22, 0x3E, 0x3C, 0x70, 0x61, 1.237 + 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 1.238 + 0x22, 0x41, 0x55, 0x54, 0x48, 0x54, 0x59, 0x50, 1.239 + 0x45, 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 1.240 + 0x3D, 0x22, 0x50, 0x41, 0x50, 0x22, 0x2F, 0x3E, 1.241 + 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 1.242 + 0x6D, 0x65, 0x3D, 0x22, 0x41, 0x55, 0x54, 0x48, 1.243 + 0x4E, 0x41, 0x4D, 0x45, 0x22, 0x20, 0x76, 0x61, 1.244 + 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x77, 0x77, 0x77, 1.245 + 0x6D, 0x6D, 0x6D, 0x75, 0x73, 0x65, 0x72, 0x22, 1.246 + 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 1.247 + 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x41, 0x55, 1.248 + 0x54, 0x48, 0x53, 0x45, 0x43, 0x52, 0x45, 0x54, 1.249 + 0x22, 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 1.250 + 0x22, 0x77, 0x77, 0x77, 0x6D, 0x6D, 0x6D, 0x73, 1.251 + 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x2F, 0x3E, 1.252 + 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 0x61, 1.253 + 0x6D, 0x65, 0x3D, 0x22, 0x41, 0x55, 0x54, 0x48, 1.254 + 0x2D, 0x45, 0x4E, 0x54, 0x49, 0x54, 0x59, 0x22, 1.255 + 0x20, 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 1.256 + 0x48, 0x41, 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 1.257 + 0x72, 0x6D, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 1.258 + 0x22, 0x53, 0x50, 0x49, 0x22, 0x20, 0x76, 0x61, 1.259 + 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x46, 0x45, 0x44, 1.260 + 0x43, 0x42, 0x41, 0x39, 0x38, 0x22, 0x2F, 0x3E, 1.261 + 0x3C, 0x2F, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 1.262 + 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 1.263 + 0x3E, 0x3C, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 1.264 + 0x74, 0x65, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 1.265 + 0x20, 0x74, 0x79, 0x70, 0x65, 0x3D, 0x22, 0x56, 1.266 + 0x41, 0x4C, 0x49, 0x44, 0x49, 0x54, 0x59, 0x22, 1.267 + 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 0x20, 0x6E, 1.268 + 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x43, 0x4F, 0x55, 1.269 + 0x4E, 0x54, 0x52, 0x59, 0x22, 0x20, 0x76, 0x61, 1.270 + 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x32, 0x32, 0x38, 1.271 + 0x22, 0x2F, 0x3E, 0x3C, 0x70, 0x61, 0x72, 0x6D, 1.272 + 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3D, 0x22, 0x4E, 1.273 + 0x45, 0x54, 0x57, 0x4F, 0x52, 0x4B, 0x22, 0x20, 1.274 + 0x76, 0x61, 0x6C, 0x75, 0x65, 0x3D, 0x22, 0x30, 1.275 + 0x30, 0x31, 0x22, 0x2F, 0x3E, 0x3C, 0x2F, 0x63, 1.276 + 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 1.277 + 0x69, 0x73, 0x74, 0x69, 0x63, 0x3E, 0x3C, 0x2F, 1.278 + 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 1.279 + 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x3E, 0x3C, 1.280 + 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 1.281 + 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x20, 0x74, 1.282 + 0x79, 0x70, 0x65, 0x3D, 0x22, 0x41, 0x43, 0x43, 1.283 + 0x45, 0x53, 0x53, 0x22, 0x3E, 0x3C, 0x2F, 0x63, 1.284 + 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 1.285 + 0x69, 0x73, 0x74, 0x69, 0x63, 0x3E, 0x3C, 0x2F, 1.286 + 0x77, 0x61, 0x70, 0x2D, 0x70, 0x72, 0x6F, 0x76, 1.287 + 0x69, 0x73, 0x69, 0x6F, 0x6E, 0x69, 0x6E, 0x67, 1.288 + 0x64, 0x6F, 0x63, 0x3E 1.289 +]); 1.290 + 1.291 +/* 1.292 + * Test data from OMA-TS-WAP_ProvCont-V1_1-20090421-C.pdf, Appendix C 1.293 + */ 1.294 +let wbxml_data_array = new Uint8Array([ 1.295 + // WBXML version 1.3 1.296 + 0x03, 1.297 + // The Public Identifier for "-//WAPFORUM//DTD PROV 1.0//EN" 1.298 + 0x0b, 1.299 + // Character set UTF-8 1.300 + 0x6a, 1.301 + // String table length = 05 1.302 + 0x05, 1.303 + // String table: 'N', 'A', 'P', '1', 00 1.304 + 0x4e, 0x41, 0x50, 0x31, 0x00, 1.305 + // <wap-provisioningdoc version="1.0"> 1.306 + 0xc5, 0x46, 0x01, 1.307 + // <characteristic type="PXLOGICAL"> 1.308 + 0xc6, 0x51, 0x01, 1.309 + // <parm name="PROXY-ID" value="170.187.51.4"/> 1.310 + 0x87, 0x15, 0x06, 0x03, 0x31, 0x37, 0x30, 0x2e, 1.311 + 0x31, 0x38, 0x37, 0x2e, 0x35, 0x31, 0x2e, 0x34, 1.312 + 0x00, 0x01, 1.313 + // <parm name="PROXY-PW" value="proxypasswd"/> 1.314 + 0x87, 0x3E, 0x06, 0x03, 0x70, 0x72, 0x6f, 0x78, 1.315 + 0x79, 0x70, 0x61, 0x73, 0x73, 0x77, 0x64, 0x00, 1.316 + 0x01, 1.317 + // <parm name="PPGAUTH-TYPE" value="HTTP-BASIC"/> 1.318 + 0x87, 0x3F, 0x06, 0x9C, 0x01, 1.319 + // <parm name="NAME" value="BankMainProxy"/> 1.320 + 0x87, 0x07, 0x06, 0x03, 0x42, 0x61, 0x6e, 0x6b, 1.321 + 0x4d, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x78, 1.322 + 0x79, 0x00, 0x01, 1.323 + // <parm name="STARTPAGE" value="http://www.bank.com/startpage.wml"/> 1.324 + 0x87, 0x1c, 0x06, 0x03, 0x68, 0x74, 0x74, 0x70, 1.325 + 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x62, 1.326 + 0x61, 0x6e, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 1.327 + 0x73, 0x74, 0x61, 0x72, 0x74, 0x70, 0x61, 0x67, 1.328 + 0x65, 0x2e, 0x77, 0x6d, 0x6c, 0x00, 0x01, 1.329 + // <parm name="PULLENABLED" value="1"/> 1.330 + 0x87, 0x47, 0x06, 0x03, 0x31, 0x00, 0x01, 1.331 + // <characteristic type="PXAUTHINFO"> 1.332 + 0xc6, 0x59, 0x01, 1.333 + // <parm name="PXAUTH-TYPE" value="HTTP-BASIC"/> 1.334 + 0x87, 0x19, 0x06, 0x9c, 0x01, 1.335 + // <parm name="PXAUTH-ID" value="pxusername"/> 1.336 + 0x87, 0x1a, 0x06, 0x03, 0x70, 0x78, 0x75, 0x73, 1.337 + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x00, 0x01, 1.338 + // <parm name="PXAUTH-PW" value="pxuserpasswd"/> 1.339 + 0x87, 0x1b, 0x06, 0x03, 0x70, 0x78, 0x75, 0x73, 1.340 + 0x65, 0x72, 0x70, 0x61, 0x73, 0x73, 0x77, 0x64, 1.341 + 0x00, 0x01, 1.342 + // </characteristic> 1.343 + 0x01, 1.344 + // <characteristic type="PXPHYSICAL"> 1.345 + 0xc6, 0x52, 0x01, 1.346 + // <parm name="PHYSICAL-PROXY-ID" value="PROXY 1"/> 1.347 + 0x87, 0x2f, 0x06, 0x03, 0x50, 0x52, 0x4f, 0x58, 1.348 + 0x59, 0x20, 0x31, 0x00, 0x01, 1.349 + // <parm name="DOMAIN" value="www.bank.com/"/> 1.350 + 0x87, 0x17, 0x06, 0x03, 0x77, 0x77, 0x77, 0x2e, 1.351 + 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x63, 0x6f, 0x6d, 1.352 + 0x2f, 0x00, 0x01, 1.353 + // <parm name="PXADDR" value="170.187.51.3"/> 1.354 + 0x87, 0x20, 0x06, 0x03, 0x31, 0x37, 0x30, 0x2e, 1.355 + 0x31, 0x38, 0x37, 0x2e, 0x35, 0x31, 0x2e, 0x33, 1.356 + 0x00, 0x01, 1.357 + // <parm name="PXADDRTYPE" value="IPV4"/> 1.358 + 0x87, 0x21, 0x06, 0x85, 0x01, 1.359 + // <parm name="PXADDR-FQDN" value="proxy1.operator.com"/> 1.360 + 0x87, 0x3D, 0x06, 0x03, 0x70, 0x72, 0x6f, 0x78, 1.361 + 0x79, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x72, 0x61, 1.362 + 0x74, 0x6f, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x00, 1.363 + 0x01, 1.364 + // <parm name="TO-NAPID" value="INTERNET"/> 1.365 + 0x87, 0x22, 0x06, 0x03, 0x49, 0x4e, 0x54, 0x45, 1.366 + 0x52, 0x4e, 0x45, 0x54, 0x00, 0x01, 1.367 + // <parm name="TO-NAPID" value="NAP1"/> 1.368 + 0x87, 0x22, 0x06, 0x83, 0x00, 0x01, 1.369 + // <characteristic type="PORT"> 1.370 + 0xc6, 0x53, 0x01, 1.371 + // <parm name="PORTNBR" value="9203"/> 1.372 + 0x87, 0x23, 0x06, 0x03, 0x39, 0x32, 0x30, 0x33, 1.373 + 0x00, 0x01, 1.374 + // </characteristic> 1.375 + 0x01, 1.376 + // </characteristic> 1.377 + 0x01, 1.378 + // </characteristic> 1.379 + 0x01, 1.380 + // <characteristic type="NAPDEF"> 1.381 + 0xc6, 0x55, 0x01, 1.382 + // <parm name="NAPID" value="NAP1"/> 1.383 + 0x87, 0x11, 0x06, 0x83, 0x00, 0x01, 1.384 + // <parm name="BEARER" value="GSM-CSD"/> 1.385 + 0x87, 0x10, 0x06, 0xaa, 0x01, 1.386 + // <parm name="NAME" value="MY ISP CSD"/> 1.387 + 0x87, 0x07, 0x06, 0x03, 0x4d, 0x59, 0x20, 0x49, 1.388 + 0x53, 0x50, 0x20, 0x43, 0x53, 0x44, 0x00, 0x01, 1.389 + // <parm name="NAP-ADDRESS" value="+35808124002"/> 1.390 + 0x87, 0x08, 0x06, 0x03, 0x2b, 0x33, 0x35, 0x38, 1.391 + 0x30, 0x38, 0x31, 0x32, 0x34, 0x30, 0x30, 0x32, 1.392 + 0x00, 0x01, 1.393 + // <parm name="NAP-ADDRTYPE" value="E164"/> 1.394 + 0x87, 0x09, 0x06, 0x87, 0x01, 1.395 + // <parm name="DNS-ADDR" value="170.187.51.2"/> 1.396 + 0x87, 0x48, 0x06, 0x03, 0x31, 0x37, 0x30, 0x2e, 1.397 + 0x31, 0x38, 0x37, 0x2e, 0x35, 0x31, 0x2e, 0x32, 1.398 + 0x00, 0x01, 1.399 + // <parm name="CALLTYPE" value="ANALOG-MODEM"/> 1.400 + 0x87, 0x0a, 0x06, 0x90, 0x01, 1.401 + // <parm name="MAX-NUM-RETRY" value="3"/> 1.402 + 0x87, 0x49, 0x06, 0x03, 0x33, 0x00, 0x01, 1.403 + // <parm name="FIRST-RETRY-TIMEOUT" value="6"/> 1.404 + 0x87, 0x4A, 0x06, 0x03, 0x36, 0x00, 0x01, 1.405 + // <parm name="REREG-THRESHOLD" value="30"/> 1.406 + 0x87, 0x4B, 0x06, 0x03, 0x33, 0x30, 0x00, 0x01, 1.407 + // <parm name="T-BIT"/> 1.408 + 0x87, 0x4C, 0x01, 1.409 + // <characteristic type="NAPAUTHINFO"> 1.410 + 0xc6, 0x5a, 0x01, 1.411 + // <parm name="AUTHTYPE" value="PAP"/> 1.412 + 0x87, 0x0c, 0x06, 0x9a, 0x01, 1.413 + // <parm name="AUTHNAME" value="wwwmmmuser"/> 1.414 + 0x87, 0x0d, 0x06, 0x03, 0x77, 0x77, 0x77, 0x6d, 1.415 + 0x6d, 0x6d, 0x75, 0x73, 0x65, 0x72, 0x00, 0x01, 1.416 + // <parm name="AUTHSECRET" value="wwwmmmsecret"/> 1.417 + 0x87, 0x0e, 0x06, 0x03, 0x77, 0x77, 0x77, 0x6d, 1.418 + 0x6d, 0x6d, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 1.419 + 0x00, 0x01, 1.420 + // <parm name="AUTH-ENTITY" value="HA"/> 1.421 + 0x87, 0x4E, 0x06, 0xE1, 0x01, 1.422 + // <parm name="SPI" value="FEDCBA98"/> 1.423 + 0x87, 0x4F, 0x06, 0x03, 0x46, 0x45, 0x44, 0x43, 1.424 + 0x42, 0x41, 0x39, 0x38, 0x00, 0x01, 1.425 + // </characteristic> 1.426 + 0x01, 1.427 + // <characteristic type="VALIDITY"> 1.428 + 0xc6, 0x54, 0x01, 1.429 + // <parm name="COUNTRY" value="228"/> 1.430 + 0x87, 0x12, 0x06, 0x03, 0x32, 0x32, 0x38, 0x00, 1.431 + 0x01, 1.432 + // <parm name="NETWORK" value="001"/> 1.433 + 0x87, 0x13, 0x06, 0x03, 0x30, 0x30, 0x31, 0x00, 1.434 + 0x01, 1.435 + // </characteristic> 1.436 + 0x01, 1.437 + // </characteristic> 1.438 + 0x01, 1.439 + // <characteristic type="ACCESS"> 1.440 + 0xC6, 0x5B, 0x01, 1.441 + // </characteristic> 1.442 + 0x01, 1.443 + // </wap-provisioningdoc> 1.444 + 0x01 1.445 +]); 1.446 + 1.447 +/* 1.448 + * Test data from CHT CP, with code page change 1.449 + */ 1.450 +let wbxml_code_page_data_array = new Uint8Array([ 1.451 + 0x03, 0x0B, 0x6A, 0x00, 0x45, 0xC6, 0x56, 0x01, 1.452 + 0x87, 0x07, 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F, 1.453 + 0x65, 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0x01, 1.454 + 0xC6, 0x00, 0x01, 0x55, 0x01, 0x87, 0x36, 0x00, 1.455 + 0x00, 0x06, 0x03, 0x77, 0x32, 0x00, 0x01, 0x87, 1.456 + 0x00, 0x01, 0x39, 0x00, 0x00, 0x06, 0x03, 0x57, 1.457 + 0x50, 0x52, 0x4F, 0x58, 0x59, 0x00, 0x01, 0x87, 1.458 + 0x07, 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F, 0x65, 1.459 + 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0xC6, 0x00, 1.460 + 0x01, 0x59, 0x01, 0x87, 0x3A, 0x00, 0x00, 0x06, 1.461 + 0x03, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 1.462 + 0x77, 0x61, 0x70, 0x2E, 0x65, 0x6D, 0x6F, 0x6D, 1.463 + 0x65, 0x2E, 0x6E, 0x65, 0x74, 0x2F, 0x00, 0x01, 1.464 + 0x87, 0x07, 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F, 1.465 + 0x65, 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0x87, 1.466 + 0x1C, 0x01, 0x01, 0x01, 0xC6, 0x00, 0x01, 0x55, 1.467 + 0x01, 0x87, 0x36, 0x00, 0x00, 0x06, 0x03, 0x77, 1.468 + 0x34, 0x00, 0x01, 0x87, 0x00, 0x01, 0x39, 0x00, 1.469 + 0x00, 0x06, 0x03, 0x4D, 0x50, 0x52, 0x4F, 0x58, 1.470 + 0x59, 0x00, 0x01, 0x87, 0x00, 0x01, 0x34, 0x00, 1.471 + 0x00, 0x06, 0x03, 0x68, 0x74, 0x74, 0x70, 0x3A, 1.472 + 0x2F, 0x2F, 0x6D, 0x6D, 0x73, 0x3A, 0x38, 0x30, 1.473 + 0x30, 0x32, 0x00, 0x01, 0x01, 0xC6, 0x51, 0x01, 1.474 + 0x87, 0x15, 0x06, 0x03, 0x57, 0x50, 0x52, 0x4F, 1.475 + 0x58, 0x59, 0x00, 0x01, 0x87, 0x07, 0x06, 0x03, 1.476 + 0x43, 0x48, 0x54, 0x5F, 0x65, 0x6D, 0x6F, 0x6D, 1.477 + 0x65, 0x00, 0x01, 0x87, 0x1C, 0x06, 0x03, 0x68, 1.478 + 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x77, 0x61, 1.479 + 0x70, 0x2E, 0x65, 0x6D, 0x6F, 0x6D, 0x65, 0x2E, 1.480 + 0x6E, 0x65, 0x74, 0x2F, 0x00, 0x01, 0xC6, 0x52, 1.481 + 0x01, 0x87, 0x2F, 0x06, 0x03, 0x50, 0x52, 0x4F, 1.482 + 0x58, 0x59, 0x31, 0x00, 0x01, 0x87, 0x20, 0x06, 1.483 + 0x03, 0x31, 0x30, 0x2E, 0x31, 0x2E, 0x31, 0x2E, 1.484 + 0x31, 0x00, 0x01, 0x87, 0x21, 0x06, 0x85, 0x01, 1.485 + 0x87, 0x22, 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F, 1.486 + 0x65, 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0xC6, 1.487 + 0x53, 0x01, 0x87, 0x23, 0x06, 0x03, 0x38, 0x30, 1.488 + 0x38, 0x30, 0x00, 0x01, 0x01, 0x01, 0x01, 0xC6, 1.489 + 0x51, 0x01, 0x87, 0x15, 0x06, 0x03, 0x4D, 0x50, 1.490 + 0x52, 0x4F, 0x58, 0x59, 0x00, 0x01, 0x87, 0x07, 1.491 + 0x06, 0x03, 0x43, 0x48, 0x54, 0x5F, 0x4D, 0x4D, 1.492 + 0x53, 0x00, 0x01, 0xC6, 0x52, 0x01, 0x87, 0x2F, 1.493 + 0x06, 0x03, 0x50, 0x52, 0x4F, 0x58, 0x59, 0x32, 1.494 + 0x00, 0x01, 0x87, 0x20, 0x06, 0x03, 0x31, 0x30, 1.495 + 0x2E, 0x31, 0x2E, 0x31, 0x2E, 0x31, 0x00, 0x01, 1.496 + 0x87, 0x21, 0x06, 0x85, 0x01, 0x87, 0x22, 0x06, 1.497 + 0x03, 0x43, 0x48, 0x54, 0x5F, 0x4D, 0x4D, 0x53, 1.498 + 0x00, 0x01, 0xC6, 0x53, 0x01, 0x87, 0x23, 0x06, 1.499 + 0x03, 0x38, 0x30, 0x38, 0x30, 0x00, 0x01, 0x01, 1.500 + 0x01, 0x01, 0xC6, 0x55, 0x01, 0x87, 0x11, 0x06, 1.501 + 0x03, 0x43, 0x48, 0x54, 0x5F, 0x65, 0x6D, 0x6F, 1.502 + 0x6D, 0x65, 0x00, 0x01, 0x87, 0x07, 0x06, 0x03, 1.503 + 0x43, 0x48, 0x54, 0x5F, 0x65, 0x6D, 0x6F, 0x6D, 1.504 + 0x65, 0x00, 0x01, 0x87, 0x10, 0x06, 0xAB, 0x01, 1.505 + 0x87, 0x08, 0x06, 0x03, 0x65, 0x6D, 0x6F, 0x6D, 1.506 + 0x65, 0x00, 0x01, 0x87, 0x09, 0x06, 0x89, 0x01, 1.507 + 0x01, 0xC6, 0x55, 0x01, 0x87, 0x11, 0x06, 0x03, 1.508 + 0x43, 0x48, 0x54, 0x5F, 0x4D, 0x4D, 0x53, 0x00, 1.509 + 0x01, 0x87, 0x07, 0x06, 0x03, 0x43, 0x48, 0x54, 1.510 + 0x5F, 0x4D, 0x4D, 0x53, 0x00, 0x01, 0x87, 0x10, 1.511 + 0x06, 0xAB, 0x01, 0x87, 0x08, 0x06, 0x03, 0x65, 1.512 + 0x6D, 0x6F, 0x6D, 0x65, 0x00, 0x01, 0x87, 0x09, 1.513 + 0x06, 0x89, 0x01, 0x01, 0x01 1.514 +]); 1.515 + 1.516 +/* 1.517 + * Test data from OMA-TS-WAP_ProvCont-V1_1-20090421-C.pdf, clause 6.1 1.518 + */ 1.519 +let xml_header = 1.520 + "<?xml version=\"1.0\"?>" + 1.521 + "<!DOCTYPE wap-provisioningdoc PUBLIC \"-//WAPFORUM//DTD PROV 1.0//EN\" \"http://www.wapforum.org/DTD/prov.dtd\">"; 1.522 + 1.523 +let xml_body = 1.524 + "<wap-provisioningdoc version=\"1.0\">" + 1.525 + "<characteristic type=\"PXLOGICAL\">" + 1.526 + "<parm name=\"PROXY-ID\" value=\"170.187.51.4\"/>" + 1.527 + "<parm name=\"PROXY-PW\" value=\"proxypasswd\"/>" + 1.528 + "<parm name=\"PPGAUTH-TYPE\" value=\"HTTP-BASIC\"/>" + 1.529 + "<parm name=\"NAME\" value=\"BankMainProxy\"/>" + 1.530 + "<parm name=\"STARTPAGE\" value=\"http://www.bank.com/startpage.wml\"/>" + 1.531 + "<parm name=\"PULLENABLED\" value=\"1\"/>" + 1.532 + "<characteristic type=\"PXAUTHINFO\">" + 1.533 + "<parm name=\"PXAUTH-TYPE\" value=\"HTTP-BASIC\"/>" + 1.534 + "<parm name=\"PXAUTH-ID\" value=\"pxusername\"/>" + 1.535 + "<parm name=\"PXAUTH-PW\" value=\"pxuserpasswd\"/>" + 1.536 + "</characteristic>" + 1.537 + "<characteristic type=\"PXPHYSICAL\">" + 1.538 + "<parm name=\"PHYSICAL-PROXY-ID\" value=\"PROXY 1\"/>" + 1.539 + "<parm name=\"DOMAIN\" value=\"www.bank.com/\"/>" + 1.540 + "<parm name=\"PXADDR\" value=\"170.187.51.3\"/>" + 1.541 + "<parm name=\"PXADDRTYPE\" value=\"IPV4\"/>" + 1.542 + "<parm name=\"PXADDR-FQDN\" value=\"proxy1.operator.com\"/>" + 1.543 + "<parm name=\"TO-NAPID\" value=\"INTERNET\"/>" + 1.544 + "<parm name=\"TO-NAPID\" value=\"NAP1\"/>" + 1.545 + "<characteristic type=\"PORT\">" + 1.546 + "<parm name=\"PORTNBR\" value=\"9203\"/>" + 1.547 + "</characteristic>" + 1.548 + "</characteristic>" + 1.549 + "</characteristic>" + 1.550 + "<characteristic type=\"NAPDEF\">" + 1.551 + "<parm name=\"NAPID\" value=\"NAP1\"/>" + 1.552 + "<parm name=\"BEARER\" value=\"GSM-CSD\"/>" + 1.553 + "<parm name=\"NAME\" value=\"MY ISP CSD\"/>" + 1.554 + "<parm name=\"NAP-ADDRESS\" value=\"+35808124002\"/>" + 1.555 + "<parm name=\"NAP-ADDRTYPE\" value=\"E164\"/>" + 1.556 + "<parm name=\"DNS-ADDR\" value=\"170.187.51.2\"/>" + 1.557 + "<parm name=\"CALLTYPE\" value=\"ANALOG-MODEM\"/>" + 1.558 + "<parm name=\"MAX-NUM-RETRY\" value=\"3\"/>" + 1.559 + "<parm name=\"FIRST-RETRY-TIMEOUT\" value=\"6\"/>" + 1.560 + "<parm name=\"REREG-THRESHOLD\" value=\"30\"/>" + 1.561 + "<parm name=\"T-BIT\"/>" + 1.562 + "<characteristic type=\"NAPAUTHINFO\">" + 1.563 + "<parm name=\"AUTHTYPE\" value=\"PAP\"/>" + 1.564 + "<parm name=\"AUTHNAME\" value=\"wwwmmmuser\"/>" + 1.565 + "<parm name=\"AUTHSECRET\" value=\"wwwmmmsecret\"/>" + 1.566 + "<parm name=\"AUTH-ENTITY\" value=\"HA\"/>" + 1.567 + "<parm name=\"SPI\" value=\"FEDCBA98\"/>" + 1.568 + "</characteristic>" + 1.569 + "<characteristic type=\"VALIDITY\">" + 1.570 + "<parm name=\"COUNTRY\" value=\"228\"/>" + 1.571 + "<parm name=\"NETWORK\" value=\"001\"/>" + 1.572 + "</characteristic>" + 1.573 + "</characteristic>" + 1.574 + "<characteristic type=\"ACCESS\">" + 1.575 + "</characteristic>" + 1.576 + "</wap-provisioningdoc>"; 1.577 + 1.578 +let wbxml_code_page_content = 1.579 + "<wap-provisioningdoc>" + 1.580 + "<characteristic type=\"BOOTSTRAP\">" + 1.581 + "<parm name=\"NAME\" value=\"CHT_emome\"/>" + 1.582 + "</characteristic>" + 1.583 + "<characteristic type=\"APPLICATION\">" + 1.584 + "<parm name=\"APPID\" value=\"w2\"/>" + 1.585 + "<parm name=\"TO-PROXY\" value=\"WPROXY\"/>" + 1.586 + "<parm name=\"NAME\" value=\"CHT_emome\"/>" + 1.587 + "<characteristic type=\"RESOURCE\">" + 1.588 + "<parm name=\"URI\" value=\"http://wap.emome.net/\"/>" + 1.589 + "<parm name=\"NAME\" value=\"CHT_emome\"/>" + 1.590 + "<parm name=\"STARTPAGE\"/>" + 1.591 + "</characteristic>" + 1.592 + "</characteristic>" + 1.593 + "<characteristic type=\"APPLICATION\">" + 1.594 + "<parm name=\"APPID\" value=\"w4\"/>" + 1.595 + "<parm name=\"TO-PROXY\" value=\"MPROXY\"/>" + 1.596 + "<parm name=\"ADDR\" value=\"http://mms:8002\"/>" + 1.597 + "</characteristic>" + 1.598 + "<characteristic type=\"PXLOGICAL\">" + 1.599 + "<parm name=\"PROXY-ID\" value=\"WPROXY\"/>" + 1.600 + "<parm name=\"NAME\" value=\"CHT_emome\"/>" + 1.601 + "<parm name=\"STARTPAGE\" value=\"http://wap.emome.net/\"/>" + 1.602 + "<characteristic type=\"PXPHYSICAL\">" + 1.603 + "<parm name=\"PHYSICAL-PROXY-ID\" value=\"PROXY1\"/>" + 1.604 + "<parm name=\"PXADDR\" value=\"10.1.1.1\"/>" + 1.605 + "<parm name=\"PXADDRTYPE\" value=\"IPV4\"/>" + 1.606 + "<parm name=\"TO-NAPID\" value=\"CHT_emome\"/>" + 1.607 + "<characteristic type=\"PORT\">" + 1.608 + "<parm name=\"PORTNBR\" value=\"8080\"/>" + 1.609 + "</characteristic>" + 1.610 + "</characteristic>" + 1.611 + "</characteristic>" + 1.612 + "<characteristic type=\"PXLOGICAL\">" + 1.613 + "<parm name=\"PROXY-ID\" value=\"MPROXY\"/>" + 1.614 + "<parm name=\"NAME\" value=\"CHT_MMS\"/>" + 1.615 + "<characteristic type=\"PXPHYSICAL\">" + 1.616 + "<parm name=\"PHYSICAL-PROXY-ID\" value=\"PROXY2\"/>" + 1.617 + "<parm name=\"PXADDR\" value=\"10.1.1.1\"/>" + 1.618 + "<parm name=\"PXADDRTYPE\" value=\"IPV4\"/>" + 1.619 + "<parm name=\"TO-NAPID\" value=\"CHT_MMS\"/>" + 1.620 + "<characteristic type=\"PORT\">" + 1.621 + "<parm name=\"PORTNBR\" value=\"8080\"/>" + 1.622 + "</characteristic>" + 1.623 + "</characteristic>" + 1.624 + "</characteristic>" + 1.625 + "<characteristic type=\"NAPDEF\">" + 1.626 + "<parm name=\"NAPID\" value=\"CHT_emome\"/>" + 1.627 + "<parm name=\"NAME\" value=\"CHT_emome\"/>" + 1.628 + "<parm name=\"BEARER\" value=\"GSM-GPRS\"/>" + 1.629 + "<parm name=\"NAP-ADDRESS\" value=\"emome\"/>" + 1.630 + "<parm name=\"NAP-ADDRTYPE\" value=\"APN\"/>" + 1.631 + "</characteristic>" + 1.632 + "<characteristic type=\"NAPDEF\">" + 1.633 + "<parm name=\"NAPID\" value=\"CHT_MMS\"/>" + 1.634 + "<parm name=\"NAME\" value=\"CHT_MMS\"/>" + 1.635 + "<parm name=\"BEARER\" value=\"GSM-GPRS\"/>" + 1.636 + "<parm name=\"NAP-ADDRESS\" value=\"emome\"/>" + 1.637 + "<parm name=\"NAP-ADDRTYPE\" value=\"APN\"/>" + 1.638 + "</characteristic>" + 1.639 + "</wap-provisioningdoc>"; 1.640 + 1.641 +/** 1.642 + * CP in plain text 1.643 + * 1.644 + * Test case from OMA-TS-WAP_ProvCont-V1_1-20090421-C.pdf, clause 6.1 1.645 + */ 1.646 +add_test(function test_cp_parse_plain_text() { 1.647 + test_parser(text_data_array, "text/vnd.wap.connectivity-xml", { 1.648 + contentType: "text/vnd.wap.connectivity-xml", 1.649 + content: xml_header + xml_body 1.650 + }); 1.651 + 1.652 + run_next_test(); 1.653 +}); 1.654 + 1.655 +/** 1.656 + * CP compressed by WBXML 1.657 + * 1.658 + * Test case from OMA-TS-WAP_ProvCont-V1_1-20090421-C.pdf, Appendix C 1.659 + */ 1.660 +add_test(function test_cp_parse_wbxml() { 1.661 + test_parser(wbxml_data_array, "application/vnd.wap.connectivity-wbxml", { 1.662 + contentType: "text/vnd.wap.connectivity-xml", 1.663 + content: xml_body 1.664 + }); 1.665 + 1.666 + run_next_test(); 1.667 +}); 1.668 + 1.669 +/** 1.670 + * CP compressed by WBXML with VENDORCONFIG 1.671 + */ 1.672 +add_test(function test_cp_parse_wbxml() { 1.673 + let wbxml_vendor_config_data_array = new Uint8Array([ 1.674 + 0x03, 0x0b, 0x6a, 0x05, 0x4e, 0x41, 0x50, 0x31, 1.675 + 0x00, 0xC5, 0x46, 0x01, 0xc6, 0x57, 0x01, 0x01 1.676 + ]); 1.677 + 1.678 + test_parser(wbxml_vendor_config_data_array, "application/vnd.wap.connectivity-wbxml", { 1.679 + contentType: "application/vnd.wap.connectivity-wbxml", 1.680 + content: wbxml_vendor_config_data_array 1.681 + }); 1.682 + 1.683 + run_next_test(); 1.684 +}); 1.685 + 1.686 +/** 1.687 + * CP compressed by WBXML with code page switch 1.688 + */ 1.689 +add_test(function test_cp_parse_wbxml_code_page() { 1.690 + test_parser(wbxml_code_page_data_array, "application/vnd.wap.connectivity-wbxml", { 1.691 + contentType: "text/vnd.wap.connectivity-xml", 1.692 + content: wbxml_code_page_content 1.693 + }); 1.694 + 1.695 + run_next_test(); 1.696 +}); 1.697 + 1.698 +/** 1.699 + * HMAC test 1.700 + */ 1.701 +add_test(function test_cp_hmac_userpin() { 1.702 + test_hmac(wbxml_code_page_data_array, 1.703 + "AA2DC41FC48AEEF3FED7351B1EE704461A8894D4", 1.704 + "0000", 1.705 + { 1.706 + checked: true, 1.707 + pass: true 1.708 + }); 1.709 + 1.710 + run_next_test(); 1.711 +}); 1.712 + 1.713 +add_test(function test_cp_hmac_networkpin() { 1.714 + let wbxml_empty_data_array = new Uint8Array([ 1.715 + 0x03, 0x0b, 0x6a, 0x00, 0x45, 0x01 1.716 + ]); 1.717 + 1.718 + test_hmac(wbxml_empty_data_array, 1.719 + "1AF545FE2823DC9347064450F90FF1BBF957E146", 1.720 + CP.Authenticator.formatImsi("466923103145252"), 1.721 + { 1.722 + checked: true, 1.723 + pass: true 1.724 + }); 1.725 + 1.726 + run_next_test(); 1.727 +});