#= require ../js/jquery-1.8.2.min.js #= require ../js/jquery-ui.min.js #= require ../js/jquery.printElement.min.js #= require ../js/check_password.js #= require ../js/bootstrap.min.js #= require ../js/jsbn.js #= require ../js/jsbn2.js #= require ../js/crypto-min.js #= require ../js/2.5.3-crypto-sha256.js #= require ../js/sha512.js #= require ../js/rfc1751.js #= require ../js/bitcoinjs-min-1.0.2.js #= require ../js/bitcoinjs-min.js #= require ../js/modsqrt.js #= require ../js/bip32.js #= require ../js/secure_random.js #= require ../js/qrcode.js #= require ../js/aes.js #= require ../js/key.js g = exports ? this g.proceed = false $(-> $('#encryption-password').pwstrength(showVerdicts: false) user = $('#username').val() $.getJSON("/#{user}.json", (data) -> $('#pubkey').val(data.pubkey) $('#address').val(data.address) $('#setup').fadeIn() ) $('#pubkey').blur(-> if check_address($(this).val()) $(this).parent().removeClass('has-error') else $(this).parent().addClass('has-error') ) $('#generate').click(-> key = new Key() g.pubkey = key.extended_public_key_string() g.privkey = key.extended_private_key_string() $('#modal').modal() $('#privkey_text').html(g.privkey) $('#qr').html('') new QRCode('qr', text: g.privkey, width: 260, height: 260) ) $('#encryption-password').keyup((e) -> return if e.keyCode is 9 or e.keyCode is 16 g.enc_privkey = CryptoJS.AES.encrypt(g.privkey, $(this).val()).toString() g.enc_privkey = g.privkey if $(this).val() == '' $('#privkey_text').html(g.enc_privkey) $('#qr').html('') new QRCode('qr', text: g.enc_privkey, width: 260, height: 260) if $(this).val() $('#status').html('(Encrypted)') else $('#status').html('(Unencrypted)') ) $('#confirm').blur(-> $('#confirm_error').remove() if $('#password').val() != $('#confirm').val() $('#password, #confirm').parent().addClass('has-error') $('#confirm').parent().after('
Passwords don\'t match
') else $('#password, #confirm').parent().removeClass('has-error') ) $('#encryption-password, #encryption-confirm').keyup((e) -> check_passwords(e) unless e.keyCode is 9) $('#encryption-password, #encryption-confirm').blur((e) -> check_passwords(e)) check_passwords = (e) -> if $('#encryption-password').val() != $('#encryption-confirm').val() or $('#encryption-password').val() is '' $('#encryption-password, #encryption-confirm').parent().addClass('has-error') $('#modal .alert').removeClass('alert-success').addClass('alert-danger') else $('#encryption-password, #encryption-confirm').parent().removeClass('has-error') $('#modal .alert').removeClass('alert-danger').addClass('alert-success') if $('.progress-bar-success').length > 0 $('#encryption-password').parent().removeClass('has-error') else $('#encryption-password').parent().addClass('has-error') $('#print').click(-> $('#key-dialog').printElement(printMode: 'popup') ) $('a[data-toggle="tab"]').on('shown.bs.tab', (e) -> $('#print').toggle(e.target.attributes.href.value == '#step1') ) $('#close').click(-> $('#modal .form-control').blur() if $('#modal .has-error').length > 0 $('#step1_link').click() $('#modal .has-error').effect('shake', 500) else g.update_key = true $('#modal').modal('hide') ) $('#encrypt').submit(-> $('#close').click(); return false) $('#modal').on('show.bs.modal', -> $('#encryption-password, #encryption-confirm').val('').keyup().parent().removeClass('has-error') $('#modal .alert').removeClass('alert-success').addClass('alert-danger') ) $('#modal').on('shown.bs.modal', -> g.update_key = false $('#encryption-password').focus() ).on('hidden.bs.modal', -> if g.update_key $('#pubkey').val(g.pubkey) $('#privkey').val(g.enc_privkey) ) $('#setup').submit(-> $('#setup .form-control').blur() if $('#setup .has-error').length > 0 $('#setup .has-error').effect('shake', 500) return false ) ) check_address = (address) -> try bitcoin.Address.fromBase58Check(address) return true catch return isBip32(address) isBip32 = (address) -> try new BIP32(address) return true catch return false