1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/security/nss/cmd/certcgi/index.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,789 @@ 1.4 +<HTML> <!-- -*- Mode: Java; tab-width: 8 -*- --> 1.5 +<!-- This Source Code Form is subject to the terms of the Mozilla Public 1.6 + - License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> 1.8 +<HEAD> 1.9 +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 1.10 +<SCRIPT LANGUAGE="JavaScript1.2"> 1.11 + 1.12 +script_url = 'http://interzone.mcom.com/cgi-bin/certomatic/bin/certcgi.cgi' 1.13 + 1.14 +ext_page_ver1 = 1.15 + make_page_intro('Version 1 extensions', "#FFFFFF") + 1.16 + '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="ext1">' + 1.17 + 'Version 1 X.509 certs do not support extensions' + 1.18 + '</IFRAME>' + 1.19 + '</body></html>'; 1.20 + 1.21 +num_ca = 0; 1.22 + 1.23 +your_certificate_index_label = 'Your Certificate'; 1.24 +netscape_extensions_index_label = 'Netscape X.509 Extensions'; 1.25 +standard_extensions_index_label = 'Standard X.509 Extensions'; 1.26 +certifying_authorities_index_label = 'Certifying Authorities'; 1.27 +add_sub_alt_name_index_label = 'Add Subject Alternative Name'; 1.28 + 1.29 +index_list = 1.30 + '0, your_certificate_index_label,' + 1.31 + '0, netscape_extensions_index_label,' + 1.32 + '0, standard_extensions_index_label,' + 1.33 + '0, certifying_authorities_index_label'; 1.34 + 1.35 +add_index_list = ''; 1.36 + 1.37 +ver = 3 1.38 + 1.39 +max_pages = 13; 1.40 +cur_page = 1; 1.41 + 1.42 +ext_page_array = new Array(max_pages); 1.43 + 1.44 +index_label = 'Options'; 1.45 + 1.46 +var main_page = 1.47 + make_page_intro('Your Key', "#FFFFFF") + 1.48 + '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="main" SRC="main.html">' + 1.49 + '</IFRAME>' + 1.50 + '</body></html>' ; 1.51 + 1.52 +function setSubAltNameType(form) 1.53 +{ 1.54 + with(form) { 1.55 + if (SubAltNameRadio[0].checked) { 1.56 + return true; 1.57 + } 1.58 + if (SubAltNameRadio[3].checked || SubAltNameRadio[5].checked) { 1.59 + SubAltNameDataType.checked = true; 1.60 + return true; 1.61 + } 1.62 + if (SubAltNameRadio[1].checked || SubAltNameRadio[2].checked || 1.63 + SubAltNameRadio[4].checked || SubAltNameRadio[6].checked || 1.64 + SubAltNameRadio[7].checked || SubAltNameRadio[8].checked) { 1.65 + SubAltNameDataType.checked = false; 1.66 + return true; 1.67 + } 1.68 + } 1.69 + return true; 1.70 +} 1.71 + 1.72 +function setIssuerAltNameType(form) 1.73 +{ 1.74 + with(form) { 1.75 + if (IssuerAltNameRadio[0].checked) { 1.76 + return true; 1.77 + } 1.78 + if (IssuerAltNameRadio[3].checked || IssuerAltNameRadio[5].checked) { 1.79 + IssuerAltNameDataType.checked = true; 1.80 + return true; 1.81 + } 1.82 + if (IssuerAltNameRadio[1].checked || IssuerAltNameRadio[2].checked || 1.83 + IssuerAltNameRadio[4].checked || IssuerAltNameRadio[6].checked || 1.84 + IssuerAltNameRadio[7].checked || IssuerAltNameRadio[8].checked) { 1.85 + IssuerAltNameDataType.checked = false; 1.86 + return true; 1.87 + } 1.88 + } 1.89 + return true; 1.90 +} 1.91 + 1.92 + 1.93 +function setNameConstraintNameType(form) 1.94 +{ 1.95 + with(form) { 1.96 + if (NameConstraintRadio[0].checked) { 1.97 + return true; 1.98 + } 1.99 + if (NameConstraintRadio[3].checked || NameConstraintRadio[5].checked) { 1.100 + NameConstraintNameDataType.checked = true; 1.101 + return true; 1.102 + } 1.103 + if (NameConstraintRadio[1].checked || NameConstraintRadio[2].checked || 1.104 + NameConstraintRadio[4].checked || NameConstraintRadio[6].checked || 1.105 + NameConstraintRadio[7].checked || NameConstraintRadio[8].checked) { 1.106 + NameConstraintNameDataType.checked = false; 1.107 + return true; 1.108 + } 1.109 + } 1.110 + return true; 1.111 +} 1.112 + 1.113 + 1.114 +function addSubAltName(form) 1.115 +{ 1.116 + with(form) { 1.117 + var len = SubAltNameSelect.length; 1.118 + var value; 1.119 + var i = 0; 1.120 + while(!(i == (SubAltNameRadio.length - 1)) & 1.121 + !(SubAltNameRadio[i].checked == true)) { 1.122 + i++; 1.123 + } 1.124 + if (i != 0) { 1.125 + value = SubAltNameText.value + " - " + (i + 1); 1.126 + } else { 1.127 + value = SubAltNameText.value + " - " + 1.128 + SubAltNameOtherNameOID.value + " - "; 1.129 + if (SubAltNameDataType.checked) { 1.130 + value += "1 - "; 1.131 + } else { 1.132 + value += "0 - "; 1.133 + } 1.134 + value += (i + 1); 1.135 + if (SubAltNameOtherNameOID.value == "") { 1.136 + alert("Other names must include an OID"); 1.137 + return false; 1.138 + } 1.139 + } 1.140 + 1.141 + if ((SubAltNameText.value == "") | (SubAltNameRadio[i].checked != true)) { 1.142 + alert("Alternative Names must include values for name and name type."); 1.143 + } else { 1.144 + SubAltNameSelect.options[len] = new Option(value, value); 1.145 + } 1.146 + } 1.147 + return true; 1.148 +} 1.149 + 1.150 +function deleteSubAltName(form) 1.151 +{ 1.152 + with(form) { 1.153 + while (SubAltNameSelect.selectedIndex >= 0) { 1.154 + SubAltNameSelect[SubAltNameSelect.selectedIndex] = null; 1.155 + } 1.156 + } 1.157 +} 1.158 + 1.159 +function addIssuerAltName(form) 1.160 +{ 1.161 + with(form) 1.162 + { 1.163 + var len = IssuerAltNameSelect.length; 1.164 + var value; 1.165 + var i = 0; 1.166 + 1.167 + while(!(i == (IssuerAltNameRadio.length -1)) & 1.168 + !(IssuerAltNameRadio[i].checked == true)) { 1.169 + i++; 1.170 + } 1.171 + if (i != 0) { 1.172 + value = IssuerAltNameText.value + " - " + (i + 1); 1.173 + } else { 1.174 + value = IssuerAltNameText.value + " - " + 1.175 + IssuerAltNameOtherNameOID.value + " - "; 1.176 + if (IssuerAltNameDataType.checked) { 1.177 + value += "1 - "; 1.178 + } else { 1.179 + value += "0 - "; 1.180 + } 1.181 + value += (i + 1); 1.182 + if (IssuerAltNameOtherNameOID.value == "") { 1.183 + alert("Other names must include an OID"); 1.184 + return false; 1.185 + } 1.186 + } 1.187 + if ((IssuerAltNameText.value == "") | 1.188 + (IssuerAltNameRadio[i].checked != true)) { 1.189 + alert("Alternative Names must include values for name and name type.") 1.190 + } else { 1.191 + IssuerAltNameSelect.options[len] = new Option(value, value); 1.192 + } 1.193 + } 1.194 + return true; 1.195 +} 1.196 + 1.197 +function deleteIssuerAltName(form) 1.198 +{ 1.199 + with(form) { 1.200 + while (IssuerAltNameSelect.selectedIndex >= 0) { 1.201 + IssuerAltNameSelect[IssuerAltNameSelect.selectedIndex] = null; 1.202 + } 1.203 + } 1.204 +} 1.205 + 1.206 + 1.207 + 1.208 +function addNameConstraint(form) 1.209 +{ 1.210 + with(form) { 1.211 + var len = NameConstraintSelect.length; 1.212 + var value; 1.213 + var i = 0; 1.214 + var min = NameConstraintMin.value; 1.215 + var max = NameConstraintMax.value; 1.216 + 1.217 + while(!(i == (NameConstraintRadio.length - 1) ) & 1.218 + !(NameConstraintRadio[i].checked == true)) { 1.219 + i++; 1.220 + } 1.221 + value = NameConstraintText.value + " - "; 1.222 + if (i == 0) { 1.223 + value += NameConstraintOtherNameOID.value + " - "; 1.224 + if (NameConstraintNameDataType.checked) { 1.225 + value += "1 - "; 1.226 + } else { 1.227 + value += "0 - "; 1.228 + } 1.229 + if (NameConstraintOtherNameOID.value == "") { 1.230 + alert("Other names must include an OID"); 1.231 + return false; 1.232 + } 1.233 + } 1.234 + value += (i + 1) + " - "; 1.235 + if (NameConstraintTypeRadio[0].checked == true) { 1.236 + value += "p - "; 1.237 + } else { 1.238 + value += "e - "; 1.239 + } 1.240 + value += min + " - " + max; 1.241 + if ((min == "") | (NameConstraintText.value == "") | 1.242 + (NameConstraintRadio[i].checked != true)) { 1.243 + alert("Name Constraints must include values for minimum, name, and name type.") 1.244 + } else { 1.245 + NameConstraintSelect.options[len] = new Option(value, value); 1.246 + } 1.247 + } 1.248 + return true; 1.249 +} 1.250 + 1.251 +function deleteNameConstraint(form) 1.252 +{ 1.253 + with(form) { 1.254 + while (NameConstraintSelect.selectedIndex >= 0) { 1.255 + NameConstraintSelect[NameConstraintSelect.selectedIndex] = null; 1.256 + } 1.257 + } 1.258 +} 1.259 + 1.260 + 1.261 +function submit_it() 1.262 +{ 1.263 + save_cur_page(cur_page); 1.264 + 1.265 + var ver1 = (ver == 1); 1.266 + var ver3 = (ver == 3); 1.267 + var array_string; 1.268 + var serial = ext_page_array[0][10][0]; 1.269 + var serial_number = ext_page_array[0][12][0]; 1.270 + var manValidity = ext_page_array[0][19][0]; 1.271 + var notBefore = ext_page_array[0][20][0]; 1.272 + var notAfter = ext_page_array[0][21][0]; 1.273 + var subject = ext_page_array[0][22][0]; 1.274 + 1.275 + if (subject == "") { 1.276 + alert("The DN field must contain some data"); 1.277 + return false; 1.278 + } 1.279 + if (!serial & serial_number == "") { 1.280 + alert("No serial number specified"); 1.281 + return false; 1.282 + } 1.283 + if (ext_page_array[0][15][0]) { 1.284 + var keygen = "<keygen name=\"key\" challenge=\"foo\">"; 1.285 + } else { 1.286 + switch (ext_page_array[0][17][0]) { 1.287 + case 2: 1.288 + var keygen = "<keygen keytype=\"dsa\" pqg=\"MIGdAkEAjfKklEkidqo9JXWbsGhpy+rA2Dr7jQz3y7gyTw14guXQdi/FtyEOr8Lprawyq3qsSWk9+/g3JMLsBzbuMcgCkQIVAMdzIYxzfsjumTtPLe0w9I7azpFfAkEAYm0CeDnqChNBMWOlW0y1ACmdVSKVbO/LO/8Q85nOLC5xy53l+iS6v1jlt5UhklycxC6fb0ZLCIzFcq9T5teIAg==\" name=\"key\" challenge=\"foo\">"; 1.289 + break; 1.290 + case 1: 1.291 + var keygen = "<keygen keytype=\"dsa\" pqg=\"MIHaAmDCboVgX0+6pEeMlbwsasWDVBcJNHPKMzkq9kbCRK2U3k+tE15n+Dc2g3ZjDYr1um51e2iLC34/BwAAAAAAAAAAAAAAAAAAAAAAAAABbBhnlFN5Djmt0Mk8cdEBY5H8iPMCFMhUnFtbpjn3EyfH2DjVg3ALh7FtAmA2zWzhpeCwvOTjYnQorlXiv0WcnSiWmaC79CRYkFt5i+UEfRxwP1eNGJBVB1T+CPW6JGd4WhgsqtSf53pn5DEtv++O7lNfXyOhWhb3KaWHYIx8fuAXtioIWkWmpfEIVZA=\" name=\"key\" challenge=\"foo\">"; 1.292 + break; 1.293 + case 0: 1.294 + var keygen = "<keygen keytype=\"dsa\" pqg=\"MIIBHAKBgId8SiiWrcdua5zbsBhPkKfFcnHBG7T/bQla7c6OixGjjmSSuq2fJLvMKa579CaxHxLZzZZXIHmAk9poRgWl2GUUkCJ68XSum8OQzDPXPsofcEdeANjw3mIAAAAAAAAAAAAAAAAAAAAAAAAIE+MkW5hguLIQqWvEVi9dMpbNu6OZAhTIA+y3TgyiwA0D8pt686ofaL1IOQKBgAiZQC6UCXztr2iXxJrAC+51gN5oX/R9Thilln9RGegsWnHrdxUOpcm5vAWp1LU8TOXtujE8kqkm3UxIRhUWQORe9IxLANAXmZJqkw9FEVHkxj6Cy9detwT2MyBzSwS6avsf7aLisgHmI/IHSeapJsQ3NQa3rikb6zRiqIV+TVa6\" name=\"key\" challenge=\"foo\">"; 1.295 + break; 1.296 + } 1.297 + } 1.298 + array_string = build_array_string(); 1.299 + hiddens = "<input type=\"hidden\" name=\"subject\" value=\'" + subject + "\'> \n" + 1.300 + "<input type=\"hidden\" name=\"serial-auto\" value=\"" + serial + "\"> \n" + 1.301 + "<input type=\"hidden\" name=\"serial_value\" value=\"" + serial_number + "\"> \n" + 1.302 + "<input type=\"hidden\" name=\"ver-1\" value=\"" + ver1 + "\"> \n" + 1.303 + "<input type=\"hidden\" name=\"ver-3\" value=\"" + ver3 + "\"> \n" + 1.304 + "<input type=\"hidden\" name=\"notBefore\" value=\"" + notBefore + "\"> \n" + 1.305 + "<input type=\"hidden\" name=\"notAfter\" value=\"" + notAfter + "\"> \n" + 1.306 + "<input type=\"hidden\" name=\"manValidity\" value=\"" + manValidity + "\"> \n" + 1.307 + array_string; 1.308 + 1.309 + var good_submit_page = 1.310 + '<html>' + 1.311 + '<BODY TEXT="#000000" LINK="#000000" VLINK="#000000" ALINK="#FF0000" BGCOLOR="#FFFFFF">' + 1.312 + '<form method="post" action="' + script_url + '">' + 1.313 + 'Select size for your key:' + keygen + '</p>' + 1.314 + '<input type="submit"></p>' + 1.315 + hiddens + 1.316 + '</form>\n' + 1.317 + '</body>\n' + 1.318 + '</html>\n'; 1.319 + 1.320 + window.frames['right'].document.write(good_submit_page); 1.321 + window.frames['right'].document.close(); 1.322 + cur_page = max_pages + 1; 1.323 + make_left_frame(window); 1.324 + return false; 1.325 +} 1.326 + 1.327 + 1.328 + 1.329 +function build_array_string() 1.330 +{ 1.331 + var pg; 1.332 + var array_string = ''; 1.333 + var pages; 1.334 + 1.335 + if ((ext_page_array[3][4][0] > 0) && ext_page_array[3][3][0]) { 1.336 + pages = 4 + parseInt(ext_page_array[3][4][0]); 1.337 + } else { 1.338 + pages = 4; 1.339 + } 1.340 + for (pg = 1; pg < pages; pg++) { 1.341 + if ((pg > 1 || (ver == 3)) && (ext_page_array[pg].length > 1)) { 1.342 + if (pg < 4) { 1.343 + for (i = 0; i < ext_page_array[pg].length; i++) { 1.344 + if (ext_page_array[pg][i][3].indexOf("radio") == -1) { 1.345 + if (ext_page_array[pg][i][3].indexOf("multiple") == -1) { 1.346 + array_string += '<input type=\"hidden\" name=\"' + 1.347 + ext_page_array[pg][i][1] + '\" value=\'' + 1.348 + ext_page_array[pg][i][0] + '\'> \n'; 1.349 + } else { 1.350 + for (k = 0; k < ext_page_array[pg][i][0].length; k++) { 1.351 + array_string += '<input type=\"hidden\" name=\"' + 1.352 + ext_page_array[pg][i][1] + k + '\" value=\'' + 1.353 + ext_page_array[pg][i][0][k] + '\'> \n'; 1.354 + } 1.355 + } 1.356 + } else { 1.357 + array_string += '<input type=\"hidden\" name=\"' + 1.358 + ext_page_array[pg][i][1] + '-' + 1.359 + ext_page_array[pg][i][2] + '\" value=\'' + 1.360 + ext_page_array[pg][i][0] + '\'> \n'; 1.361 + } 1.362 + } 1.363 + } else { 1.364 + for (i = 0; i < ext_page_array[pg].length; i++) { 1.365 + if (ext_page_array[pg][i][3].indexOf("radio") == -1) { 1.366 + if (ext_page_array[pg][i][3].indexOf("multiple") == -1) { 1.367 + array_string += '<input type=\"hidden\" name=\"' + 1.368 + 'CA#' + (pg - 3) + '-' + 1.369 + ext_page_array[pg][i][1] + '\" value=\'' + 1.370 + ext_page_array[pg][i][0] +'\'> \n'; 1.371 + } else { 1.372 + for (k = 0; k < ext_page_array[pg][i][0].length; k++) { 1.373 + array_string += '<input type=\"hidden\" name=\"' + 1.374 + 'CA#' + (pg - 3) + '-' + 1.375 + ext_page_array[pg][i][1] + k + '\" value=\'' + 1.376 + ext_page_array[pg][i][0][k] + '\'> \n'; 1.377 + } 1.378 + } 1.379 + } else { 1.380 + array_string += '<input type=\"hidden\" name=\"' + 1.381 + 'CA#' + (pg - 3) + '-' + 1.382 + ext_page_array[pg][i][1] + '-' + 1.383 + ext_page_array[pg][i][2] + '\" value=\'' + 1.384 + ext_page_array[pg][i][0] + '\'> \n'; 1.385 + } 1.386 + } 1.387 + } 1.388 + } 1.389 + } 1.390 + return array_string; 1.391 +} 1.392 + 1.393 + 1.394 + 1.395 +function init_ext_page_array() 1.396 +{ 1.397 + for (i = 0; i < max_pages; i++) { 1.398 + ext_page_array[i] = ''; 1.399 + } 1.400 +} 1.401 + 1.402 +function ca_num_change(n,ca_form) 1.403 +{ 1.404 + with(ca_form) { 1.405 + n = parseInt(n,10); 1.406 + if (caChoiceradio[2].checked) { 1.407 + if (n) { 1.408 + update_left_frame(n); 1.409 + } else { 1.410 + update_left_frame(0); 1.411 + } 1.412 + } 1.413 + } 1.414 +} 1.415 + 1.416 +function choice_change(ca_form) 1.417 +{ 1.418 + with(ca_form) { 1.419 + if (caChoiceradio[2].checked) { 1.420 + ca_num_change(manCAs.value,ca_form); 1.421 + } else { 1.422 + update_left_frame(0); 1.423 + } 1.424 + } 1.425 +} 1.426 + 1.427 +function update_left_frame(n) 1.428 +{ 1.429 + var add_string = ''; 1.430 + for (var i = 0; i < n; i++) { 1.431 + var j = i + 1; 1.432 + add_string = add_string + ',1, \'CA #' + j + '\''; 1.433 + } 1.434 + top.add_index_list = add_string; 1.435 + num_ca = n; 1.436 + make_left_frame(window); 1.437 +} 1.438 + 1.439 +function set_ver1() 1.440 +// redraws the extensions page for version 1 certificates 1.441 +{ 1.442 + ver = 1 1.443 + if (cur_page == 2 || cur_page == 3) { 1.444 + switch_right_frame(window, cur_page, cur_page); 1.445 + } 1.446 +} 1.447 + 1.448 + 1.449 +function set_ver3() 1.450 +// redraws the extensions page for version 3 certificates 1.451 +{ 1.452 + ver = 3 1.453 + if (cur_page == 2) { 1.454 + switch_right_frame(window, 0, 2); 1.455 + } else if (cur_page == 3) { 1.456 + switch_right_frame(window, 0, 3); 1.457 + } 1.458 +} 1.459 + 1.460 +function reset_subject(marker, value, form) 1.461 +// Updates the subject field from a subordinate field 1.462 +{ 1.463 + with(form) { 1.464 + var field_sep = '", '; 1.465 + var begin_index = subject.value.indexOf(marker); 1.466 + if (begin_index != 0 && subject.value[begin_index - 1] != ' ') { 1.467 + begin_index = subject.value.indexOf(marker, begin_index +1); 1.468 + } 1.469 + var end_index = subject.value.indexOf(field_sep, begin_index); 1.470 + if (begin_index > -1) { // is it a delete/change? 1.471 + if (end_index == -1) { // is it the last one (includes only one)? 1.472 + if (value.length > 0) { // do I have to change it? 1.473 + if (begin_index == 0) { // is is the only one? 1.474 + subject.value = marker + '"' + value + '"'; 1.475 + } else { // it is the last of many 1.476 + subject.value = subject.value.substring(0,begin_index) + 1.477 + marker + '"' + value + '"'; 1.478 + } 1.479 + } else { // must be a delete 1.480 + if (begin_index == 0) { // is it the only one? 1.481 + begin_index += 2; 1.482 + } 1.483 + subject.value = subject.value.substring(0,(begin_index - 2)); 1.484 + } 1.485 + } else { // it is the first of many or a middle one 1.486 + if (value.length >0) { // do I have to change it? 1.487 + subject.value = 1.488 + subject.value.substring(0,(begin_index + marker.length + 1)) + 1.489 + value + subject.value.substring(end_index,subject.length); 1.490 + } else { // it is a delete 1.491 + subject.value = subject.value.substring(0,begin_index) + 1.492 + subject.value.substring((end_index + 3),subject.length); 1.493 + } 1.494 + } 1.495 + } else { // It is either an insert or a do nothing 1.496 + if (value.length > 0) { // is it an insert? 1.497 + if (subject.value.length == 0) { // is subject currently empty? 1.498 + subject.value = marker + '"' + value + '"'; 1.499 + } else { 1.500 + subject.value = subject.value + ', ' + marker + '"' + value + '"'; 1.501 + } 1.502 + } 1.503 + } 1.504 + } 1.505 +} 1.506 + 1.507 + 1.508 + 1.509 +function reset_subjectFields(form) 1.510 +// updates all the subordinate fields from the subject field of a form 1.511 +// **** move the strings to global variables, to make maintentance easier **** 1.512 +{ 1.513 + 1.514 + update_subject_Field(form, 'CN=\"', form.name); 1.515 + update_subject_Field(form, 'MAIL=\"', form.email); 1.516 + update_subject_Field(form, 'O=\"', form.org); 1.517 + update_subject_Field(form, 'C=\"', form.country); 1.518 + update_subject_Field(form, ' L=\"', form.loc); 1.519 + update_subject_Field(form, 'ST=\"', form.state); 1.520 + update_subject_Field(form, 'E=\"', form.email); 1.521 + update_subject_Field(form, 'OU=\"', form.org_unit); 1.522 + update_subject_Field(form, 'UID=\"', form.uid); 1.523 +} 1.524 + 1.525 +function update_subject_Field(form, marker, update_field) 1.526 +//updates a single subordinate field from the subject field of a form 1.527 +// *** need to deal with the two types of e-mail addresses ************** 1.528 +{ 1.529 + with(form) { 1.530 + var field_sep = '", '; 1.531 + var begin_index = subject.value.indexOf(marker) + marker.length; 1.532 + var end_index = subject.value.indexOf(field_sep, begin_index); 1.533 + if (end_index == -1) { 1.534 + end_index = subject.value.indexOf('"',begin_index); 1.535 + } 1.536 + if (begin_index != (-1 + marker.length) ) { 1.537 + update_field.value = subject.value.substring(begin_index, end_index); 1.538 + } else { 1.539 + update_field.value = ''; 1.540 + } 1.541 + } 1.542 +} 1.543 + 1.544 + 1.545 +function switch_mail(form) 1.546 +// **** Do I want to delete the other type of e-mail address ? ************ 1.547 +{ 1.548 + if (form.email_type[0].checked) { 1.549 + var del = 'E='; 1.550 + var ins = 'MAIL='; 1.551 + } else { 1.552 + var del = 'MAIL='; 1.553 + var ins = 'E='; 1.554 + } 1.555 + reset_subject(del, '', form); 1.556 + reset_subject(ins, form.email.value, form); 1.557 +} 1.558 + 1.559 +function make_page_intro(title, bgcolor) 1.560 +{ 1.561 + var style = '<STYLE TYPE="text/css">BODY{' + 1.562 + 'font-family: Geneva,MS Sans Serif,Arial,Lucida,Helvetica,sans-serif;' + 1.563 + 'font-size: 10pt;' + 1.564 + '}' + 1.565 + 'TD{' + 1.566 + 'font-family: Geneva,MS Sans Serif,Arial,Lucida,Helvetica,sans-serif;' + 1.567 + 'font-size: 10pt;}' + 1.568 + '</STYLE>'; 1.569 + 1.570 + if (bgcolor == null) { bgcolor = "#C0C0C0"; } 1.571 + return '<HTML><HEAD>' + 1.572 + '<TITLE>' + title + '</TITLE>' + 1.573 + '</HEAD>' + 1.574 + '<BODY TEXT="#000000" LINK="#000000" VLINK="#000000" ALINK="#FF0000" ' + 1.575 + 'BGCOLOR="' + bgcolor + '">'; 1.576 +} 1.577 + 1.578 + 1.579 +function make_left_frame(window) 1.580 +{ 1.581 + with (window.frames['index']) { 1.582 + eval ('index_string = make_left_frame_page(cur_page, ' 1.583 + + index_list + add_index_list + ' )'); 1.584 + fool1 = make_page_intro(index_label, "#FFFFFF") + 1.585 + index_string + '</BODY></HTML>'; 1.586 + document.write(fool1); 1.587 + document.close(); 1.588 + } 1.589 +} 1.590 + 1.591 + 1.592 +function save_cur_page(page_number) 1.593 +{ 1.594 + var len; 1.595 + var pg = page_number - 1; 1.596 + if (window.frames['right'].document.forms.length != 0) { 1.597 + with (window.frames['right'].document) { 1.598 + if ((page_number != 2 && page_number != 3 && page_number <= max_pages) || 1.599 + ver == 3) { 1.600 + ext_page_array[pg] = new Array(forms[0].elements.length); 1.601 + for (i = 0; i < forms[0].elements.length; i++) { 1.602 + ext_page_array[pg][i] = new Array(4); 1.603 + switch (forms[0].elements[i].type) { 1.604 + case 'radio': 1.605 + case 'checkbox': 1.606 + ext_page_array[pg][i][0] = forms[0].elements[i].checked; 1.607 + break; 1.608 + case 'select-one': 1.609 + ext_page_array[pg][i][0] = forms[0].elements[i].selectedIndex; 1.610 + break; 1.611 + case 'select-multiple': 1.612 + len = forms[0].elements[i].options.length; 1.613 + ext_page_array[pg][i][0] = new Array(len); 1.614 + for(k = 0; k < len; k++) { 1.615 + ext_page_array[pg][i][0][k] = forms[0].elements[i].options[k].value; 1.616 + } 1.617 + break; 1.618 + default: 1.619 + ext_page_array[pg][i][0] = forms[0].elements[i].value; 1.620 + } 1.621 + ext_page_array[pg][i][1] = forms[0].elements[i].name; 1.622 + ext_page_array[pg][i][2] = forms[0].elements[i].value; 1.623 + ext_page_array[pg][i][3] = forms[0].elements[i].type; 1.624 + } 1.625 + } 1.626 + } 1.627 + } 1.628 +} 1.629 + 1.630 +function reload_form(page_number) 1.631 +{ 1.632 + var j = page_number - 1; 1.633 + with (window.frames['right'].document) { 1.634 + if (((page_number < 2 || page_number > 3) || ver == 3) 1.635 + && page_number != 0 && (ext_page_array[j].length > 1)) { 1.636 + for (i = 0; i < ext_page_array[j].length; i++) { 1.637 + switch (forms[0].elements[i].type) { 1.638 + case 'radio': case 'checkbox': 1.639 + forms[0].elements[i].checked = ext_page_array[j][i][0]; 1.640 + break; 1.641 + case 'select-one': 1.642 + forms[0].elements[i].selectedIndex = ext_page_array[j][i][0]; 1.643 + break; 1.644 + case 'select-multiple': 1.645 + for (k = 0; k < ext_page_array[j][i][0].length; k++) { 1.646 + forms[0].elements[i].options[k] = 1.647 + new Option(ext_page_array[j][i][0][k], 1.648 + ext_page_array[j][i][0][k]); 1.649 + } 1.650 + break; 1.651 + default: 1.652 + forms[0].elements[i].value = ext_page_array[j][i][0]; 1.653 + } 1.654 + } 1.655 + } 1.656 + } 1.657 +} 1.658 + 1.659 +function switch_right_frame(top_window, old_pane, new_pane) 1.660 +{ 1.661 + var ext_page_stnd = 1.662 + make_page_intro(standard_extensions_index_label, "#FFFFFF") + 1.663 + '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="ext" ' + 1.664 + 'SRC="stnd_ext_form.html">' + 1.665 + '</IFRAME></body></html>'; 1.666 + 1.667 + var ext_page_nscp = 1.668 + make_page_intro(netscape_extensions_index_label, "#FFFFFF") + 1.669 + '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="ext" ' + 1.670 + 'SRC="nscp_ext_form.html">' + 1.671 + '</IFRAME></body></html>'; 1.672 + 1.673 + var ext_page_ca = 1.674 + make_page_intro(certifying_authorities_index_label, "#FFFFFF") + 1.675 + '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="ext" ' + 1.676 + 'SRC="ca.html">' + 1.677 + '</IFRAME></body</html>'; 1.678 + 1.679 + var ext_page_ca_exp = 1.680 + make_page_intro('Certifying Authority Details', "#FFFFFF") + 1.681 + '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="ext" ' + 1.682 + 'SRC="ca_form.html">' + 1.683 + '</IFRAME></body></html>'; 1.684 + 1.685 + 1.686 + if (old_pane > 0 && cur_page <= max_pages) { 1.687 + save_cur_page(old_pane); 1.688 + } 1.689 + cur_page = new_pane; 1.690 + make_left_frame(top_window); 1.691 + if (new_pane == 2 || new_pane == 3) { 1.692 + if (ver == 1) { 1.693 + frames['right'].document.write(ext_page_ver1); 1.694 + frames['right'].document.close(); 1.695 + } else if (new_pane == 2) { 1.696 + frames['right'].document.write(ext_page_nscp); 1.697 + frames['right'].document.close(); 1.698 + reload_form(new_pane); 1.699 + } else { 1.700 + frames['right'].document.write(ext_page_stnd); 1.701 + frames['right'].document.close(); 1.702 + reload_form(new_pane); 1.703 + } 1.704 + } else if (new_pane == 4) { 1.705 + frames['right'].document.write(ext_page_ca); 1.706 + frames['right'].document.close(); 1.707 + reload_form(new_pane); 1.708 + } else if (new_pane == 1) { 1.709 + frames['right'].document.write(main_page); 1.710 + frames['right'].document.close(); 1.711 + reload_form(new_pane); 1.712 + } else { 1.713 + frames['right'].document.write(ext_page_ca_exp); 1.714 + frames['right'].document.close(); 1.715 + reload_form(new_pane); 1.716 + } 1.717 +} 1.718 + 1.719 +function make_left_frame_page(selected) 1.720 +{ 1.721 + var n_strings = ( make_left_frame_page.arguments.length - 1 ) / 2; 1.722 + var table_background; 1.723 + var command; 1.724 + var indent; 1.725 + var label; 1.726 + var ret_string = ""; 1.727 + 1.728 + ret_string += '<TABLE CELLSPACING=4>'; 1.729 + for ( var i = 1; i <= n_strings; i++ ) { 1.730 + if ( i == selected ) { 1.731 + table_background = 'BGCOLOR=#BBCCBB'; 1.732 + } else { 1.733 + table_background = ''; 1.734 + } 1.735 + 1.736 + indent = make_left_frame_page.arguments[(i*2) - 1]; 1.737 + label = make_left_frame_page.arguments[(i*2)]; 1.738 + 1.739 + if ( indent == 0 ) { 1.740 + ret_string += ('<TR><TD COLSPAN=2 ' + table_background + '>'); 1.741 + } else { 1.742 + ret_string += ('<TR><TD> </TD><TD ' + table_background + '>'); 1.743 + } 1.744 + 1.745 + command = "'parent.switch_right_frame(parent," + selected + "," + i + ")'"; 1.746 + ret_string += ('<A HREF="javascript:void setTimeout(' + command + ',0)">'); 1.747 + if ( indent == 0 ) { ret_string += "<B>"; } 1.748 + ret_string += label; 1.749 + if ( indent == 0 ) { ret_string += "</B>"; } 1.750 + ret_string += '</A></TD></TR>'; 1.751 + } 1.752 + if (selected == (max_pages + 1)) { 1.753 + table_background = 'BGCOLOR=#BBCCBB'; 1.754 + } else { 1.755 + table_background = ''; 1.756 + } 1.757 + ret_string += 1.758 + '<TR><TD COLSPAN=2 ' + table_background + 1.759 + '><b><A HREF="javascript:void setTimeout(\'top.submit_it()\', 0)">Finish</A></b>' + 1.760 + '</TD></TR>' + 1.761 + '<input type="submit"></form>' + 1.762 + '</TABLE>'; 1.763 + return(ret_string); 1.764 +} 1.765 + 1.766 + 1.767 +function make_page(window) 1.768 +// Draws the initial page setup 1.769 +{ 1.770 + selected = cur_page 1.771 + init_ext_page_array() 1.772 + 1.773 + with (window.frames['right']) { 1.774 + location="main.html"; 1.775 +// document.write(main_page); 1.776 +// document.close(); 1.777 + } 1.778 + 1.779 + make_left_frame(window); 1.780 + 1.781 +} 1.782 +</script> 1.783 + 1.784 +</HEAD> 1.785 +<title>Cert-O-Matic</title> 1.786 + <FRAMESET cols="150,*" BORDER=3 ONLOAD="make_page(window)"> 1.787 + <FRAME SRC="about:blank" ID="index" NAME="index" 1.788 + MARGINWIDTH=15 MARGINHEIGHT=10 BORDER=3> 1.789 + <FRAME SRC="about:blank" ID="right" NAME="right" 1.790 + MARGINWIDTH=15 MARGINHEIGHT=10 BORDER=3> 1.791 + </FRAMESET> 1.792 +</HTML>