//==========================================================================
// Copyright (c) Fabasoft R&D GmbH, A-4020 Linz, 1988-2022.
//
// Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind
// Handelsnamen und/oder Marken der jeweiligen Hersteller.
//
// Der Nutzer des Computerprogramms anerkennt, dass der oben stehende
// Copyright-Vermerk im Sinn des Welturheberrechtsabkommens an der vom
// Urheber festgelegten Stelle in der Funktion des Computerprogramms
// angebracht bleibt, um den Vorbehalt des Urheberrechtes genuegend zum
// Ausdruck zu bringen. Dieser Urheberrechtsvermerk darf weder vom Kunden,
// Nutzer und/oder von Dritten entfernt, veraendert oder disloziert werden.
//==========================================================================

// --------------------------------------------------------------------------
// Creating Mindbreeze certificate
// ==========================================================================

var shell = new ActiveXObject("WScript.Shell");
var fso   = new ActiveXObject("Scripting.FileSystemObject");

if (fso.FolderExists("private")) {
  fso.DeleteFolder("private");
}
fso.CreateFolder("private");

if (fso.FolderExists("newcerts")) {
  fso.DeleteFolder("newcerts");
}
fso.CreateFolder("newcerts");

if (fso.FileExists("index.txt")) {
  fso.DeleteFile("index.txt");
}
fso.CreateTextFile("index.txt");

if (fso.FileExists("serial")) {
  fso.DeleteFile("serial");
}
fso.CreateTextFile("serial");
var file = fso.GetFile("serial");
var openstream = file.OpenAsTextStream(2, 0);
openstream.write("01");
openstream.close();

if (fso.FileExists("passwd")) {
  fso.DeleteFile("passwd");
}
var passwd = new String(Math.random()).replace(new RegExp("\\\.|,","g"),"0");
fso.CreateTextFile("passwd");
var file = fso.GetFile("passwd");
var openstream = file.OpenAsTextStream(2, 0);
openstream.write(passwd);
openstream.close();

shell.Run("openssl req -nodes -config openssl.cnf -days 365 -x509 -newkey rsa -out cacert.pem -keyout private/cakey.pem -outform PEM -batch", 0, true);

shell.Run("openssl req -config openssl.cnf -nodes -newkey rsa -keyout request.key -out request.csr -passout pass:" + passwd + " -batch" , 0, true);

shell.Run("openssl ca -config openssl.cnf -in request.csr -out request.pem -batch", 0, true);
