// 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}"; } function custmsg() {
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); } ?> <form method="post"> <table>
$err = $client->register('George Jetson'); if ($err) { echo "Register failed for user 1. {$err}\n"; } // Adding yourself as a contact won't happen, but it tests the code $err = $client->addcontact($id, "Me, myself, and I", "A little note to myself"); if ($err) { echo "{$err}\n"; } // Another account created by servertest.php $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"; $passphrase2 = "What do you think I'd use as a passphrase anyway?"; $pk = $ssl->load_private_key($privkey2); openssl_pkey_export($pk, $privkey2, $passphrase2); openssl_free_key($pk); $pubkey2 = $ssl->privkey_to_pubkey($privkey2, $passphrase2); $id2 = $ssl->pubkey_id($pubkey2); $err = $client->newuser($passphrase2, $privkey2); if ($err) { echo "Newuser failed for user 2. {$err}\n"; } $users = array(1 => array('idx' => 1, 'id' => $id, 'name' => 'George Jetson', 'passphrase' => $passphrase), 2 => array('idx' => 2, 'id' => $id2, 'name' => 'Jane Jetson', 'passphrase' => $passphrase2), 3 => array('idx' => 3, 'id' => $id3, 'name' => 'John Doe', 'passphrase' => $passphrase3)); $usernum = 1; $user = $users[$usernum]; $err = $client->login($user['passphrase']); if ($err) { echo "Error logging in as user {$usernum}: {$err}\n"; } else { echo "Logged in as user {$usernum}\n"; $banks = $client->getbanks(true); if (is_string($banks)) {