1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /*
- * Copyright 2018 Scytl Secure Electronic Voting SA
- *
- * All rights reserved
- *
- * See our extended copyright notice in *file 'Copyright.txt' which is part of this source code package
- */
- /** A mock entropy collector for test purposes */
- /*jshint node:true */
- 'use strict';
- module.exports = TestEntropyCollector;
- /**
- * The test entropy collector allows direct assigning of its data and entropy
- * counter. The collector is set to update entropy with the current data every
- * half second.
- *
- * @param {any} collectEntropyCallback
- */
- function TestEntropyCollector(collectEntropyCallback) {
- var that = this;
- var collectionTimer_;
- var collectEntropyCallback_ = collectEntropyCallback;
- this.entropyCounter = 0;
- this.data = '';
- var previousCounter_ = 0;
- var previousData_ = '';
- this.startCollector = function() {
- collectionTimer_ = setInterval(function() {
- // Only call the entropy collector if data has changed.
- if ((that.data !== previousData_) ||
- (that.entropyCounter !== previousCounter_)) {
- console.log(
- 'Collecting test entropy -- counter is now ' + that.entropyCounter);
- collectEntropyCallback_(that.data, that.entropyCounter);
- previousData_ = that.data;
- previousCounter_ = that.entropyCounter;
- }
- }, 500);
- };
- this.stopCollector = function() {
- clearInterval(collectionTimer_);
- };
- }
|