Blame nss/cmd/certcgi/index.html

Packit 40b132
<HTML>	
Packit 40b132
Packit 40b132
   - License, v. 2.0. If a copy of the MPL was not distributed with this
Packit 40b132
   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
Packit 40b132
<HEAD>
Packit 40b132
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
Packit 40b132
<SCRIPT LANGUAGE="JavaScript1.2">
Packit 40b132
Packit 40b132
script_url = 'http://interzone.mcom.com/cgi-bin/certomatic/bin/certcgi.cgi'
Packit 40b132
Packit 40b132
ext_page_ver1 =
Packit 40b132
  make_page_intro('Version 1 extensions', "#FFFFFF") +
Packit 40b132
  '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="ext1">' +
Packit 40b132
  'Version 1 X.509 certs do not support extensions' +
Packit 40b132
  '</IFRAME>' +
Packit 40b132
  '</body></html>';
Packit 40b132
Packit 40b132
num_ca = 0;
Packit 40b132
Packit 40b132
your_certificate_index_label       = 'Your Certificate';
Packit 40b132
netscape_extensions_index_label    = 'Netscape X.509 Extensions';
Packit 40b132
standard_extensions_index_label    = 'Standard X.509 Extensions';
Packit 40b132
certifying_authorities_index_label = 'Certifying Authorities';
Packit 40b132
add_sub_alt_name_index_label       = 'Add Subject Alternative Name';
Packit 40b132
Packit 40b132
index_list = 
Packit 40b132
  '0, your_certificate_index_label,' +
Packit 40b132
  '0, netscape_extensions_index_label,' +
Packit 40b132
  '0, standard_extensions_index_label,' +
Packit 40b132
  '0, certifying_authorities_index_label';
Packit 40b132
Packit 40b132
add_index_list = '';
Packit 40b132
Packit 40b132
ver = 3
Packit 40b132
Packit 40b132
max_pages = 13;
Packit 40b132
cur_page = 1;
Packit 40b132
Packit 40b132
ext_page_array = new Array(max_pages);
Packit 40b132
Packit 40b132
index_label = 'Options';
Packit 40b132
Packit 40b132
var main_page = 
Packit 40b132
  make_page_intro('Your Key', "#FFFFFF") +
Packit 40b132
  '<IFRAME WIDTH="100%" HEIGHT="100%" FRAMEBORDER=0 ID="main" SRC="main.html">' +
Packit 40b132
  '</IFRAME>' +
Packit 40b132
  '</body></html>' ;
Packit 40b132
Packit 40b132
function setSubAltNameType(form)
Packit 40b132
{
Packit 40b132
  with(form) {
Packit 40b132
    if (SubAltNameRadio[0].checked) {
Packit 40b132
      return true;
Packit 40b132
    }
Packit 40b132
    if (SubAltNameRadio[3].checked || SubAltNameRadio[5].checked) {
Packit 40b132
      SubAltNameDataType.checked = true;
Packit 40b132
      return true;
Packit 40b132
    }
Packit 40b132
    if (SubAltNameRadio[1].checked || SubAltNameRadio[2].checked ||
Packit 40b132
	SubAltNameRadio[4].checked || SubAltNameRadio[6].checked ||
Packit 40b132
	SubAltNameRadio[7].checked || SubAltNameRadio[8].checked) {
Packit 40b132
      SubAltNameDataType.checked = false;
Packit 40b132
      return true;
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
  return true;
Packit 40b132
}
Packit 40b132
Packit 40b132
function setIssuerAltNameType(form)
Packit 40b132
{
Packit 40b132
  with(form) {
Packit 40b132
    if (IssuerAltNameRadio[0].checked) {
Packit 40b132
      return true;
Packit 40b132
    }
Packit 40b132
    if (IssuerAltNameRadio[3].checked || IssuerAltNameRadio[5].checked) {
Packit 40b132
      IssuerAltNameDataType.checked = true;
Packit 40b132
      return true;
Packit 40b132
    }
Packit 40b132
    if (IssuerAltNameRadio[1].checked || IssuerAltNameRadio[2].checked ||
Packit 40b132
	IssuerAltNameRadio[4].checked || IssuerAltNameRadio[6].checked ||
Packit 40b132
	IssuerAltNameRadio[7].checked || IssuerAltNameRadio[8].checked) {
Packit 40b132
      IssuerAltNameDataType.checked = false;
Packit 40b132
      return true;
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
  return true;
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
function setNameConstraintNameType(form)
Packit 40b132
{
Packit 40b132
  with(form) {
Packit 40b132
    if (NameConstraintRadio[0].checked) {
Packit 40b132
      return true;
Packit 40b132
    }
Packit 40b132
    if (NameConstraintRadio[3].checked || NameConstraintRadio[5].checked) {
Packit 40b132
      NameConstraintNameDataType.checked = true;
Packit 40b132
      return true;
Packit 40b132
    }
Packit 40b132
    if (NameConstraintRadio[1].checked || NameConstraintRadio[2].checked ||
Packit 40b132
	NameConstraintRadio[4].checked || NameConstraintRadio[6].checked ||
Packit 40b132
	NameConstraintRadio[7].checked || NameConstraintRadio[8].checked) {
Packit 40b132
      NameConstraintNameDataType.checked = false;
Packit 40b132
      return true;
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
  return true;
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
function addSubAltName(form)
Packit 40b132
{
Packit 40b132
  with(form) {
Packit 40b132
    var len = SubAltNameSelect.length;
Packit 40b132
    var value;
Packit 40b132
    var i = 0;
Packit 40b132
    while(!(i == (SubAltNameRadio.length - 1)) & 
Packit 40b132
          !(SubAltNameRadio[i].checked == true)) {
Packit 40b132
      i++;
Packit 40b132
    }
Packit 40b132
    if (i != 0) {
Packit 40b132
      value = SubAltNameText.value + " - " + (i + 1);
Packit 40b132
    } else {
Packit 40b132
      value = SubAltNameText.value + " - " + 
Packit 40b132
              SubAltNameOtherNameOID.value + " - ";
Packit 40b132
      if (SubAltNameDataType.checked) {
Packit 40b132
	value += "1 - ";
Packit 40b132
      } else {
Packit 40b132
	value += "0 - ";
Packit 40b132
      }
Packit 40b132
      value += (i + 1);
Packit 40b132
      if (SubAltNameOtherNameOID.value == "") {
Packit 40b132
	alert("Other names must include an OID");
Packit 40b132
	return false;
Packit 40b132
      }
Packit 40b132
    }
Packit 40b132
Packit 40b132
    if ((SubAltNameText.value == "") | (SubAltNameRadio[i].checked != true)) {
Packit 40b132
      alert("Alternative Names must include values for name and name type.");
Packit 40b132
    } else {
Packit 40b132
      SubAltNameSelect.options[len] = new Option(value, value);
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
  return true;
Packit 40b132
}
Packit 40b132
Packit 40b132
function deleteSubAltName(form)
Packit 40b132
{
Packit 40b132
  with(form) {
Packit 40b132
    while (SubAltNameSelect.selectedIndex >= 0) {
Packit 40b132
      SubAltNameSelect[SubAltNameSelect.selectedIndex] = null;
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
  
Packit 40b132
function addIssuerAltName(form)
Packit 40b132
{
Packit 40b132
  with(form)
Packit 40b132
  {
Packit 40b132
    var len = IssuerAltNameSelect.length;
Packit 40b132
    var value;
Packit 40b132
    var i = 0;
Packit 40b132
Packit 40b132
    while(!(i == (IssuerAltNameRadio.length -1)) & 
Packit 40b132
          !(IssuerAltNameRadio[i].checked == true)) {
Packit 40b132
      i++;
Packit 40b132
    }
Packit 40b132
    if (i != 0) {
Packit 40b132
      value = IssuerAltNameText.value + " - " + (i + 1);
Packit 40b132
    } else {
Packit 40b132
      value = IssuerAltNameText.value + " - " + 
Packit 40b132
              IssuerAltNameOtherNameOID.value + " - ";
Packit 40b132
      if (IssuerAltNameDataType.checked) {
Packit 40b132
	value += "1 - ";
Packit 40b132
      } else {
Packit 40b132
	value += "0 - ";
Packit 40b132
      }
Packit 40b132
      value += (i + 1);
Packit 40b132
      if (IssuerAltNameOtherNameOID.value == "") {
Packit 40b132
	  alert("Other names must include an OID");
Packit 40b132
	  return false;
Packit 40b132
      }
Packit 40b132
    }
Packit 40b132
    if ((IssuerAltNameText.value == "") | 
Packit 40b132
        (IssuerAltNameRadio[i].checked != true)) {
Packit 40b132
      alert("Alternative Names must include values for name and name type.")
Packit 40b132
    } else {
Packit 40b132
      IssuerAltNameSelect.options[len] = new Option(value, value);
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
  return true;
Packit 40b132
}
Packit 40b132
Packit 40b132
function deleteIssuerAltName(form)
Packit 40b132
{
Packit 40b132
  with(form) {
Packit 40b132
    while (IssuerAltNameSelect.selectedIndex >= 0) {
Packit 40b132
      IssuerAltNameSelect[IssuerAltNameSelect.selectedIndex] = null;
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
Packit 40b132
function addNameConstraint(form)
Packit 40b132
{
Packit 40b132
  with(form) {
Packit 40b132
    var len = NameConstraintSelect.length;
Packit 40b132
    var value;
Packit 40b132
    var i = 0;
Packit 40b132
    var min = NameConstraintMin.value;
Packit 40b132
    var max = NameConstraintMax.value;
Packit 40b132
Packit 40b132
    while(!(i == (NameConstraintRadio.length - 1) ) & 
Packit 40b132
          !(NameConstraintRadio[i].checked == true)) {
Packit 40b132
      i++;
Packit 40b132
    }
Packit 40b132
    value = NameConstraintText.value + " - ";
Packit 40b132
    if (i == 0) {
Packit 40b132
      value += NameConstraintOtherNameOID.value + " - ";
Packit 40b132
      if (NameConstraintNameDataType.checked) {
Packit 40b132
	value += "1 - ";
Packit 40b132
      } else {
Packit 40b132
	value += "0 - ";
Packit 40b132
      }
Packit 40b132
      if (NameConstraintOtherNameOID.value == "") {
Packit 40b132
	alert("Other names must include an OID");
Packit 40b132
	return false;
Packit 40b132
      }
Packit 40b132
    }
Packit 40b132
    value += (i + 1) + " - ";
Packit 40b132
    if (NameConstraintTypeRadio[0].checked == true) {
Packit 40b132
      value += "p - ";
Packit 40b132
    } else {
Packit 40b132
      value += "e - ";
Packit 40b132
    }
Packit 40b132
    value += min + " - " + max;
Packit 40b132
    if ((min == "") | (NameConstraintText.value == "") | 
Packit 40b132
        (NameConstraintRadio[i].checked != true)) {
Packit 40b132
      alert("Name Constraints must include values for minimum, name, and name type.")
Packit 40b132
    } else {
Packit 40b132
      NameConstraintSelect.options[len] = new Option(value, value);
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
  return true;
Packit 40b132
}
Packit 40b132
Packit 40b132
function deleteNameConstraint(form)
Packit 40b132
{
Packit 40b132
  with(form) {
Packit 40b132
    while (NameConstraintSelect.selectedIndex >= 0) {
Packit 40b132
      NameConstraintSelect[NameConstraintSelect.selectedIndex] = null;
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
function submit_it()
Packit 40b132
{
Packit 40b132
  save_cur_page(cur_page);
Packit 40b132
Packit 40b132
  var ver1 = (ver == 1);
Packit 40b132
  var ver3 = (ver == 3);
Packit 40b132
  var array_string;
Packit 40b132
  var serial        = ext_page_array[0][10][0];
Packit 40b132
  var serial_number = ext_page_array[0][12][0];
Packit 40b132
  var manValidity   = ext_page_array[0][19][0];
Packit 40b132
  var notBefore     = ext_page_array[0][20][0];
Packit 40b132
  var notAfter      = ext_page_array[0][21][0];
Packit 40b132
  var subject       = ext_page_array[0][22][0];
Packit 40b132
Packit 40b132
  if (subject == "") {
Packit 40b132
    alert("The DN field must contain some data");
Packit 40b132
    return false;
Packit 40b132
  }
Packit 40b132
  if (!serial & serial_number == "") {
Packit 40b132
    alert("No serial number specified");
Packit 40b132
    return false;
Packit 40b132
  }
Packit 40b132
  if (ext_page_array[0][15][0]) {
Packit 40b132
    var keygen = "<keygen name=\"key\" challenge=\"foo\">";
Packit 40b132
  } else {
Packit 40b132
    switch (ext_page_array[0][17][0]) {
Packit 40b132
      case 2:
Packit 40b132
        var keygen = "<keygen keytype=\"dsa\" pqg=\"MIGdAkEAjfKklEkidqo9JXWbsGhpy+rA2Dr7jQz3y7gyTw14guXQdi/FtyEOr8Lprawyq3qsSWk9+/g3JMLsBzbuMcgCkQIVAMdzIYxzfsjumTtPLe0w9I7azpFfAkEAYm0CeDnqChNBMWOlW0y1ACmdVSKVbO/LO/8Q85nOLC5xy53l+iS6v1jlt5UhklycxC6fb0ZLCIzFcq9T5teIAg==\" name=\"key\" challenge=\"foo\">";
Packit 40b132
	break;
Packit 40b132
      case 1:
Packit 40b132
        var keygen = "<keygen keytype=\"dsa\" pqg=\"MIHaAmDCboVgX0+6pEeMlbwsasWDVBcJNHPKMzkq9kbCRK2U3k+tE15n+Dc2g3ZjDYr1um51e2iLC34/BwAAAAAAAAAAAAAAAAAAAAAAAAABbBhnlFN5Djmt0Mk8cdEBY5H8iPMCFMhUnFtbpjn3EyfH2DjVg3ALh7FtAmA2zWzhpeCwvOTjYnQorlXiv0WcnSiWmaC79CRYkFt5i+UEfRxwP1eNGJBVB1T+CPW6JGd4WhgsqtSf53pn5DEtv++O7lNfXyOhWhb3KaWHYIx8fuAXtioIWkWmpfEIVZA=\" name=\"key\" challenge=\"foo\">";
Packit 40b132
	break;
Packit 40b132
      case 0:
Packit 40b132
        var keygen = "<keygen keytype=\"dsa\" pqg=\"MIIBHAKBgId8SiiWrcdua5zbsBhPkKfFcnHBG7T/bQla7c6OixGjjmSSuq2fJLvMKa579CaxHxLZzZZXIHmAk9poRgWl2GUUkCJ68XSum8OQzDPXPsofcEdeANjw3mIAAAAAAAAAAAAAAAAAAAAAAAAIE+MkW5hguLIQqWvEVi9dMpbNu6OZAhTIA+y3TgyiwA0D8pt686ofaL1IOQKBgAiZQC6UCXztr2iXxJrAC+51gN5oX/R9Thilln9RGegsWnHrdxUOpcm5vAWp1LU8TOXtujE8kqkm3UxIRhUWQORe9IxLANAXmZJqkw9FEVHkxj6Cy9detwT2MyBzSwS6avsf7aLisgHmI/IHSeapJsQ3NQa3rikb6zRiqIV+TVa6\" name=\"key\" challenge=\"foo\">";
Packit 40b132
        break;
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
  array_string =  build_array_string();
Packit 40b132
  hiddens = "<input type=\"hidden\" name=\"subject\" value=\'" + subject + "\'> \n" +
Packit 40b132
            "<input type=\"hidden\" name=\"serial-auto\" value=\"" + serial + "\"> \n" +
Packit 40b132
            "<input type=\"hidden\" name=\"serial_value\" value=\"" + serial_number + "\"> \n" +
Packit 40b132
            "<input type=\"hidden\" name=\"ver-1\" value=\"" + ver1 + "\"> \n" +
Packit 40b132
            "<input type=\"hidden\" name=\"ver-3\" value=\"" + ver3 + "\"> \n" +
Packit 40b132
            "<input type=\"hidden\" name=\"notBefore\" value=\"" + notBefore + "\"> \n" +
Packit 40b132
            "<input type=\"hidden\" name=\"notAfter\" value=\"" + notAfter + "\"> \n" +
Packit 40b132
            "<input type=\"hidden\" name=\"manValidity\" value=\"" + manValidity + "\"> \n" +
Packit 40b132
            array_string;
Packit 40b132
Packit 40b132
  var good_submit_page =
Packit 40b132
    '<html>' +
Packit 40b132
    '<BODY TEXT="#000000" LINK="#000000" VLINK="#000000" ALINK="#FF0000" BGCOLOR="#FFFFFF">' +
Packit 40b132
    '<form method="post" action="' + script_url + '">' +
Packit 40b132
    'Select size for your key:' + keygen + '

' +
Packit 40b132
    '<input type="submit">

' +
Packit 40b132
    hiddens +
Packit 40b132
    '</form>\n' +
Packit 40b132
    '</body>\n' +
Packit 40b132
    '</html>\n';
Packit 40b132
Packit 40b132
  window.frames['right'].document.write(good_submit_page);
Packit 40b132
  window.frames['right'].document.close();
Packit 40b132
  cur_page = max_pages + 1;
Packit 40b132
  make_left_frame(window);
Packit 40b132
  return false;
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
Packit 40b132
function build_array_string()
Packit 40b132
{
Packit 40b132
  var pg;
Packit 40b132
  var array_string = '';
Packit 40b132
  var pages;
Packit 40b132
Packit 40b132
  if ((ext_page_array[3][4][0] > 0) && ext_page_array[3][3][0]) {
Packit 40b132
    pages = 4 + parseInt(ext_page_array[3][4][0]);
Packit 40b132
  } else {
Packit 40b132
    pages = 4;
Packit 40b132
  }
Packit 40b132
  for (pg = 1; pg < pages; pg++) {
Packit 40b132
    if ((pg > 1 || (ver == 3)) && (ext_page_array[pg].length > 1)) {
Packit 40b132
      if (pg < 4) {
Packit 40b132
	for (i = 0; i < ext_page_array[pg].length; i++) {
Packit 40b132
	  if (ext_page_array[pg][i][3].indexOf("radio") == -1) {
Packit 40b132
	    if (ext_page_array[pg][i][3].indexOf("multiple") == -1) {
Packit 40b132
	      array_string +=  '
Packit 40b132
                               ext_page_array[pg][i][1] + '\" value=\'' + 
Packit 40b132
                               ext_page_array[pg][i][0] + '\'> \n';
Packit 40b132
	    } else {
Packit 40b132
	      for (k = 0; k < ext_page_array[pg][i][0].length; k++) {
Packit 40b132
		array_string += '
Packit 40b132
                                ext_page_array[pg][i][1] + k + '\" value=\'' + 
Packit 40b132
                                ext_page_array[pg][i][0][k] + '\'> \n';
Packit 40b132
	      }
Packit 40b132
	    }
Packit 40b132
	  } else {
Packit 40b132
	    array_string += '
Packit 40b132
                            ext_page_array[pg][i][1] + '-' + 
Packit 40b132
			    ext_page_array[pg][i][2] + '\" value=\'' + 
Packit 40b132
			    ext_page_array[pg][i][0] + '\'> \n';
Packit 40b132
	  }
Packit 40b132
	}
Packit 40b132
      } else {
Packit 40b132
	for (i = 0; i < ext_page_array[pg].length; i++) {
Packit 40b132
	  if (ext_page_array[pg][i][3].indexOf("radio") == -1) {
Packit 40b132
	    if (ext_page_array[pg][i][3].indexOf("multiple") == -1) {
Packit 40b132
	      array_string += '
Packit 40b132
	                      'CA#' + (pg - 3) + '-' + 
Packit 40b132
			      ext_page_array[pg][i][1] + '\" value=\'' + 
Packit 40b132
			      ext_page_array[pg][i][0] +'\'> \n';
Packit 40b132
	    } else {
Packit 40b132
	      for (k = 0; k < ext_page_array[pg][i][0].length; k++) {
Packit 40b132
		array_string += '
Packit 40b132
		                'CA#' + (pg - 3) + '-' + 
Packit 40b132
				ext_page_array[pg][i][1] + k + '\" value=\'' + 
Packit 40b132
				ext_page_array[pg][i][0][k] + '\'> \n';
Packit 40b132
	      }
Packit 40b132
	    }
Packit 40b132
	  } else {
Packit 40b132
	    array_string += '
Packit 40b132
	                    'CA#' + (pg - 3) + '-' + 
Packit 40b132
			    ext_page_array[pg][i][1] + '-' + 
Packit 40b132
			    ext_page_array[pg][i][2] + '\" value=\'' + 
Packit 40b132
			    ext_page_array[pg][i][0] + '\'> \n';
Packit 40b132
	  }
Packit 40b132
	}
Packit 40b132
      }
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
  return array_string;
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
Packit 40b132
function init_ext_page_array()
Packit 40b132
{
Packit 40b132
  for (i = 0; i < max_pages; i++) {
Packit 40b132
    ext_page_array[i] = '';
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
function ca_num_change(n,ca_form)
Packit 40b132
{
Packit 40b132
  with(ca_form) {
Packit 40b132
    n = parseInt(n,10);
Packit 40b132
    if (caChoiceradio[2].checked) {
Packit 40b132
      if (n) {
Packit 40b132
	update_left_frame(n);
Packit 40b132
      } else {
Packit 40b132
	update_left_frame(0);
Packit 40b132
      }
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
function choice_change(ca_form)
Packit 40b132
{
Packit 40b132
  with(ca_form) {
Packit 40b132
    if (caChoiceradio[2].checked) {
Packit 40b132
      ca_num_change(manCAs.value,ca_form);
Packit 40b132
    } else {
Packit 40b132
      update_left_frame(0);
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
function update_left_frame(n)
Packit 40b132
{
Packit 40b132
  var add_string = '';
Packit 40b132
  for (var i = 0; i < n; i++) {
Packit 40b132
    var j = i + 1;
Packit 40b132
    add_string = add_string + ',1, \'CA #' + j + '\'';
Packit 40b132
  }
Packit 40b132
  top.add_index_list = add_string;
Packit 40b132
  num_ca = n;
Packit 40b132
  make_left_frame(window);
Packit 40b132
}
Packit 40b132
Packit 40b132
function set_ver1()
Packit 40b132
// redraws the extensions page for version 1 certificates
Packit 40b132
{
Packit 40b132
  ver = 1
Packit 40b132
  if (cur_page == 2 || cur_page == 3) {
Packit 40b132
    switch_right_frame(window, cur_page, cur_page);
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
function set_ver3()
Packit 40b132
// redraws the extensions page for version 3 certificates
Packit 40b132
{
Packit 40b132
  ver = 3
Packit 40b132
  if (cur_page == 2) {
Packit 40b132
    switch_right_frame(window, 0, 2);
Packit 40b132
  } else if (cur_page == 3) {
Packit 40b132
    switch_right_frame(window, 0, 3);
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
function reset_subject(marker, value, form)
Packit 40b132
// Updates the subject field from a subordinate field
Packit 40b132
{
Packit 40b132
  with(form) {
Packit 40b132
    var field_sep = '", ';
Packit 40b132
    var begin_index = subject.value.indexOf(marker);
Packit 40b132
    if (begin_index != 0 && subject.value[begin_index - 1] != ' ') {
Packit 40b132
      begin_index = subject.value.indexOf(marker, begin_index +1);
Packit 40b132
    }
Packit 40b132
    var end_index = subject.value.indexOf(field_sep, begin_index);
Packit 40b132
    if (begin_index > -1) {       // is it a delete/change?
Packit 40b132
      if (end_index == -1) {      // is it the last one (includes only one)?
Packit 40b132
        if (value.length > 0) {   // do I have to change it?
Packit 40b132
          if (begin_index == 0) { // is is the only one?
Packit 40b132
            subject.value = marker + '"' + value + '"';
Packit 40b132
          } else {                // it is the last of many
Packit 40b132
            subject.value = subject.value.substring(0,begin_index) + 
Packit 40b132
	                    marker + '"' + value + '"';
Packit 40b132
          }
Packit 40b132
        } else {                  //  must be a delete
Packit 40b132
          if (begin_index == 0) { // is it the only one?
Packit 40b132
            begin_index += 2;
Packit 40b132
          }
Packit 40b132
          subject.value = subject.value.substring(0,(begin_index - 2));
Packit 40b132
        }
Packit 40b132
      } else {                    // it is the first of many or a middle one
Packit 40b132
        if (value.length >0) {    // do I have to change it?
Packit 40b132
          subject.value = 
Packit 40b132
	  	subject.value.substring(0,(begin_index + marker.length + 1)) + 
Packit 40b132
		value + subject.value.substring(end_index,subject.length);
Packit 40b132
        } else {                  // it is a delete
Packit 40b132
          subject.value = subject.value.substring(0,begin_index) + 
Packit 40b132
	        subject.value.substring((end_index + 3),subject.length);
Packit 40b132
        }
Packit 40b132
      }
Packit 40b132
    } else {                      // It is either an insert or a do nothing
Packit 40b132
      if (value.length > 0) {     // is it an insert?
Packit 40b132
        if (subject.value.length == 0) {  // is subject currently empty?
Packit 40b132
          subject.value = marker + '"' + value + '"';
Packit 40b132
        } else {
Packit 40b132
          subject.value = subject.value + ', ' + marker + '"' + value + '"';
Packit 40b132
        }
Packit 40b132
      }
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
Packit 40b132
function reset_subjectFields(form)
Packit 40b132
// updates all the subordinate fields from the subject field of a form
Packit 40b132
// **** move the strings to global variables, to make maintentance easier ****
Packit 40b132
{
Packit 40b132
Packit 40b132
  update_subject_Field(form, 'CN=\"', form.name);
Packit 40b132
  update_subject_Field(form, 'MAIL=\"', form.email);
Packit 40b132
  update_subject_Field(form, 'O=\"', form.org);
Packit 40b132
  update_subject_Field(form, 'C=\"', form.country);
Packit 40b132
  update_subject_Field(form, ' L=\"', form.loc);
Packit 40b132
  update_subject_Field(form, 'ST=\"', form.state);
Packit 40b132
  update_subject_Field(form, 'E=\"', form.email);
Packit 40b132
  update_subject_Field(form, 'OU=\"', form.org_unit);
Packit 40b132
  update_subject_Field(form, 'UID=\"', form.uid);
Packit 40b132
}
Packit 40b132
Packit 40b132
function update_subject_Field(form, marker, update_field)
Packit 40b132
//updates a single subordinate field from the subject field of a form
Packit 40b132
// *** need to deal with the two types of e-mail addresses **************
Packit 40b132
{
Packit 40b132
  with(form) {
Packit 40b132
    var field_sep = '", ';
Packit 40b132
    var begin_index = subject.value.indexOf(marker) + marker.length;
Packit 40b132
    var end_index = subject.value.indexOf(field_sep, begin_index);
Packit 40b132
    if (end_index == -1) {
Packit 40b132
      end_index = subject.value.indexOf('"',begin_index);
Packit 40b132
    }
Packit 40b132
    if (begin_index != (-1 + marker.length) ) {
Packit 40b132
      update_field.value = subject.value.substring(begin_index, end_index);
Packit 40b132
    } else {
Packit 40b132
      update_field.value = '';
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
function switch_mail(form)
Packit 40b132
// **** Do I want to delete the other type of e-mail address ? ************
Packit 40b132
{
Packit 40b132
  if (form.email_type[0].checked) {
Packit 40b132
    var del = 'E=';
Packit 40b132
    var ins = 'MAIL=';
Packit 40b132
  } else {
Packit 40b132
    var del = 'MAIL=';
Packit 40b132
    var ins = 'E=';
Packit 40b132
  }
Packit 40b132
  reset_subject(del, '', form);
Packit 40b132
  reset_subject(ins, form.email.value, form);
Packit 40b132
}
Packit 40b132
Packit 40b132
function make_page_intro(title, bgcolor)
Packit 40b132
{
Packit 40b132
  var style = '<STYLE TYPE="text/css">BODY{' +
Packit 40b132
    'font-family: Geneva,MS Sans Serif,Arial,Lucida,Helvetica,sans-serif;' +
Packit 40b132
    'font-size: 10pt;' +
Packit 40b132
    '}' +
Packit 40b132
    'TD{' +
Packit 40b132
    'font-family: Geneva,MS Sans Serif,Arial,Lucida,Helvetica,sans-serif;' +
Packit 40b132
    'font-size: 10pt;}' +
Packit 40b132
    '</STYLE>';
Packit 40b132
Packit 40b132
  if (bgcolor == null) { bgcolor = "#C0C0C0"; }
Packit 40b132
  return '<HTML><HEAD>' +
Packit 40b132
    '<TITLE>' + title + '</TITLE>' +
Packit 40b132
    '</HEAD>' +
Packit 40b132
    '
Packit 40b132
          'BGCOLOR="' + bgcolor + '">';
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
function make_left_frame(window)
Packit 40b132
{
Packit 40b132
  with (window.frames['index']) {
Packit 40b132
    eval ('index_string = make_left_frame_page(cur_page, ' 
Packit 40b132
           + index_list + add_index_list + ' )');
Packit 40b132
    fool1 = make_page_intro(index_label, "#FFFFFF") +
Packit 40b132
      index_string + '</BODY></HTML>';
Packit 40b132
    document.write(fool1);
Packit 40b132
    document.close();
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
function save_cur_page(page_number)
Packit 40b132
{
Packit 40b132
  var len;
Packit 40b132
  var pg = page_number - 1;
Packit 40b132
  if (window.frames['right'].document.forms.length != 0) {
Packit 40b132
    with (window.frames['right'].document) {
Packit 40b132
      if ((page_number != 2 && page_number != 3 && page_number <= max_pages) || 
Packit 40b132
	  ver == 3) {
Packit 40b132
        ext_page_array[pg] = new Array(forms[0].elements.length);
Packit 40b132
        for (i = 0; i < forms[0].elements.length; i++) {
Packit 40b132
	  ext_page_array[pg][i] = new Array(4);
Packit 40b132
	  switch (forms[0].elements[i].type) {
Packit 40b132
	  case 'radio': 
Packit 40b132
          case 'checkbox':
Packit 40b132
	    ext_page_array[pg][i][0] = forms[0].elements[i].checked;
Packit 40b132
	    break;
Packit 40b132
	  case 'select-one':
Packit 40b132
	    ext_page_array[pg][i][0] = forms[0].elements[i].selectedIndex;
Packit 40b132
	    break;
Packit 40b132
	  case 'select-multiple':
Packit 40b132
	    len = forms[0].elements[i].options.length;
Packit 40b132
	    ext_page_array[pg][i][0] = new Array(len);
Packit 40b132
	    for(k = 0; k < len; k++) {
Packit 40b132
	      ext_page_array[pg][i][0][k] = forms[0].elements[i].options[k].value;
Packit 40b132
	    }
Packit 40b132
	    break;
Packit 40b132
	  default:
Packit 40b132
	    ext_page_array[pg][i][0] = forms[0].elements[i].value;
Packit 40b132
	  }
Packit 40b132
	  ext_page_array[pg][i][1] = forms[0].elements[i].name;
Packit 40b132
	  ext_page_array[pg][i][2] = forms[0].elements[i].value;
Packit 40b132
	  ext_page_array[pg][i][3] = forms[0].elements[i].type;
Packit 40b132
        }
Packit 40b132
      }
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
function reload_form(page_number)
Packit 40b132
{
Packit 40b132
  var j = page_number - 1;
Packit 40b132
  with (window.frames['right'].document) {
Packit 40b132
    if (((page_number < 2 || page_number > 3) || ver == 3) 
Packit 40b132
	&& page_number != 0 && (ext_page_array[j].length > 1)) {
Packit 40b132
      for (i = 0; i < ext_page_array[j].length; i++) {
Packit 40b132
	switch (forms[0].elements[i].type) {
Packit 40b132
	case 'radio': case 'checkbox':
Packit 40b132
	  forms[0].elements[i].checked = ext_page_array[j][i][0];
Packit 40b132
	  break;
Packit 40b132
	case 'select-one':
Packit 40b132
	  forms[0].elements[i].selectedIndex = ext_page_array[j][i][0];
Packit 40b132
	  break;
Packit 40b132
	case 'select-multiple':
Packit 40b132
	  for (k = 0; k < ext_page_array[j][i][0].length; k++) {
Packit 40b132
	    forms[0].elements[i].options[k] = 
Packit 40b132
	        new Option(ext_page_array[j][i][0][k], 
Packit 40b132
			   ext_page_array[j][i][0][k]);
Packit 40b132
	  }
Packit 40b132
	  break;
Packit 40b132
	default:
Packit 40b132
	  forms[0].elements[i].value = ext_page_array[j][i][0];
Packit 40b132
	}
Packit 40b132
      }
Packit 40b132
    }
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
function switch_right_frame(top_window, old_pane, new_pane)
Packit 40b132
{
Packit 40b132
  var ext_page_stnd =
Packit 40b132
    make_page_intro(standard_extensions_index_label, "#FFFFFF") +
Packit 40b132
    '
Packit 40b132
    'SRC="stnd_ext_form.html">' +
Packit 40b132
    '</IFRAME></body></html>';
Packit 40b132
Packit 40b132
  var ext_page_nscp = 
Packit 40b132
    make_page_intro(netscape_extensions_index_label, "#FFFFFF") +
Packit 40b132
    '
Packit 40b132
    'SRC="nscp_ext_form.html">' +
Packit 40b132
    '</IFRAME></body></html>';
Packit 40b132
Packit 40b132
  var ext_page_ca =
Packit 40b132
    make_page_intro(certifying_authorities_index_label, "#FFFFFF") +
Packit 40b132
    '
Packit 40b132
    'SRC="ca.html">' +
Packit 40b132
    '</IFRAME></body</html>';
Packit 40b132
Packit 40b132
  var ext_page_ca_exp =
Packit 40b132
    make_page_intro('Certifying Authority Details', "#FFFFFF") +
Packit 40b132
    '
Packit 40b132
    'SRC="ca_form.html">' +
Packit 40b132
    '</IFRAME></body></html>';
Packit 40b132
Packit 40b132
Packit 40b132
  if (old_pane > 0 && cur_page <= max_pages) {
Packit 40b132
    save_cur_page(old_pane);
Packit 40b132
  }
Packit 40b132
  cur_page = new_pane;
Packit 40b132
  make_left_frame(top_window);
Packit 40b132
  if (new_pane == 2 || new_pane == 3) {
Packit 40b132
    if (ver == 1) {
Packit 40b132
      frames['right'].document.write(ext_page_ver1);
Packit 40b132
      frames['right'].document.close();
Packit 40b132
    } else if (new_pane == 2) {
Packit 40b132
      frames['right'].document.write(ext_page_nscp);
Packit 40b132
      frames['right'].document.close();
Packit 40b132
      reload_form(new_pane);
Packit 40b132
    } else {
Packit 40b132
      frames['right'].document.write(ext_page_stnd);
Packit 40b132
      frames['right'].document.close();
Packit 40b132
      reload_form(new_pane);
Packit 40b132
    }
Packit 40b132
  } else if (new_pane == 4) {
Packit 40b132
    frames['right'].document.write(ext_page_ca);
Packit 40b132
    frames['right'].document.close();
Packit 40b132
    reload_form(new_pane);
Packit 40b132
  } else if (new_pane == 1) {
Packit 40b132
    frames['right'].document.write(main_page);
Packit 40b132
    frames['right'].document.close();
Packit 40b132
    reload_form(new_pane);
Packit 40b132
  } else {
Packit 40b132
    frames['right'].document.write(ext_page_ca_exp);
Packit 40b132
    frames['right'].document.close();
Packit 40b132
    reload_form(new_pane);
Packit 40b132
  }
Packit 40b132
}
Packit 40b132
Packit 40b132
function make_left_frame_page(selected)
Packit 40b132
{
Packit 40b132
  var n_strings = ( make_left_frame_page.arguments.length - 1 ) / 2;
Packit 40b132
  var table_background;
Packit 40b132
  var command;
Packit 40b132
  var indent;
Packit 40b132
  var label;
Packit 40b132
  var ret_string = "";
Packit 40b132
    
Packit 40b132
  ret_string += '';
Packit 40b132
  for ( var i = 1; i <= n_strings; i++ ) {
Packit 40b132
    if ( i == selected ) {
Packit 40b132
      table_background = 'BGCOLOR=#BBCCBB';
Packit 40b132
    } else {
Packit 40b132
      table_background = '';
Packit 40b132
    }
Packit 40b132
	
Packit 40b132
    indent = make_left_frame_page.arguments[(i*2) - 1];
Packit 40b132
    label =  make_left_frame_page.arguments[(i*2)];
Packit 40b132
Packit 40b132
    if ( indent == 0 ) {
Packit 40b132
      ret_string += ('');
Packit 40b132
    } else {
Packit 40b132
      ret_string += ('  ');
Packit 40b132
    }
Packit 40b132
Packit 40b132
    command = "'parent.switch_right_frame(parent," + selected + "," + i + ")'";
Packit 40b132
    ret_string += ('');
Packit 40b132
    if ( indent == 0 ) { ret_string += ""; }
Packit 40b132
    ret_string += label;
Packit 40b132
    if ( indent == 0 ) { ret_string += ""; }
Packit 40b132
    ret_string += '';
Packit 40b132
  }
Packit 40b132
  if (selected == (max_pages + 1)) {
Packit 40b132
    table_background = 'BGCOLOR=#BBCCBB';
Packit 40b132
  } else {
Packit 40b132
    table_background = '';
Packit 40b132
  }
Packit 40b132
  ret_string +=
Packit 40b132
    '
Packit 40b132
    '>Finish' +
Packit 40b132
    '' +
Packit 40b132
    '<input type="submit"></form>' + 
Packit 40b132
    '';
Packit 40b132
  return(ret_string);
Packit 40b132
}
Packit 40b132
Packit 40b132
Packit 40b132
function make_page(window)
Packit 40b132
// Draws the initial page setup
Packit 40b132
{
Packit 40b132
  selected = cur_page
Packit 40b132
  init_ext_page_array()
Packit 40b132
Packit 40b132
  with (window.frames['right']) {
Packit 40b132
    location="main.html";
Packit 40b132
//  document.write(main_page);
Packit 40b132
//  document.close();
Packit 40b132
  }
Packit 40b132
Packit 40b132
  make_left_frame(window);
Packit 40b132
Packit 40b132
}
Packit 40b132
</script>
Packit 40b132
Packit 40b132
</HEAD>
Packit 40b132
<title>Cert-O-Matic</title>
Packit 40b132
  <FRAMESET cols="150,*" BORDER=3 ONLOAD="make_page(window)">
Packit 40b132
      
Packit 40b132
           MARGINWIDTH=15 MARGINHEIGHT=10 BORDER=3>
Packit 40b132
      
Packit 40b132
           MARGINWIDTH=15 MARGINHEIGHT=10 BORDER=3>
Packit 40b132
  </FRAMESET>
Packit 40b132
</HTML>