@@ -173,6 +173,11 @@ <h1>scrypt-js</h1>
173173 < script type ="text/javascript ">
174174
175175 function get ( id ) { return document . getElementById ( id ) ; }
176+ function getValue ( id ) {
177+ var value = get ( id ) . value ;
178+ if ( value . match ( / ^ [ 0 - 9 ] + $ / ) ) { return parseInt ( value ) ; }
179+ return null ;
180+ }
176181 function normalized ( field ) {
177182 var value = get ( 'pbkdf-' + field ) . value ;
178183 var forms = document . getElementById ( 'form-' + field ) . getElementsByClassName ( 'selected' ) ;
@@ -229,12 +234,12 @@ <h1>scrypt-js</h1>
229234 done = false ;
230235
231236 try {
232- var password = normalized ( 'password' ) ; //get('pbkdf-password').value;
233- var salt = normalized ( 'salt' ) ; // get('pbkdf-salt').value;
234- var N = 1 << parseInt ( get ( 'pbkdf-Nlog2' ) . value ) ;
235- var r = get ( 'pbkdf-r' ) . value ;
236- var p = get ( 'pbkdf-p' ) . value ;
237- var dkLen = get ( 'pbkdf-dkLen' ) . value ;
237+ var password = normalized ( 'password' ) ;
238+ var salt = normalized ( 'salt' ) ;
239+ var N = 1 << getValue ( 'pbkdf-Nlog2' ) ;
240+ var r = getValue ( 'pbkdf-r' ) ;
241+ var p = getValue ( 'pbkdf-p' ) ;
242+ var dkLen = getValue ( 'pbkdf-dkLen' ) ;
238243 console . log ( password , salt , N , r , p )
239244
240245 } catch ( error ) {
@@ -251,30 +256,30 @@ <h1>scrypt-js</h1>
251256 ', password=0x' + password . toString ( 'hex' ) + ', salt=0x' + salt . toString ( 'hex' ) ) ;
252257
253258 var t0 = ( new Date ( ) ) . getTime ( ) ;
254- scrypt ( password , salt , N , r , p , dkLen , function ( error , progress , key ) {
255-
256- if ( error ) {
257- printConsole ( "Cancelled: " + parseInt ( 100 * progress ) + "% done" ) ;
258-
259- } else if ( key ) {
260- key = new buffer . SlowBuffer ( key ) ;
261- printConsole ( "Generated: " + key . toString ( 'hex' ) ) ;
262- printConsole ( "Complete: " + ( ( ( new Date ( ) ) . getTime ( ) - t0 ) / 1000 ) + 's' ) ;
263- }
264-
265- if ( error || key ) {
266- submit . classList . remove ( 'cancel' ) ;
267- submit . value = "Compute scrypt" ;
268-
269- done = null ;
270- progress = 0 ;
271-
272- } else if ( done ) {
273- return true ;
274- }
259+ scrypt . scrypt ( password , salt , N , r , p , dkLen , function ( progress ) {
260+ // Cancelled
261+ if ( done ) { return true ; }
275262
263+ // Update the progress bar
276264 get ( 'progressBar' ) . style . width = parseInt ( 100 * progress ) + '%' ;
277265 get ( 'progressAmount' ) . innerHTML = parseInt ( 100 * progress ) + '%' ;
266+ } ) . then ( function ( key ) {
267+ key = new buffer . SlowBuffer ( key ) ;
268+ printConsole ( "Generated: " + key . toString ( 'hex' ) ) ;
269+ printConsole ( "Complete: " + ( ( ( new Date ( ) ) . getTime ( ) - t0 ) / 1000 ) + 's' ) ;
270+ } , function ( error ) {
271+ if ( error . message === "cancelled" ) {
272+ printConsole ( "Cancelled!" ) ;
273+ } else {
274+ printConsole ( "Error: " + error . message ) ;
275+ }
276+ } ) . then ( function ( ) {
277+ submit . classList . remove ( 'cancel' ) ;
278+ submit . value = "Compute scrypt" ;
279+
280+ done = null ;
281+ get ( 'progressBar' ) . style . width = '0%' ;
282+ get ( 'progressAmount' ) . innerHTML = '0%' ;
278283 } ) ;
279284
280285 } else if ( done === false ) {
0 commit comments