/** * This file is a part of MyWebSQL package * * @file: modules/splash.php * @author Samnan ur Rehman * @copyright (c) 2008-2012 Samnan ur Rehman * @web http://mywebsql.net * @license http://mywebsql.net/license */ function getSplashScreen($msg = '', $formCode = '') { if ($formCode) { $formCode = '<div class="login"><form method="post" action="" name="dbform" id="dbform" style="text-align:center">' . $formCode . '</form></div>'; } $scripts = "jquery"; $extraScript = ""; if (secureLoginPage()) { $scripts = "jquery,encrypt"; $e = Session::get('auth_enc', 'e'); $d = Session::get('auth_enc', 'd'); $n = Session::get('auth_enc', 'n'); $keyLength = 128; if (!$e || !$d || !$n) { $enc_lib = BASE_PATH . (extension_loaded('openssl') && extension_loaded('gmp') && extension_loaded('bcmath') ? "/lib/external/jcryption.php" : "/lib/external/jcryption-legacy.php"); require_once $enc_lib; $jCryption = new jCryption(); $keys = $jCryption->generateKeypair($keyLength); $e = array("int" => $keys["e"], "hex" => $jCryption->dec2string($keys["e"], 16)); $d = array("int" => $keys["d"], "hex" => $jCryption->dec2string($keys["d"], 16)); $n = array("int" => $keys["n"], "hex" => $jCryption->dec2string($keys["n"], 16)); Session::set('auth_enc', 'e', $e); Session::set('auth_enc', 'd', $d); Session::set('auth_enc', 'n', $n); } $keyData = '{"e":"' . $e["hex"] . '","n":"' . $n["hex"] . '","maxdigits":"' . intval($keyLength * 2 / 16 + 3) . '"}'; $extraScript = '<script language="javascript" type="text/javascript"> $(function() { $.jCryption.defaultOptions.getKeysURL = ' . $keyData . '; $("#dbform").jCryption(); }); </script>'; } $replace = array('MESSAGE' => $msg ? '<div class="msg">' . htmlspecialchars($msg) . '</div>' : '', 'FORM' => $formCode, 'APP_VERSION' => APP_VERSION, 'PROJECT_SITEURL' => PROJECT_SITEURL, 'SCRIPTS' => $scripts, 'EXTRA_SCRIPT' => $extraScript); return view('splash', $replace); }
public function GenKeyPair() { $keyfile = Service::ServiceData(SInfo::DATA_ADMIN_KEYFILE); $mykeys = NULL; $keyLength = 512; if (file_exists($keyfile)) { $str = file_get_contents($keyfile); if ($str != '') { $mykeys = unserialize($str); } } if ($mykeys == NULL) { $jCryption = new jCryption(); $keys = $jCryption->generateKeypair($keyLength); $e_hex = $jCryption->dec2string($keys['e'], 16); $n_hex = $jCryption->dec2string($keys['n'], 16); $mykeys = array('e_hex' => $e_hex, 'n_hex' => $n_hex, 'd_int' => $keys['d'], 'n_int' => $keys['n']); $serialized_str = serialize($mykeys); file_put_contents($keyfile, $serialized_str); chmod($keyfile, 0600); } $_SESSION['d_int'] = $mykeys['d_int']; $_SESSION['n_int'] = $mykeys['n_int']; return '{"e":"' . $mykeys['e_hex'] . '","n":"' . $mykeys['n_hex'] . '","maxdigits":"' . intval($keyLength * 2 / 16 + 3) . '"}'; }
<?php session_start(); require_once "../../jcryption.php"; $keyLength = 256; $jCryption = new jCryption(); if (isset($_GET["generateKeypair"])) { $keys = $jCryption->generateKeypair($keyLength); $_SESSION["e"] = array("int" => $keys["e"], "hex" => $jCryption->dec2string($keys["e"], 16)); $_SESSION["d"] = array("int" => $keys["d"], "hex" => $jCryption->dec2string($keys["d"], 16)); $_SESSION["n"] = array("int" => $keys["n"], "hex" => $jCryption->dec2string($keys["n"], 16)); echo '{"e":"' . $_SESSION["e"]["hex"] . '","n":"' . $_SESSION["n"]["hex"] . '","maxdigits":"' . intval($keyLength * 2 / 16 + 3) . '"}'; } else { $var = $jCryption->decrypt($_POST['jCryption'], $_SESSION["d"]["int"], $_SESSION["n"]["int"]); echo $var; }
$e_hex = RSAKeyImport::dec2string($e_int, 16); $n_hex = RSAKeyImport::dec2string($n_int, 16); $mykeys = array('e_hex' => $e_hex, 'n_hex' => $n_hex, 'd_int' => $d_int, 'n_int' => $n_int); return $mykeys; } } ## main # openssl genrsa -out key.pem 512 $mykeys = NULL; if (isset($argv[1])) { $pemfile = $argv[1]; $mykeys = RSAKeyImport::import_and_convert($pemfile); } if ($mykeys == FALSE) { echo "Using php to generate keys, please be patient ... \n"; $keyLength = 512; $jCryption = new jCryption(); $keys = $jCryption->generateKeypair($keyLength); $e_hex = $jCryption->dec2string($keys['e'], 16); $n_hex = $jCryption->dec2string($keys['n'], 16); $mykeys = array('e_hex' => $e_hex, 'n_hex' => $n_hex, 'd_int' => $keys['d'], 'n_int' => $keys['n']); } $keyfile = '../conf/jcryption_keypair'; $serialized_str = serialize($mykeys); $result = file_put_contents($keyfile, $serialized_str); chmod($keyfile, 0600); if ($result == TRUE) { exit(0); } else { exit(1); }