1.15.0 • Published 2 years ago

@totemstan/securelink v1.15.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

secureLink

SecureLink (built on SocketIO) provides a secure link between clients through the use of PGP end-to-end encryption. SecureLink also provides antibot technology to challenge clients, and a secure login mechanisim. SecureLink establishes the following SocketIO protocol

Function	Client					Channel 			Server
==================================================================
join			----------------- connect ---------------->
request			----------------- join ------------------->
				<---- status || challenge || start	-------

start			----------------- announce --------------->
session			<---------------- accept* -----------------

save			----------------- store ------------------>
history			<---------------- status ------------------

load			----------------- restore ---------------->
history			<---------------- status ------------------

login			----------------- login ------------------>
request			<----- status, remove*, accept* -----------
				
relay			----------------- relay ------------------>
message			<---------------- relay** -----------------

* sends to all clients
** sends to all clients except the requesting client

Manage

npm install @totemstan/securelink	# install
npm run start [ ? | $ | ...]		# Unit test
npm run verminor					# Roll minor version
npm run vermajor					# Roll major version
npm run redoc						# Regen documentation

Usage

Acquire and optionally configure SecureLink as follows:

const SECLINK = require("@totemstan/securelink").config({
	key: value, 						// set key
	"key.key": value, 					// indexed set
	"key.key.": value					// indexed append
});

where configuration keys follow ENUMS deep copy conventions.

Program Reference

SECLINK

Provides a private (end-to-end encrypted) message link between trusted clients and secure logins.

This module documented in accordance with jsdoc.

Env Dependencies

LINK_PASS = passphrase to encrypt user passwords ["securePass"]
LINK_HOST = name of secure link host ["secureHost"]

Requires: module:enums, module:socketio, module:socket.io, module:crypto
Author: ACMESDS
Example

On the server:

	const
		SECLINK = require("securelink");

	SECLINK.config({
		server: server,
		sqlThread: sqlThread,
		guest: {....}
	});
								
	const
		{ sio } = SECLINK;
	
	sio.emit( "update", { // send update request
	});	
						

On the client:
	
	// <script src="securelink-client.js"></script>
	
	Sockets({	// establish sockets
		update: req => {	// intercept update request
			console.log("update", req);
		}, 

		// other sockets as needed ...
	});

SECLINK.host

Domain name of host for attributing domain-owned accounts.

Kind: static property of SECLINK

SECLINK.isTrusted()

Test if an account is "trusted" to use the secure com channel.

Kind: static method of SECLINK

SECLINK.Login(login, cb)

Start a secure link and return the user profile corresponding for the supplied account/password login. The provided callback LOGIN(err,profile) where LOGIN =
resetPassword || newAccount || newSession || guestSession determines the login session type being requested.

Kind: static method of SECLINK
Cfg: Function

ParamTypeDescription
loginStringaccount/password credentials
cbfunctioncallback (err,profile) to process the session

SECLINK.testClient(client, guess, res)

Test response of client during a session challenge.

Kind: static method of SECLINK

ParamTypeDescription
clientStringname of client being challenged
guessStringguess provided by client
resfunctionresponse callback( "pass""fail""retry" )

SECLINK.config()

Establish socketio channels for the SecureIntercom link (at store,restore,login,relay,status, sync,join,exit,content) and the insecure dbSync link (at select,update,insert,delete).

Kind: static method of SECLINK

SECLINK-CLIENT

Provides UIs for operating private (end-to-end encrypted) messaging link between trusted clients.

This module documented in accordance with jsdoc.

The UIs herein are created in the /site.jade and support:

+ client login/out/reset operations
+ SecureLink and dbSync sockets (Kill, Sockets, Join)
+ data encryption (GenKeys, Encrypt, Decrypt, Encode, Decode)

Requires: module:socketio, module:openpgp, module:uibase
Author: ACMESDS

Contacting, Contributing, Following

Feel free to

License

MIT


© 2012 ACMESDS