Пример #1
0
 public function __construct()
 {
     parent::__construct();
     ssl::force_ssl();
     meta::set_keywords('Daily Journal, Free Journal, Private Diary, Private Journal, Free Online Journal, Online Journaling, Write Messages, My Diary, Secure Diary, Secure Journal, Journal, Diary');
     meta::set_description('Keep a free online journal or diary to remember events in your life.  Secure, simple and free.  Access from anywhere.');
     // Add Analytics to the page, except on journal pages
     if ($this->model_name != 'journal') {
         layout::add(View::factory('shared/analytics'), 'footer');
     }
 }
Пример #2
0
        return stripslashes($x);
    } else {
        return $x;
    }
}
$keysize = mq($_REQUEST['keysize']);
$passphrase = mq($_REQUEST['passphrase']);
?>
<html>
<head>
<title>Public Key Forge</title>
</head>
<body>
<?php 
if ($keysize && is_numeric($keysize)) {
    $ssl = new ssl();
    $privkey = $ssl->make_privkey($keysize, $passphrase);
    $pubkey = $ssl->privkey_to_pubkey($privkey, $passphrase);
    $id = $ssl->pubkey_id($pubkey);
    echo "ID: {$id}<br>\n";
    echo "<pre>\n{$pubkey}</pre>\n";
    echo "<pre>\n{$privkey}</pre>\n";
}
if (!$keysize || !is_numeric($keysize)) {
    $keysize = 512;
}
function hsc($x)
{
    return htmlspecialchars($x);
}
?>
Пример #3
0
?>
" />
<?php 
echo html::static_css('public/css/application');
if (request::is_mobile()) {
    ?>
	<?php 
    echo html::static_css('public/css/mobile');
}
?>
<script src="<?php 
echo ssl::correct_http();
?>
://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="<?php 
echo ssl::correct_http();
?>
://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script>
<script type="text/javascript">
	WebFont.load({
		google: {
			families: [ 'Reenie Beanie' ]
		}
	});
</script>
<?php 
echo html::static_js('public/js/libraries.jquery');
echo layout::output('header');
echo html::static_js('public/js/application');
?>
</head>
Пример #4
0
<?php

require 'ssl.php';
/*
creates keys in folder
@parm optional integer - provide how many bits should be used to generate a private key default 2048
@parm optional string - provide folder to place key files default folder containing this file
*/
ssl::create(2048);
/* load a giant piece of text into a string */
$data = file_get_contents('copy.txt');
echo '<p>Data Length: ' . strlen($data) . '</p>';
/*
encrypt the data and place in foo
@parm required string - data to encrypt 
@parm optional string - path to key file default filenamed public.key in the folder containing this file
*/
$foo = ssl::encrypt($data);
echo '<p>Foo Length: ' . strlen($foo) . '</p>';
/* data and foo should not match */
echo $foo !== $data ? '<p>Passed</p>' : '<p>Failed</p>';
/*
decrypt foo and place back in foo
@parm required string - data to decrypt
@parm optional string - path to key file default filenamed private.key in the folder containing this file
*/
$foo = ssl::decrypt($foo);
echo '<p>Foo Length: ' . strlen($foo) . '</p>';
/* data and foo should now match */
echo $data === $foo ? '<p>Passed</p>' : '<p>Failed</p>';
echo '<p>Data Length: ' . strlen($data) . '</p>';
Пример #5
0
 public static function path($link)
 {
     if (ssl::is()) {
         return secure_asset($link);
     } else {
         return asset($link);
     }
 }
Пример #6
0
<?php

// servertest.php
// Test code for the Trubanc server
// Currently dangerous to run this on a real database, since it makes it inconsistent
require_once "server.php";
require_once "fsdb.php";
require_once "ssl.php";
$db = new fsdb("../trubancdb");
$ssl = new ssl();
$server = new server($db, $ssl, false, 'Trubanc');
$u = $server->u;
// utility instance
$tokenid = $server->tokenid;
$bankid = $server->bankid;
$t = $server->t;
$privkey = "-----BEGIN RSA PRIVATE KEY-----\nMIIBOwIBAAJBAMwfcmkk2coTuYAEbdZ5iXggObNPzbSiDnVtndZFe4/4Xg0IQPfp\nQ04OkhWIftMy1OjFhGlBzzNzdW98KYwKMgsCAwEAAQJASAgk4LPPYz84q9NkS1ZS\nS6Dbm8pipga2IXxQQaf9ZZ02vWpJR0tTlxq36Zl5P+aAbMck0AvHLgiawx0qWxRz\n2QIhAPwyHhCeoZ972KcRi4AIVsWtkGfQsVpVbBOzuFmtAdU9AiEAzzOwvhW6az25\nMyxD5VnbEhswT+lDnGAx/WSsHlPqaOcCIQCM0ac7/Heex9Z3ozJTsVRSWNHTRhJh\nsGUCs01ytUnauQIgeZrNrRHVgeEM04K0KmPtFZhNZ2jwnFM8o4m1FmuLlJsCIQDc\n9tCyRjE3Zj0tXfZL2n6DGeyAc0OsfdQn6V0tFPf6hg==\n-----END RSA PRIVATE KEY-----\n";
$pubkey = $ssl->privkey_to_pubkey($privkey);
$id = $ssl->pubkey_id($pubkey);
$privkey2 = "-----BEGIN RSA PRIVATE KEY-----\nMIIBOwIBAAJBAK5kvoBZ9mw6xpt7M0M383q5/mhvzLTr1HUG9kr52aJyaV7OegEQ\nndsN45klFNvzD4slOuh2blg4ca7DuuARuYUCAwEAAQJBAI+aabwrWF268HxrsMSz\nOA1hRvscxMZeQ66yMvF+WBYJIE873UDxUUMgvYJ0Dz6kg6u8BFBKcxWBCIP8e2Bi\np2kCIQDaH2fPpAd477Xad+BXUiiSqOgWrEIzMiAkZsE2Q+XgYwIhAMytXoq6eZar\n+id+XvcTilxSVagqkC+549Og2HtsDP73AiEAteKEVVBJbt4svY1CxG3dKVaxmd5w\noXJF/TS2HsMFmFMCICZAYGLc5sxZ565p16WlaT5HxOpgygGhZAqxDMRENUmRAiAS\nH3CnJ8Ul3VWvyL5hVjFDHYnD6n18+xqsnjeSQ4bRnQ==\n-----END RSA PRIVATE KEY-----\n";
$pubkey2 = $ssl->privkey_to_pubkey($privkey2);
$id2 = $ssl->pubkey_id($pubkey2);
function bankmsg()
{
    global $bankid, $server, $ssl, $privkey;
    $args = func_get_args();
    $args = array_merge(array($bankid), $args);
    $msg = $server->u->makemsg($args);
    $sig = $ssl->sign($msg, $server->privkey);
    return "{$msg}:\n{$sig}";
}
Пример #7
0
<?php

// crypto.php
// Simple tests for crypto functions
require_once "ssl.php";
$privkeys = array(512 => "-----BEGIN RSA PRIVATE KEY-----\nMIIBOgIBAAJBALhqOmX6lnY56G0hNrzj7t68VVkRiYqoQwNpDofajvUkrHVukI0l\nVVXxxE4CMAzMvl9Qd8d4MUF/2+E14pi6QCkCAwEAAQJAPnOrBzIPlkYSEjL3SIyg\nLkn1VU59F7nXx+XiB9vaIeYPpv82Bdp+7q9ZGIIPKolOFtThwy6x9i9hsa6MdUZi\nAQIhAO/Zhxf0OS6rakMGWAS7zAeo3xBmDUlRLVMDMchAanQJAiEAxNUhEDg1wZAW\nstuGjdDBT+QntrEpsvA82dQGM1qnsyECIE2YIB5dwkoY5o28dalCYCVyOogBm/bG\nLlWWyPox7L6RAiAb1E5ybqAbF/Y9n5AsqOFMHGQJDo9ov1K7MaEWzbB8QQIhAIz/\njKW4I70y/1tqPKHripEoYK0EJx0cGhaOjtYSwHX6\n-----END RSA PRIVATE KEY-----\n", 1024 => "-----BEGIN RSA PRIVATE KEY-----\nMIICXQIBAAKBgQDIFioqUZVNepqADskqPGQ4NyZ2jojrxHdqZSqgS6/mQoEUZI9y\nkk5cF3/EmOxjkF5D7CHgpnwUmZfiw9ZfEDCUvr6+LId/jvohpZ8l9jN/IkAdQuUV\nfCsiIEoxwV2AgqeFdmRI/QBFnuUfaolj7buhNUbphIvAPLz7HZHCvVNwwQIDAQAB\nAoGAHkuU2NF/fLq6l/clKFr6hbR8A2lze9dEiXyF5r1vBbs+FhtfyOY0LSd1tgu9\nhxm93CTtwDkVAn17DN/AHqax5B8YuD8VnaOWrQKoCsj6seyf8Qs1Az3OhjReLV64\nb4IFkn0zf92RAEyzWk0H2sB1VfodBWkBWjclzr8ZiUKtfUECQQDuUpGCsRgOmVMz\nW+NtDEorWQcZh4iVo90qkpvgDsOGe+8zYO9+9z+7TxLP1F/EAhqUiHYMrwI/gpnG\nN7s4YFtZAkEA1u2LvIuLM5ffACDOrGhTPmuFA7lHYLeDNvpVVaOBtrfd6RRMLbOi\nB7aUz7GJ/5FEzdBx62upNVbqkQ5Tq+LbqQJATEZS2eAyEeISldpv5GPNjSgWNJ6D\nIVlrnIeFqeUvwOgDe48nt5wMYreBDtEqwUHnHei6135fmtICw0Ts/7MfKQJBAJDG\nvuQo04HTgaHid5VnSPu5DYauncgmlbrI8gaX916PiGnjBFWctT6g3KjzHNQMlN5W\n1QYSJY8Kl0NS9UXJsNECQQCES4l2zFhSvrU5ob42aboeKM4fCy04g22M1Y15JgMb\nSjqw1d9dv6dhpdh6aiHtIc9+jxOD9d4M/y6gwn2OZlvU\n-----END RSA PRIVATE KEY-----\n", 1536 => "-----BEGIN RSA PRIVATE KEY-----\nMIIDfQIBAAKBwQChhOe3Famts8rimFSOyQEnKxhunIv10P786Af5wIDJUVcPycrS\nkmhqQ6+w2Kpa0WLlOD/5MjMQtByRuVJUKL+uQyNVIh4xIBcXfNdgCFbhBop7F3Ta\nGReOh5r0AekY01ReQHtrVd0o4mlKLO12U0v9qnZbBcPOuyFaD8sedpPXnY4XdLDP\nkZ2AmTplnCIwVhIxpyLVY/HQe3GZLyJIZCNDhpP5jnR11QDCEphQP+CG5dYtr1/z\nIbL6cVw4Kfu6ndECAwEAAQKBwQCA2f/oZNW6BuZholhCmEPdNVoGU8irz5C7vXcv\nXMzgzY0AwWCWX8oAjALKt+4fCU81wYv3hn6KYsUv04HENcXEhTbYoaEoW4tQZ32B\n1OVKGue6jtnfa4kJYVDSO/vynBM7demMHX8Ny43gJGnCxKikJH6uKoglVf/2m0MS\nHhA+ggYJvssxmBiSEhcOh8lWgd5cN8eYBnqeveP75DgJy1fPMJ0n3zatpg3Kr0e9\nbOxCZo1HOIPP3uIyGV8nouqNPMkCYQDTay+knnjJpvIAAGpupictdyeaNi5qkulN\n17AxVit+l+//AP2qJz0BpslC2NtknrINvVu/KOyadUf2qfM4mQXhBssn2tW3gsr5\nBcc3CWTeiFSGPgbD2RVWSyq6NCK2t5MCYQDDlAo9tOEcB4j6O1lJRyRv7eF1pLBB\nE+RaeCm/BnHJEpm4Gpkaw6FEKntlV3Iq8B87R1nlNMnwAtbYcxYtcKOG/Gi3tYbs\nKyh+GUB7K16V3zyLsLbQaj6p11BiV/ab64sCYGT42DRDC2UjuoiNqkdWS3fHZL6e\nCeUUbSCkVp35jaRUZGbhzkSpoNVdFto6P+36bQdq3JqbrQTH5qrD2Em7q7chS32p\nYlDWwqHURKTgc7BkZBoJHaoDz9D67Vko9TtWyQJgCAfVH9GEiMUab8PuF58vNNVc\ns5rujc2GS9yxQiG+nFYCL9gPv1SXE5h29qNPkcnIToPQgiPXwt4q+jpHh9gfLtTA\nbAKtJpdjE0JwLl6KhLbk4ouABjDGn+yyZUddXeufAmEAraFRn21V5twI7Szb8/Ln\n0Mpqpbv703IAZ+TlORVPo8RVvuEcgXxLUnHj8n+OLIX/65CA9LFDz5D9FzVe/FJ2\niFqQuBm1+5YZf70G+B9cSub6qecrOpiFJSB7jxJqYtiW\n-----END RSA PRIVATE KEY-----\n", 2048 => "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAzVkAifGhnJ1RbIj2VX386QYCbIUPYv8PUnBcXY374hy6sNzF\nuqSNsBxvbEH17jVvwx/6wl3umuLDzn+rPc+4X9KC7GTDy9sL8373veSC0edU87/N\n5hoJQTadbHaMG36A8hL9Y5vuiSsxR1+Zca1OhaLs3VJLsyMDG3CYkchBiDByUsSS\nF1+dc3GmrfRNTLAjguIHfNWr9fM+eCoDELZ63OpswwJlTjIeMnqNah4vFD8EKYuJ\nBs+KlkGJAm8zYKhY9DqwMz24p2QD7mPGdm3jE28zQft1N88LMN3ax2fAIB/fw6c2\nZ1GSvZ9uURKQczlzyTGs+jCVpP24CKkB4kUNPwIDAQABAoIBAHS7PoIsGMnV6D6B\nkT7CMu4oW2JjNX76LTSY6PjJyMEdwcbeiYxzFJRjZbetu2bhe5n5aOvqx8PGWrbd\nfnPRzCa0nXZSRbdx2tZde+m3p+I41eMGSr6eWFp4+H562WSbwiNaRi7EqpHROt8u\n6iRj93oiRvH9YUkBAzgrBqAArbgDhVSX72PHJAnRgvaTH+bbBTy4s7Z6AIznM1qI\nZwkQPj/Y8aRFPrqgc2OkJAYtyKFmfx3TfzR9IotCMGCufgGfujBbVKe6syDVYrsA\nBHJ24NWIqfR9pXEAzOzSj8iY+0QsZ4juowBmOMXjkZKuZ04oOR9xkKEZ5ZXvnPUB\ncKkzJUECgYEA8DLNqT8S9o7GdLXzQz/sn1X06LoVj20EWAd8B1FGu8bg/BaAQRdP\nvSL4j/ScZgWNX4tEtzNCEJaPrWQ1vhwrrMKgbt/aQD21Lg8Woahovy4SDszCE96h\nd7AK4xXgDDxO/6SO76+X/wn7nqbK1TDQMYZjQFHmCs64UxYbXwKvNt8CgYEA2ttG\nSHb0B9nq9vuR3izR8inZJDx0YTsErmXE7jUmu+PjC5zCcEwU8mS5qKztbD3xIDb+\nLFv6cEzihJVxiDtz5iCXhSzUbRIylHrXQlJZsVZbOpAKKo6TRNcWGTnA5wpt8pcE\nIRh7WM/KUrfE7K7FpSGa6Gjc8W44dLak7uAU1aECgYEAwt10W8n/6GcMOcMjB3vk\ny59AgU32D9WxoHjx9j3J1K0T+W+HvUbcOeUVIjSgbWQzvT+PD9FV139OMK0LrJ/O\nDuoWndydg2CMjEFRavTlhbQqkjcrfFMxS5hWPMSSb1q9/EfUbj9WYGII8D0AcNSZ\nEpSkEJpgtoPepglZS0syOqECgYBBsKVU5Nd0b9VV0sbCsCNIE4WImdi4wnUyP3uv\noCaDKPCiMKgv+rYi11beqSEOZz0z1S3PdMAj6v/mmdCc+nNcNJYmNAGCx36FEKYB\n0yP21ZvGZSuYAHl1pTWN1sbu0jOUJ/3mTSngy2XIFD64Z/ENEpwjfC4tDU9GwPea\nd4npYQKBgDj3wXOkns7iU0vHP2+QgSW2Crk3IfoIJaow6cFZxpiakt170IJLo8oz\nZhLW+OsFSXPI+kla9Xz/f6YWozykDciDOGO4e4CI4X2YxaoHoX3rlMLiDFlzfwD8\n/yvOPkbX72OhnpO/vJp0YSBFmNwSZ8D96XdNcUwyEU9tSCBVBakn\n-----END RSA PRIVATE KEY-----\n", 3072 => "-----BEGIN RSA PRIVATE KEY-----\n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\n-----END RSA PRIVATE KEY-----\n", 4096 => "-----BEGIN RSA PRIVATE KEY-----\n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\n-----END RSA PRIVATE KEY-----\n");
function random_string($len)
{
    $res = '';
    for ($i = 0; $i < $len; $i++) {
        $res .= chr(mt_rand(0, 255));
    }
    return $res;
}
foreach ($privkeys as $keylen => $privkey) {
    //$str = substr(base64_encode(random_string(384)), 0, 384);
    $str = random_string(4096);
    echo "keylen: {$keylen}, strlen(str): " . strlen($str) . "\n";
    $ssl = new ssl();
    $privkey = $ssl->load_privkey($privkey);
    $pubkey = $ssl->privkey_to_pubkey($privkey);
    $enc = $ssl->pubkey_encrypt($str, $pubkey);
    $dec = $ssl->privkey_decrypt($enc, $privkey);
    echo "len(enc): " . strlen($enc) . ", len(dec): " . strlen($dec) . "\n";
    if ($dec != $str) {
        echo "Didn't decrypt properly\n";
    } else {
        echo "All is well\n";
    }
}
Пример #8
0
<?php

// clientest.php
// Test code for the Trubanc client
require_once "client.php";
require_once "fsdb.php";
require_once "ssl.php";
$db = new fsdb("../clientdb");
$ssl = new ssl();
$client = new client($db, $ssl);
$t = $client->t;
/*
echo $client->format_value(10000, 0, 0) . "\n";
echo $client->format_value(10000, 0, 3) . "\n";
echo $client->format_value(12300000, 7, 3) . "\n";
echo $client->format_value("1234567890123", 7, 3) . "\n";
return;
*/
$url = "http://localhost/trubanc";
/*
$server = new serverproxy($url);
echo $server->process("hello") . "\n";
return;
*/
$passphrase3 = "a really lousy passphrase";
$err = $client->newuser($passphrase3, 512);
if ($err) {
    echo "{$err}\n";
}
$err = $client->login($passphrase3);
if ($err) {
Пример #9
0
 /**
  * Return the static file path
  * @Developer Brandon Hansen
  * @Date April 19, 2010
  * @Param (string) $url
  * @Return (string)
  */
 public static function static_path($url = '')
 {
     return $url;
     return str_replace('http://', ssl::correct_http() . '://', url::site($url));
     return str_replace('http', ssl::correct_http(), Kohana::config('config.static_file_path')) . $url;
 }
Пример #10
0
function doit()
{
    global $dbdir, $bank_name, $bankurl;
    global $template_file;
    $init = mqreq('init');
    $initadmin = mqreq('initadmin');
    $drawadmin = mqreq('drawadmin');
    $passphrase = mqreq('passphrase');
    $verification = mqreq('verification');
    $bankpass = mqreq('bankpass');
    $name = mqreq('name');
    $random = mqreq('random');
    $sig = mqreq('sig');
    require_once "lib/fsdb.php";
    require_once "lib/ssl.php";
    require_once "lib/server.php";
    $ssl = new ssl();
    $db = new fsdb($dbdir);
    if ($init) {
        if (!$passphrase) {
            $error = "Passphrase must be entered";
        } elseif ($passphrase != $verification) {
            $error = "Passphrase doesn't match verification. Try again.";
        } else {
            $server = new server($db, $ssl, false, $bank_name, $bankurl);
            $t = $server->t;
            $bankid = $server->bankid;
            $tokenid = $server->tokenid;
            $msg = "(0,bankid,0):0";
            $res = $server->process($msg);
            $args = $server->unpack_bankmsg($res, $t->BANKID);
            if (is_string($args)) {
                $error = "Error testing server: {$args}";
            } else {
                $bal = $db->get("account/{$bankid}/balance/main/{$tokenid}");
                if (!$bal) {
                    $error = "Bank has no token balance";
                } else {
                    $args = $server->unpack_bankmsg($bal, $t->ATBALANCE, $t->BALANCE);
                    if (is_string($args)) {
                        $error = "On parsing bank token balance: {$args}";
                    }
                }
            }
        }
        // Initialize client
        if (!$error) {
            $dbdir = '';
            if (file_exists('client/settings.php')) {
                require_once "client/settings.php";
            }
            $dbdir = "client/{$dbdir}";
            $template_file = "client/{$template_file}";
            $error = die_unless_client_properly_configured(true);
            if (!$error) {
                require_once "lib/client.php";
                $clientdb = new fsdb("{$dbdir}");
                $client = new client($clientdb, $ssl);
                if ($enabledebug) {
                    $client->showprocess = 'appenddebug';
                }
                $hash = $client->passphrasehash($passphrase);
                if ($clientdb->get("privkey/{$hash}") || $clientdb->get("account/{$bankid}/bank/{$bankid}/req")) {
                    $error = $client->login($passphrase);
                    if ($error || $bankid != $client->id) {
                        $error = "Passphrase not for bank account";
                    }
                } else {
                    $privkey = $db->get('privkey');
                    $pk = $ssl->load_private_key($privkey);
                    if (!$pk) {
                        $error = "Can't load bank private key";
                    } else {
                        openssl_pkey_export($pk, $privkey, $passphrase);
                        openssl_free_key($pk);
                        $error = $client->verifybank($bankurl, $bankid);
                        if (!$error) {
                            $error = $client->newuser($passphrase, $privkey);
                        }
                    }
                }
            }
        }
        if (!$error) {
            $drawadmin = true;
            $bankpass = $passphrase;
            require_once "lib/LoomRandom.php";
            $random = new LoomRandom();
            $random = $random->random_id();
            $sig = trimsig($ssl->sign($random, $db->get('privkey')));
        }
    } elseif ($initadmin) {
        if (!$passphrase) {
            $error = "Passphrase must be entered";
        } elseif ($passphrase != $verification) {
            $error = "Passphrase doesn't match verification. Try again.";
        } else {
            // This requires you to get here by knowing the bank passphrase
            $sig = trimsig($sig);
            $newsig = trimsig($ssl->sign($random, $db->get('privkey')));
            if ($newsig != $sig) {
                echo "<p>Hacking attempt foiled!</p>";
                echo "Lens: " . strlen($sig) . ", " . strlen($newsig) . "<br>\n";
                echo "<pre>\"{$sig}\"\n\n\"{$newsig}\"</pre>";
                return;
            }
            if (!$server) {
                $server = new server($db, $ssl, false, $bank_name, $bankurl);
            }
            $t = $server->t;
            $bankid = $server->bankid();
            $tokenid = $server->tokenid;
            if (file_exists('client/settings.php')) {
                require_once "client/settings.php";
            }
            $dbdir = "client/{$dbdir}";
            $template_file = "client/{$template_file}";
            $error = die_unless_client_properly_configured(true);
            if (!$error) {
                require_once "lib/client.php";
                $clientdb = new fsdb("{$dbdir}");
                $client = new client($clientdb, $ssl);
                if ($enabledebug) {
                    $client->showprocess = 'appenddebug';
                }
                $hash = $client->passphrasehash($passphrase);
                if (!$clientdb->get("privkey/{$hash}")) {
                    // Create the new account
                    $error = $client->newuser($passphrase);
                } else {
                    $error = $client->login($passphrase);
                }
                if (!$error) {
                    $id = $client->id;
                    if ($clientdb->get("account/{$id}/bank/{$bankid}/req")) {
                        $error = 'Account already exists for that passphrase. ' . 'Use the <a href="client/">client interface</a> to administer.';
                    } else {
                        $error = $client->login($bankpass);
                        if (!$error) {
                            $error = $client->addbank($bankurl);
                        }
                        if (!$error) {
                            $error = $client->setbank($bankid);
                        }
                        if (!$error) {
                            $error = $client->spend($id, $tokenid, "10000");
                        }
                        if ($error) {
                            $error = "While spending tokens from bank: {$error}";
                        }
                    }
                    if (!$error) {
                        $error = $client->login($passphrase);
                        if (!$error) {
                            $error = $client->addbank($bankurl, $name);
                        }
                        if (!$error) {
                            ?>
<p>Your bank is now ready for business. You may now login as administrator in the
<a href="client/">Client interface</a>, accept your initial tokens from
the bank, and start inviting customers.</p>
<?php 
                            return;
                        }
                    }
                }
            }
        }
    }
    if (!$error) {
        $error = "&nbsp;";
    }
    if ($drawadmin) {
        ?>
<p>Congratulations! You have succesfully initialized your bank.</p>

<p>Use the form below to create an administration account for your bank.
Use the bank's account only to spend usage tokens to the administration account.
Use the administration account to mint coupons, and to conduct other
bank business.</p>

<p style="color: red;"><?php 
        echo $error;
        ?>
</p>
<form method="post" action="./bankinit.php" autocomplete="off">
<input type="hidden" name="drawadmin" value="true"/>
<input type="hidden" name="bankpass" value="<?php 
        echo $bankpass;
        ?>
"/>
<input type="hidden" name="random" value="<?php 
        echo hsc($random);
        ?>
"/>
<input type="hidden" name="sig" value="<?php 
        echo hsc($sig);
        ?>
"/>
<table>
<tr>
<td><b>Admin Passphrase:</b></td>
<td><input type="password" name="passphrase" size="50"/></td>
</tr>
<tr>
<td><b>Verification:</b></td>
<td><input type="password" name="verification" size="50"/></td>
</tr>
<tr>
<tr>
<td><b>Name (optional):</b></td>
<td><input type="text" name="name" size="40" value="<?php 
        echo $name;
        ?>
"/></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="initadmin" value="Create Admin Account"/></td>
</tr>
</table>
</form>
<?php 
        return;
    }
    ?>
<p style="color: red;"><?php 
    echo $error;
    ?>
</p>
<form method="post" action="./bankinit.php" autocomplete="off">
<table>
<tr>
<td><b>Bank Passphrase:</b></td>
<td><input type="password" name="passphrase" size="50"/></td>
</tr>
<tr>
<td><b>Verification:</b></td>
<td><input type="password" name="verification" size="50"/></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="init" value="Initialize"/></td>
</tr>
</table>
</form>
<?php 
}