G2A Many GEOs
SHARE
TWEET

Untitled

a guest Oct 22nd, 2018 113 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function decrypt(data, password, success, error) {
  2.  
  3.     var modes = [ new Crypto.mode.CBC(Crypto.pad.iso10126), new Crypto.mode.OFB(Crypto.pad.iso7816), new Crypto.mode.CBC(Crypto.pad.NoPadding), new Crypto.mode.CBC(Crypto.pad.ZeroPadding)];
  4.  
  5.     for (var mi = 0; mi < modes.length; ++mi) {
  6.         var mode = modes[mi];
  7.                
  8.         for (var i = 10; i < 20; ++i) {                        
  9.             try {
  10.                 var decoded = Crypto.AES.decrypt(data, password, { mode: mode, iterations : i });
  11.  
  12.                 if (decoded != null && decoded.length > 0) {
  13.                     if (success(decoded)) {
  14.                         return decoded;
  15.                     };
  16.                 };
  17.             } catch (e) {
  18.                 console.log(e);
  19.             }
  20.         }
  21.    
  22.         for (var i = 0; i < 10; ++i) {             
  23.             try {
  24.                 var decoded = Crypto.AES.decrypt(data, password, { mode: mode, iterations : i });
  25.  
  26.                 if (decoded != null && decoded.length > 0) {                                                   
  27.                     if (success(decoded)) {
  28.                         return decoded;
  29.                     };
  30.                 };
  31.             } catch (e) {
  32.                 console.log(e);
  33.             }
  34.         }
  35.     }
  36.  
  37.     if (error != null)
  38.         error();
  39.    
  40.     return null;
  41. }
  42.  
  43. function do_decrypt() {
  44.     try {
  45.        document.getElementById('error').innerHTML = '';
  46.    
  47.        var encrypted = document.getElementById('enc-json').value;
  48.  
  49.        if (encrypted == null || encrypted.length == 0)
  50.             throw 'You must copy and paste your encrypted backup into the first text area';
  51.  
  52.         var password = document.getElementById('password').value;
  53.  
  54.         if (password == null || password.length == 0) {
  55.             throw 'You must enter a password';
  56.         }
  57.  
  58.         var decrypted = decrypt(encrypted, password, function(decrypted) {
  59.             try {                              
  60.                 obj = JSON.parse(decrypted);
  61.                
  62.                 return (obj != null);
  63.             } catch (e) {
  64.                 console.log(e);
  65.                 return false;
  66.             };
  67.         });
  68.  
  69.         if (decrypted == null || decrypted.length == 0)
  70.             throw 'No backup returned';
  71.        
  72.         var obj = JSON.parse(decrypted);
  73.        
  74.         if (obj.double_encryption) {
  75.             var pass = prompt("Please enter your second password", null);  
  76.            
  77.             for (var i = 0; i < obj.keys.length; ++i) {
  78.                 obj.keys[i].priv = decrypt(obj.keys[i].priv, obj.sharedKey + pass, isBase58);
  79.             }
  80.            
  81.             decrypted = JSON.stringify(obj);
  82.         }
  83.        
  84.         var ul = document.getElementById('ul-keys');
  85.         for (var i = 0; i < obj.keys.length; ++i) {
  86.             var li = document.createElement('li');
  87.             li.innerHTML = '<b>'+ obj.keys[i].addr + '</b>      -       ' + obj.keys[i].priv;
  88.             ul.appendChild(li);
  89.         }
  90.        
  91.         document.getElementById('plain-json').value = decrypted;
  92.              
  93.     } catch(e) {
  94.         console.log(e);
  95.  
  96.         document.getElementById('error').innerHTML = 'Unable to decrypt backup ' + e;
  97.     }
  98. }
RAW Paste Data
Ledger Nano X - The secure hardware wallet
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top