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.

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

mercurial