removing the bank Website

This commit is contained in:
Marcello Stanisci 2015-11-17 21:48:37 +01:00
parent ab73adebf9
commit bdde6093d5
5 changed files with 33 additions and 537 deletions

View File

@ -1,3 +0,0 @@
This directory is the root of the "demo" bank website. The
page being served simulates what a real bank does when transferring
funds to some mint via SEPA.

View File

@ -1,91 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Fake Wire Transfer</title>
<script>
/*
@licstart The following is the entire license notice for the
JavaScript code in this page.
Copyright (C) 2014,2015 GNUnet e.V.
The JavaScript code in this page is free software: you can
redistribute it and/or modify it under the terms of the GNU
Lesser General Public License (GNU LGPL) as published by the Free Software
Foundation, either version 2.1 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU LGPL for more details.
As additional permission under GNU LGPL version 2.1 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU LGPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this page.
*/
</script>
</head>
<body>
<!--
This page's main aim is to forward the fake wire transfer
request to the demonstrator and to inform the customer
about the result. In a real-world deployment, this
page would not be required as the customer would do a
wire transfer with his bank instead.
-->
<?php
// Evaluate form
$reserve_pk = $_POST['reserve_pk'];
$kudos_amount = $_POST['kudos_amount'];
$mint = $_POST['mint_rcv'];
// check if the webform has given a well formed amount
$ret = preg_match ('/[0-9]+(\.[0-9][0-9]?)? [A-Z]+/', $kudos_amount, $matches);
if ($matches[0] != $_POST['kudos_amount'])
{
http_response_code(400); // BAD REQUEST
echo "Malformed amount given";
return;
}
$amount_chunks = preg_split('/[ \.]/', $_POST['kudos_amount']);
$amount_fraction = 0;
if (count($amount_chunks) > 2)
$amount_fraction = (double) ("0." . $amount_chunks[1]);
$amount_fraction = $amount_fraction * 1000000;
// pack the JSON
$json = json_encode (array ('reserve_pub' => $reserve_pk,
'execution_date' => "/Date(" . time() . ")/",
'wire' => array ('type' => 'test'),
'amount' => array ('value' => intval($amount_chunks[0]),
'fraction' => $amount_fraction,
'currency' => $amount_chunks[count($amount_chunks) - 1])));
// craft the HTTP request
$req = new http\Client\Request ("POST",
"http://" . $mint . "/admin/add/incoming",
array ("Content-Type" => "application/json"));
$req->getBody()->append ($json);
// execute HTTP request
$client = new http\Client;
$client->enqueue($req)->send ();
$resp = $client->getResponse ();
// evaluate response
$status_code = $resp->getResponseCode ();
http_response_code ($status_code);
if ($status_code != 200)
{
echo "Error $status_code when faking the wire transfer. Please report to taler@gnu.org";
}
else
{
echo "Pretend wire transfer successful. Exit through the <a href=\"http://shop.demo.taler.net\">gift shop</a> and enjoy shopping!";
}
?>
</body>
</html>

View File

@ -1,115 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Taler's "demo" bank</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script>
/*
@licstart The following is the entire license notice for the
JavaScript code in this page.
Copyright (C) 2015 GNUnet e.V.
The JavaScript code in this page is free software: you can
redistribute it and/or modify it under the terms of the GNU
Lesser General Public License (GNU LGPL) as published by the Free Software
Foundation, either version 2.1 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU LGPL for more details.
As additional permission under GNU LGPL version 2.1 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU LGPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this page.
*/
</script>
</head>
<body id="css-zen-garden" onload="signal_me()">
<div class="explanation" id="zen-explanation" role="article">
<h1>Welcome to the KUDOS bank!</h1>
<p>Through this page, you can wire funds to our demonstrator mint
in order to create your reserves from where withdraw your coins.
Once the reserve is created, the withdrawing of coins will be
entirely handled by the wallet, with no intervention required
to the user.
</p>
<p>
Enter the deisired amount, and click 'Select mint'. Your wallet
will make you choose a mint and will automatically submit all the
needed data into the bank's system. At the end of the withdrawal,
the wallet will show you the 'All coins withdrawn' nice message.
</p>
<p>Still missing a wallet? <a href="http://demo.taler.net/extension">Install one!</a>
</p>
</div>
<form id="reserve-form" name="tform" action="/fake_wire_transfer.php" method="POST">
<input type="text" id="reserve-pk-input" name="reserve_pk" hidden></input>
Amount to withdraw:
<select id="reserve-amn-id" name="kudos_amount">
<option value="1 KUDOS">1 KUDOS</option>
<option value="2 KUDOS">2 KUDOS</option>
<option value="3.01 KUDOS">3.01 KUDOS</option>
<option value="5 KUDOS">5 KUDOS</option>
<option value="10 KUDOS">10 KUDOS</option>
<option value="10.50 KUDOS">10.50 KUDOS</option>
<option value="1000.3 KUDOS">1000.3 KUDOS</option>
</select>
<input type="text" name="mint_rcv" id="kudos-mint" hidden></input>
<input id="select-mint"
type="button"
value="Select mint"
onclick="wire_funds()"
disabled></input>
</form>
</div>
<script type="text/javascript">
document.body.addEventListener("taler-wallet-present",
has_taler_wallet_cb,
false);
document.body.addEventListener("taler-unload",
no_taler_wallet_cb,
false);
document.body.addEventListener("taler-load",
signal_me,
false);
function wire_funds(){
var wallet_param = {
form_id : 'reserve-form',
input_amount : 'reserve-amn-id',
input_pub : 'reserve-pk-input',
mint_rcv : 'kudos-mint'
//'base_url' : window.location.host not anymore: must be given by the mint
};
var trigger = new CustomEvent("taler-create-reserve", {detail: wallet_param});
document.body.dispatchEvent(trigger);
};
/* The mint signals itself to the wallet */
function signal_me(){
var eve = new Event('taler-checkout-probe');
document.body.dispatchEvent(eve);
};
function has_taler_wallet_cb(){
var button = document.getElementById("select-mint");
button.removeAttribute("disabled");
}
function no_taler_wallet_cb(){
var button = document.getElementById("select-mint");
button.setAttribute("disabled", "true");
}
</script>
</body>
</html>

View File

@ -1,328 +0,0 @@
/* css Zen Garden submission 020 - 'Friendly Beaches' by Sophie G - www.sophie-g.net */
/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
/* All associated graphics copyright 2003, Sophie G */
/* IMPORTANT */
/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
body {
background-color: #FFFFFF;
margin: 0px;
padding: 10px;
font-family: Ubuntu, Tahoma, Sans;
font-size: 90%;
}
p {
line-height: 180%;
}
.page-wrapper {
background-color: #EDEEF0;
border: 1px solid #DAD5D9;
padding: 0px;
margin: 0px;
}
abbr {
border-bottom: 1px #6BA0D2 dashed;
}
header,h1 {
font-family: Impact, Georgia, serif;
background-color: #FFFFFF;
}
header h1 {
height: 190px;
margin: 0px;
background-color: black;
background-image: url(Gala.jpg);
background-repeat: no-repeat;
}
header h1, header h2 {
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
}
header h2 {
background-color: #EDEEF0;
margin: 0px;
height: 24px;
padding: 0px 14px 2px 14px;
background-image: url(headerh2.gif);
background-repeat: no-repeat;
}
header h2 abbr {
color: #FFF;
border-bottom: 1px #FFF dashed;
}
.summary p:first-child {
position: absolute;
right: 21px;
top: 21px;
width: 12em;
height: 165px;
padding: 3px 0 0 0;
margin: 0px;
border: 1px solid #0C2953;
text-align: center;
font-size: 90%;
font-family: Impact, Georgia, serif;
line-height: 110%;
color: #FFF;
background-image: url(summary.jpg);
background-repeat: no-repeat;
background-position: 50% 100%;
background-color: #0C2953;
}
.preamble {
padding: 0px 15em 0px 3em;
}
.preamble h3 {
margin: 15px 0px 0px 0px;
padding: 6px 20px 2px 6px;
text-align: left;
font-size: 180%;
font-variant: small-caps;
color: #6BA0D2;
background-image: url(bordDroitPreambleh3.gif);
background-repeat: no-repeat;
background-position: 100% 0px;
background-color: #F6F7F7;
}
.preamble h3::before {
content: " ";
display: inline-block;
padding: 35px 0px 30px 48px;
background-image: url(preambleShell.jpg);
background-repeat: no-repeat;
background-position: 0px 50%;
vertical-align: middle;
}
.preamble p {
text-align: justify;
}
.preamble p:nth-child(2), .preamble p:nth-child(3) {
margin: 0px;
padding: 10px 20px 2px 6px;
background-image: url(bordDroitPreamble.gif);
background-repeat: repeat-y;
background-position: 100% 0px;
background-color: #F6F7F7;
}
.preamble p:nth-child(4) {
margin: 0px;
padding: 0px;
background-image: url(bordBasPreamble.gif);
background-repeat: no-repeat;
background-position: 100% 100%;
background-color: #F6F7F7;
padding: 10px 20px 20px 6px;
}
.preamble p:nth-child(4)::after {
content: " ";
display: block;
margin: 0px;
padding: 0 20px 0 6px;
background-image: url(bordBasPreambleGauche.gif);
background-repeat: no-repeat;
background-position: 0% 100%;
}
.supporting {
margin: 0px;
padding: 10px 16em 0px 1em;
font-size: 90%;
}
.explanation, .participation, .benefits, .requirements {
border: 2px solid #FFF;
padding: 0px;
}
.explanation {
margin: 0px 0px 10px 0px;
}
.participation {
margin: 0px 0px 10px 0px;
float: left;
width: 30%;
}
.benefits {
margin: 0px 0px 10px 32%;
}
.requirements {
margin: 0px 0px 10px 32%;
}
.supporting h3 {
margin: 0px;
padding: 5px 30px 1px 2px;
text-align: left;
font-size: 120%;
font-variant: small-caps;
color: #6BA0D2;
border-bottom: 1px solid #6BA0D2;
background-color: #F6F7F7;
background-repeat: no-repeat;
background-position: 100% 50%;
}
.explanation h3 {
background-image: url(explanationShell.jpg);
}
.supporting form {
padding: 30px;
display: inline-block;
clear: both;
width: 120em;
}
.supporting input {
margin: 8px;
}
.participation h3 {
background-image: url(participationShell.jpg);
}
.benefits h3 {
background-image: url(benefitsShell.jpg);
}
.requirements h3 {
background-image: url(requirementsRock.jpg);
}
.supporting p {
text-align: justify;
margin: 10px 0px 0px 0px;
padding: 1px 3px 2px 3px;
}
.supporting a:link {
color: #0083FF;
font-weight: bold;
}
.supporting a:visited {
color: #204160;
font-weight: bold;
}
.supporting a:hover, .supporting a:active {
color: #8C0000;
font-weight: bold;
text-decoration: none;
}
.sidebar, .summary p:last-child {
font-size: 90%;
font-family: Impact, Georgia, serif;
position: absolute;
right: 21px;
width: 12em;
border: 1px solid #0C2953;
padding: 0px;
margin: 0px;
background-color: #A4ACB3;
}
.summary p:last-child {
height: 50px;
text-align: center;
top: 217px;
font-size: 90%;
display: block;
padding: 3px 0;
color: #FFF;
}
.sidebar {
top: 266px;
}
.sidebar h3 {
background-color: #0C2953;
color: #FFF;
margin: 0px;
padding: 30px 1px 1px 1px;
background-repeat: no-repeat;
}
.sidebar h3.select {
background-image: url(selecth3.jpg);
background-position: 50% 0%;
}
.sidebar h3.favorites {
border-top: 1px solid #0C2953;
background-image: url(favoritesh3.jpg);
background-position: 40% 100%;
}
.sidebar h3.archives {
border-top: 1px solid #0C2953;
background-image: url(archivesh3.jpg);
background-position: 40% 100%;
}
.sidebar h3.resources {
border-top: 1px solid #0C2953;
background-image: url(resourcesh3.jpg);
background-position: 50% 30%;
}
.sidebar ul {
list-style-type: none;
font-size: 90%;
color: #FFF;
margin: 0px;
padding: 0px;
background-color: #A4ACB3;
}
.sidebar li {
padding: 3px 2px 3px 2px;
margin-bottom: 4px;
}
.sidebar li:hover {
padding: 2px 1px 2px 1px;
border: 1px dotted #0C2953;
background-color: #6BA0D2;
}
.summary p:last-child a:link {
color: #FFF;
font-weight: bold;
}
.summary p:last-child a:visited {
color: #204160;
}
.summary p:last-child a:hover, .summary p:last-child a:active {
color: #FFD800;
font-weight: bold;
text-decoration: none;
}
.sidebar a:link, .sidebar a:visited {
border-left: 6px solid #FFF;
padding-left: 2px;
font-weight: bold;
color: #FFF;
}
.sidebar a:visited {
color: #204160;
}
.sidebar a:hover, .sidebar a:active {
border-left: 6px solid #FFD800;
padding-left: 2px;
color: #FFD800;
text-decoration: none;
font-weight: bold;
}
.sidebar a.designer-name:link, .sidebar a.designer-name:visited {
border-left: none;
padding-left: 0px;
font-weight: normal;
color: #FFF;
}
.sidebar a.designer-name:hover, .sidebar a.designer-name:active {
border-left: none;
padding-left: 0px;
color: #FFD800;
text-decoration: none;
}
.sidebar abbr {
border-bottom: 1px #FFF dashed;
}
footer {
clear: both;
text-align: right;
margin: 0px -16em 0px 0px;
padding: 25px 0px 0px 0px;
background-repeat: no-repeat;
background-image: url(signSoph.gif);
background-position: 0% 95%;
}
footer a {
font-size: 70%;
font-family: Impact, Georgia, serif;
}

View File

@ -312,6 +312,39 @@ verify_signatures (const struct TALER_MINT_DenomPublicKey *dki,
&dki->fee_deposit); &dki->fee_deposit);
dr.merchant = *merchant_pub; dr.merchant = *merchant_pub;
dr.coin_pub = *coin_pub; dr.coin_pub = *coin_pub;
char *contract_str = GNUNET_STRINGS_data_to_string_alloc (h_contract,
sizeof (struct GNUNET_HashCode));
char *wire_str = GNUNET_STRINGS_data_to_string_alloc (h_wire,
sizeof (struct GNUNET_HashCode));
char *merchant_pub_str = GNUNET_STRINGS_data_to_string_alloc (merchant_pub,
sizeof (struct TALER_MerchantPublicKeyP));
char *coin_pub_str = GNUNET_STRINGS_data_to_string_alloc (coin_pub,
sizeof (struct TALER_CoinSpendPublicKeyP));
printf ("verifying:\ncontract [%s]\nwire [%s]\n"
"timestamp [%llu]\nrefund deadline [%llu]\n"
"transaction id [%llu]\namount [%s %llu.%lu]\n"
"fee deposit [%s %llu.%lu]\nmerch pub [%s]\n"
"coin pub [%s]\n",
contract_str,
wire_str,
timestamp.abs_value_us,
refund_deadline.abs_value_us,
transaction_id,
amount->currency,
amount->value,
amount->fraction,
dki->fee_deposit.currency,
dki->fee_deposit.value,
dki->fee_deposit.fraction,
merchant_pub_str,
coin_pub_str);
GNUNET_free (contract_str);
GNUNET_free (wire_str);
GNUNET_free (merchant_pub_str);
GNUNET_free (coin_pub_str);
if (GNUNET_OK != if (GNUNET_OK !=
GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_WALLET_COIN_DEPOSIT, GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_WALLET_COIN_DEPOSIT,
&dr.purpose, &dr.purpose,