-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcreatekeys.html
More file actions
141 lines (129 loc) · 5.29 KB
/
createkeys.html
File metadata and controls
141 lines (129 loc) · 5.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Rexchain Wallet</title>
<link rel="stylesheet" type="text/css" href="css/sequentiawallet.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-rc.5/css/uikit.min.css" />
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700,900" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-rc.5/js/uikit.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-rc.5/js/uikit-icons.min.js"></script>
</head>
<body style="background-color: #fff;">
<!-- Main menu -->
<nav class="uk-navbar-container" uk-navbar="boundary-align: true; align: right;">
<div class="uk-navbar-left">
<ul class="uk-navbar-nav">
<li><a class="uk-navbar-item uk-logo" href="index.html"> Rexchain Wallet</a></li>
</ul>
</div>
<div class="uk-navbar-right">
<ul class="uk-navbar-nav">
<li>
<a class="uk-navbar-toggle" uk-navbar-toggle-icon href=""></a>
<div class="uk-navbar-dropdown">
<ul class="uk-nav uk-navbar-dropdown-nav">
<li id="menu_item"><a href="mailto:hola@prescrypto.com?Subject=RexChain-Contact">Contact</a></li>
</ul>
</div>
</li>
</ul>
</div>
</nav>
<!-- Closing Main menu -->
<!-- BEGIN Aside pub and private keys -->
<aside style="display:none;">
<textarea id="pubkey"></textarea>
<textarea id="privkey"></textarea>
</aside>
<!-- END Aside pub and private keys -->
<div class="grey-background" align="center" style="padding:150px 0 20px 0;">
<div id="box_pin_code" class="uk-margin" align="center">
<h2 style="color:#fff"><img style="height:40px;margin-bottom:10px;" src="media/light-locker.svg" alt=""> PIN</h2>
<p style="color:#fff;padding: 10px;"><strong>Enter a 4 digits pin code</strong><br>Make sure you remember it, you’ll need it for all your transactions.</p>
<div class="uk-form-controls">
<input id="pin_code" name="pin_code" class="uk-input" type="text" maxlength="4" placeholder="Enter PIN code" required />
</div>
</div>
</div>
<div align="center" id="success_button" >
<button class="uk-button uk-button-default" id="encrypt_privkey"> NEXT </button>
</div>
<script src="js/localforage.min.js"></script>
<script src="https://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/core-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/sha256.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
<script src="js/jsencrypt.js"></script>
<script src="js/wallet.js"></script>
<script>
$(document).ready(function() {
(function ($, localforage){
function setKeys(){
// Get the keys from localforage
localforage.getItem('privatekey', function(err, value){
$('#privkey').val(value);
});
localforage.getItem('publickey', function(err, value){
$('#pubkey').val(value);
});
};
setKeys();
})($, localforage);
});
//Variables
var alert_success = '<div class="uk-alert-success" uk-alert>\
<a class="uk-alert-close" uk-close></a>\
<p id="alert">';
var alert_error = '<div class="uk-alert-danger" uk-alert>\
<a class="uk-alert-close" uk-close></a>\
<p id="alert">';
var alert_end ='</p></div>';
//Functions
function verify_lenght(field){
//This method verify if length of a fields is empty
if (field.length == 4){
return true
}else {
$('#alert').html(alert_error+'ERROR. Please enter a pin from four digits; Please try again. '+alert_end);
return false
}
}
function hash_string(){
//This method calculate hash for the value from pin
var pin = CryptoJS.SHA256($('#pin_code').val());
var pin_hash = pin.toString(CryptoJS.enc.b64);
return pin_hash
}
function save_encrypt_privkey(){
//Encrypt private key and save in localforage
var privatekey = $('#privkey').val();
//Encrypt private key
var encrypt = CryptoJS.AES.encrypt(privatekey, hash_string());
var encrypt_b64 = encrypt.toString(CryptoJS.enc.b64);
//Save encrypt private key in localforage
localforage.setItem('privatekey', encrypt_b64).then(function(value){
$('#privkey').val(value);
console.log("Success Generated Keys!");
window.open("./genometrics.html","_self");
}).catch(function(e){
console.log(e);
});
}
//Events
$('#encrypt_privkey').click(function(){
if (verify_lenght($('#pin_code').val())){
save_encrypt_privkey();
}
});
//Validation for Pin code
$(function(){
$('#pin_code').keypress(function(e) {
if(isNaN(this.value + String.fromCharCode(e.charCode)))
return false;
})
});
</script>
</body>
</html>