| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * @fileoverview A single gnubby signer wraps the process of opening a gnubby, | 6 * @fileoverview A single gnubby signer wraps the process of opening a gnubby, |
| 7 * signing each challenge in an array of challenges until a success condition | 7 * signing each challenge in an array of challenges until a success condition |
| 8 * is satisfied, and finally yielding the gnubby upon success. | 8 * is satisfied, and finally yielding the gnubby upon success. |
| 9 * | 9 * |
| 10 */ | 10 */ |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 } | 246 } |
| 247 }; | 247 }; |
| 248 | 248 |
| 249 /** | 249 /** |
| 250 * Called with the result of a version command. | 250 * Called with the result of a version command. |
| 251 * @param {number} rc Result of version command. | 251 * @param {number} rc Result of version command. |
| 252 * @param {ArrayBuffer=} opt_data Version. | 252 * @param {ArrayBuffer=} opt_data Version. |
| 253 * @private | 253 * @private |
| 254 */ | 254 */ |
| 255 SingleGnubbySigner.prototype.versionCallback_ = function(rc, opt_data) { | 255 SingleGnubbySigner.prototype.versionCallback_ = function(rc, opt_data) { |
| 256 if (rc == DeviceStatusCodes.BUSY_STATUS) { |
| 257 if (this.timer_ && this.timer_.expired()) { |
| 258 this.goToError_(DeviceStatusCodes.TIMEOUT_STATUS); |
| 259 return; |
| 260 } |
| 261 // There's still time: resync and retry. |
| 262 var self = this; |
| 263 this.gnubby_.sync(function(code) { |
| 264 if (code) { |
| 265 self.goToError_(code, true); |
| 266 return; |
| 267 } |
| 268 self.gnubby_.version(self.versionCallback_.bind(self)); |
| 269 }); |
| 270 return; |
| 271 } |
| 256 if (rc) { | 272 if (rc) { |
| 257 this.goToError_(rc, true); | 273 this.goToError_(rc, true); |
| 258 return; | 274 return; |
| 259 } | 275 } |
| 260 this.state_ = SingleGnubbySigner.State.IDLE; | 276 this.state_ = SingleGnubbySigner.State.IDLE; |
| 261 this.version_ = UTIL_BytesToString(new Uint8Array(opt_data || [])); | 277 this.version_ = UTIL_BytesToString(new Uint8Array(opt_data || [])); |
| 262 this.doSign_(this.challengeIndex_); | 278 this.doSign_(this.challengeIndex_); |
| 263 }; | 279 }; |
| 264 | 280 |
| 265 /** | 281 /** |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 451 result['challenge'] = opt_challenge; | 467 result['challenge'] = opt_challenge; |
| 452 } | 468 } |
| 453 if (opt_info) { | 469 if (opt_info) { |
| 454 result['info'] = opt_info; | 470 result['info'] = opt_info; |
| 455 } | 471 } |
| 456 } | 472 } |
| 457 this.completeCb_(result); | 473 this.completeCb_(result); |
| 458 // this.gnubby_ is now owned by completeCb_. | 474 // this.gnubby_ is now owned by completeCb_. |
| 459 this.gnubby_ = null; | 475 this.gnubby_ = null; |
| 460 }; | 476 }; |
| OLD | NEW |