Advertisement
Guest User

Untitled

a guest
Dec 30th, 2018
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.88 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: Krzysztof
  5.  * Date: 28.12.2018
  6.  * Time: 20:26
  7.  */
  8.  
  9. // insert your fancy crypto currency name here
  10. $crypto_name = 'Grünerium';
  11. // enter root domain here ending with /
  12. $root = 'http://pluton.kt.agh.edu.pl/~krbulanda/';
  13.  
  14. // establish connection to postgres database
  15. $db_conn = pg_connect("host=localhost dbname= user= password=");
  16.  
  17. if (isset($_POST['create_wallet']) and $db_conn) {
  18.     // user defined secret phrase
  19.     $secret_to_encrypt = $_POST['secret_to_encrypt'];
  20.     if (is_null($secret_to_encrypt)) {
  21.         // do some shit to make sure that user is not retarded
  22.         echo('xd');
  23.     } else {
  24.         // no need to escape as it will be ciphered
  25.         // $secret_to_encrypt_escaped = pg_escape_string($secret_to_encrypt);
  26.         // generate new key pair
  27.         $res = openssl_pkey_new();
  28.         // Get private key
  29.         openssl_pkey_export($res, $private_key);
  30.         // Get public key
  31.         $public_key = openssl_pkey_get_details($res);
  32.         $public_key = $public_key['key'];
  33.         // encrypt secret with private key
  34.         openssl_private_encrypt($secret_to_encrypt, $secret_encrypted, $private_key);
  35.         $secret_encrypted_hashed = hash("sha256", $secret_encrypted);
  36.         $creation_query_output = pg_query($db_conn, "SELECT create_wallet('" . $secret_encrypted_hashed . "','" . $public_key . "')");
  37.     }
  38. }
  39.  
  40. /*
  41.     to do
  42.     - check if escaped break lines in keys work in open_ssl php lib
  43. */
  44. ?>
  45.  
  46. <!DOCTYPE html>
  47. <html lang="en">
  48. <head>
  49.     <meta charset="utf-8">
  50.     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  51.     <meta name="description" content="">
  52.     <meta name="author" content="">
  53.  
  54.     <!-- Chrome, Firefox OS and Opera -->
  55.     <meta name="theme-color" content="#343a40">
  56.     <!-- Windows Phone -->
  57.     <meta name="msapplication-navbutton-color" content="#343a40">
  58.     <!-- iOS Safari -->
  59.     <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
  60.  
  61.     <title><?php echo($crypto_name); ?></title>
  62.  
  63.     <link rel="stylesheet" href="bootstrap.min.css">
  64.     <link href="style.css" rel="stylesheet">
  65. </head>
  66.  
  67. <body>
  68.  
  69. <header id="TOP">
  70.     <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
  71.         <a class="navbar-brand active" href="<?php echo($root); ?>"><?php echo($crypto_name); ?></a>
  72.  
  73.         <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse"
  74.                 aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
  75.             <span class="navbar-toggler-icon"></span>
  76.         </button>
  77.  
  78.         <div class="collapse navbar-collapse" id="navbarCollapse">
  79.             <ul class="navbar-nav mr-auto">
  80.  
  81.                 <li class="nav-item" id="create_wallet">
  82.                     <a class="text-success nav-link active" href="<?php echo($root); ?>create_wallet.php">Create
  83.                         wallet</a>
  84.                 </li>
  85.                 <li class="nav-item" id="new_transaction">
  86.                     <a class="text-warning nav-link active"
  87.                        href="<?php echo($root); ?>new_transaction.php">Send <?php echo($crypto_name); ?></a>
  88.                 </li>
  89.                 <li class="nav-item" id="show_transactions">
  90.                     <a class="text-info nav-link active" href="<?php echo($root); ?>show_transactions.php">Wallet
  91.                         summary</a>
  92.                 </li>
  93.                 <li class="nav-item" id="delete_wallet">
  94.                     <a class="text-danger nav-link active" href="<?php echo($root); ?>delete_wallet.php">Delete
  95.                         wallet</a>
  96.                 </li>
  97.  
  98.             </ul>
  99.         </div>
  100.     </nav>
  101. </header>
  102.  
  103. <main class="container">
  104.  
  105.     <h3 class="mt-5 text-center"><?php echo($crypto_name); ?> wallet creation</h3>
  106.  
  107.  
  108.     <form method="post">
  109.  
  110.         <div class="form-group">
  111.             <label for="secret_to_encrypt">Your secret passphrase:</label>
  112.             <input type="password" class="form-control" id="secret_to_encrypt" name="secret_to_encrypt"
  113.                    placeholder="please remember it as it is necessary to send your <?php echo($crypto_name); ?>"
  114.                    required>
  115.         </div>
  116.  
  117.         <div class="text-center">
  118.             <button type="submit" name="create_wallet" class="btn btn-default">Create <?php echo($crypto_name); ?>
  119.                 wallet
  120.             </button>
  121.         </div>
  122.  
  123.     </form>
  124.  
  125.     <?php
  126.     if (isset($creation_query_output)) {
  127.         if ($creation_query_output) {
  128.             echo('<h3 class="mt-5 text-center text-success">Wallet creation succeed</h3>');
  129.             echo('<label for="private_key">Your private key - necessary to send your crypto currency</label>');
  130.             echo('<input type="text" class="form-control" id="private_key" name="private_key" value="'.$private_key.'" disabled>');
  131.             echo('<label for="public_key">Your public key - check your wallet summary and share it when you want to trade with other people</label>');
  132.             echo('<input type="text" class="form-control" id="public_key" name="public_key" value="'.$public_key.'" disabled>');
  133.             echo('<h3 class="mt-5 text-center text-danger">Make sure to copy and store securely whole content of generated fields!</h3>');
  134.         }
  135.         else {
  136.             echo('Something went wrong, please retry '.$crypto_name.' wallet creation');
  137.         }
  138.     }
  139.     ?>
  140.  
  141. </main>
  142.  
  143. <footer class="footer">
  144.     <div class="container">
  145.         <span class="text-bold"><a class="text-muted" target="_blank"
  146.                                    href="<?php echo($root); ?>"><?php echo($crypto_name); ?></a> - Krzysztof Bulanda 2019</span>
  147.     </div>
  148. </footer>
  149.  
  150. <script src="jquery-3.3.1.js"></script>
  151. <script src="popper.min.js"></script>
  152. <script src="bootstrap.min.js"></script>
  153. </body>
  154. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement