/var/www/greso.tech/server/nsm/node_modules/node-forge/lib
NameSizeModeActions
aes.js390250644editdlrm
aesCipherSuites.js91120644editdlrm
asn1-validator.js22950644editdlrm
asn1.js428310644editdlrm
baseN.js50680644editdlrm
cipher.js66680644editdlrm
cipherModes.js289170644editdlrm
des.js204450644editdlrm
ed25519.js249410644editdlrm
forge.js2000644editdlrm
form.js38800644editdlrm
hmac.js38330644editdlrm
http.js390700644editdlrm
index.all.js3660644editdlrm
index.js6400644editdlrm
jsbn.js351880644editdlrm
kem.js52170644editdlrm
log.js92640644editdlrm
md.all.js2510644editdlrm
md.js2530644editdlrm
md5.js79830644editdlrm
mgf.js2740644editdlrm
mgf1.js16450644editdlrm
oids.js68440644editdlrm
pbe.js309990644editdlrm
pbkdf2.js58090644editdlrm
pem.js66930644editdlrm
pkcs1.js83750644editdlrm
pkcs7.js398690644editdlrm
pkcs7asn1.js114840644editdlrm
pkcs12.js333470644editdlrm
pki.js26510644editdlrm
prime.js87760644editdlrm
prime.worker.js48040644editdlrm
prng.js123260644editdlrm
pss.js78540644editdlrm
random.js54380644editdlrm
rc2.js119490644editdlrm
rsa.js600580644editdlrm
sha1.js90890644editdlrm
sha256.js95740644editdlrm
sha512.js171330644editdlrm
socket.js83290644editdlrm
ssh.js71630644editdlrm
tls.js1329730644editdlrm
tlssocket.js69670644editdlrm
util.js698580644editdlrm
x509.js1017960644editdlrm
xhr.js221160644editdlrm
Edit: /var/www/greso.tech/server/nsm/node_modules/node-forge/lib/socket.js (8329B)
/** * Socket implementation that uses flash SocketPool class as a backend. * * @author Dave Longley * * Copyright (c) 2010-2013 Digital Bazaar, Inc. */ var forge = require('./forge'); require('./util'); // define net namespace var net = module.exports = forge.net = forge.net || {}; // map of flash ID to socket pool net.socketPools = {}; /** * Creates a flash socket pool. * * @param options: * flashId: the dom ID for the flash object element. * policyPort: the default policy port for sockets, 0 to use the * flash default. * policyUrl: the default policy file URL for sockets (if provided * used instead of a policy port). * msie: true if the browser is msie, false if not. * * @return the created socket pool. */ net.createSocketPool = function(options) { // set default options.msie = options.msie || false; // initialize the flash interface var spId = options.flashId; var api = document.getElementById(spId); api.init({marshallExceptions: !options.msie}); // create socket pool entry var sp = { // ID of the socket pool id: spId, // flash interface flashApi: api, // map of socket ID to sockets sockets: {}, // default policy port policyPort: options.policyPort || 0, // default policy URL policyUrl: options.policyUrl || null }; net.socketPools[spId] = sp; // create event handler, subscribe to flash events if(options.msie === true) { sp.handler = function(e) { if(e.id in sp.sockets) { // get handler function var f; switch(e.type) { case 'connect': f = 'connected'; break; case 'close': f = 'closed'; break; case 'socketData': f = 'data'; break; default: f = 'error'; break; } /* IE calls javascript on the thread of the external object that triggered the event (in this case flash) ... which will either run concurrently with other javascript or pre-empt any running javascript in the middle of its execution (BAD!) ... calling setTimeout() will schedule the javascript to run on the javascript thread and solve this EVIL problem. */ setTimeout(function() {sp.sockets[e.id][f](e);}, 0); } }; } else { sp.handler = function(e) { if(e.id in sp.sockets) { // get handler function var f; switch(e.type) { case 'connect': f = 'connected'; break; case 'close': f = 'closed'; break; case 'socketData': f = 'data'; break; default: f = 'error'; break; } sp.sockets[e.id][f](e); } }; } var handler = 'forge.net.socketPools[\'' + spId + '\'].handler'; api.subscribe('connect', handler); api.subscribe('close', handler); api.subscribe('socketData', handler); api.subscribe('ioError', handler); api.subscribe('securityError', handler); /** * Destroys a socket pool. The socket pool still needs to be cleaned * up via net.cleanup(). */ sp.destroy = function() { delete net.socketPools[options.flashId]; for(var id in sp.sockets) { sp.sockets[id].destroy(); } sp.sockets = {}; api.cleanup(); }; /** * Creates a new socket. * * @param options: * connected: function(event) called when the socket connects. * closed: function(event) called when the socket closes. * data: function(event) called when socket data has arrived, * it can be read from the socket using receive(). * error: function(event) called when a socket error occurs. */ sp.createSocket = function(options) { // default to empty options options = options || {}; // create flash socket var id = api.create(); // create javascript socket wrapper var socket = { id: id, // set handlers connected: options.connected || function(e) {}, closed: options.closed || function(e) {}, data: options.data || function(e) {}, error: options.error || function(e) {} }; /** * Destroys this socket. */ socket.destroy = function() { api.destroy(id); delete sp.sockets[id]; }; /** * Connects this socket. * * @param options: * host: the host to connect to. * port: the port to connect to. * policyPort: the policy port to use (if non-default), 0 to * use the flash default. * policyUrl: the policy file URL to use (instead of port). */ socket.connect = function(options) { // give precedence to policy URL over policy port // if no policy URL and passed port isn't 0, use default port, // otherwise use 0 for the port var policyUrl = options.policyUrl || null; var policyPort = 0; if(policyUrl === null && options.policyPort !== 0) { policyPort = options.policyPort || sp.policyPort; } api.connect(id, options.host, options.port, policyPort, policyUrl); }; /** * Closes this socket. */ socket.close = function() { api.close(id); socket.closed({ id: socket.id, type: 'close', bytesAvailable: 0 }); }; /** * Determines if the socket is connected or not. * * @return true if connected, false if not. */ socket.isConnected = function() { return api.isConnected(id); }; /** * Writes bytes to this socket. * * @param bytes the bytes (as a string) to write. * * @return true on success, false on failure. */ socket.send = function(bytes) { return api.send(id, forge.util.encode64(bytes)); }; /** * Reads bytes from this socket (non-blocking). Fewer than the number * of bytes requested may be read if enough bytes are not available. * * This method should be called from the data handler if there are * enough bytes available. To see how many bytes are available, check * the 'bytesAvailable' property on the event in the data handler or * call the bytesAvailable() function on the socket. If the browser is * msie, then the bytesAvailable() function should be used to avoid * race conditions. Otherwise, using the property on the data handler's * event may be quicker. * * @param count the maximum number of bytes to read. * * @return the bytes read (as a string) or null on error. */ socket.receive = function(count) { var rval = api.receive(id, count).rval; return (rval === null) ? null : forge.util.decode64(rval); }; /** * Gets the number of bytes available for receiving on the socket. * * @return the number of bytes available for receiving. */ socket.bytesAvailable = function() { return api.getBytesAvailable(id); }; // store and return socket sp.sockets[id] = socket; return socket; }; return sp; }; /** * Destroys a flash socket pool. * * @param options: * flashId: the dom ID for the flash object element. */ net.destroySocketPool = function(options) { if(options.flashId in net.socketPools) { var sp = net.socketPools[options.flashId]; sp.destroy(); } }; /** * Creates a new socket. * * @param options: * flashId: the dom ID for the flash object element. * connected: function(event) called when the socket connects. * closed: function(event) called when the socket closes. * data: function(event) called when socket data has arrived, it * can be read from the socket using receive(). * error: function(event) called when a socket error occurs. * * @return the created socket. */ net.createSocket = function(options) { var socket = null; if(options.flashId in net.socketPools) { // get related socket pool var sp = net.socketPools[options.flashId]; socket = sp.createSocket(options); } return socket; };