providers/core/core.crypto.js
/*globals console, crypto */
/*jslint indent:2, node:true */
var util = require('../../src/util');
/**
* A Core provider for getting cryptographically random buffers. This
* functionality may not exist in all unpriviledged contexts - namely at this
* point, firefox addon workers.
* @Class Core_crypto
* @constructor
* @param {module:Module} cap The module creating this provider.
*/
var Core_crypto = function(cap, dispatchEvent) {
'use strict';
this.dispatchEvent = dispatchEvent;
util.handleEvents(this);
};
/**
* Get a random buffer of some number of bytes.
* @param {String} str The string to send.
* @param {Function} continuation Function to call when sending is complete.
* @method send
*/
Core_crypto.prototype.getRandomBytes = function(number, continuation) {
'use strict';
var buffer = new Uint8Array(number);
crypto.getRandomValues(buffer);
continuation(buffer.buffer);
};
exports.provider = Core_crypto;
exports.name = "core.crypto";