2.17.0 • Published 6 months ago

@totemorg/securelink v2.17.0

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

secureLink

The SecureLink TOTEM plugin provides a:

/login

endpoint to enable

+ secure PGP inter-client encryption.  
+ antibot technology to challenge clients, 
+ secure login mechanisims

**SecureLink, built on SocketIO, 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 @totemorg/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("@totemorg/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

Env Vars

LINK_PASS = passphrase to encrypt client information
LINK_HOST = @name suffix of guest 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 (stopLink, startLink, connectIO)
+ data encryption (genKeys, encryptMessage, decryptMessage, encodeMessage, decodeMessage)

SECLINK

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

This module documented in accordance with [jsdoc](https://jsdoc.app/).

## Env Vars
									  
	LINK_PASS = passphrase to encrypt client information
	LINK_HOST = @name suffix of guest clients

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

On the server:

		const
			SECLINK = require("securelink");

		SECLINK.config({
			server: server,
			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.Login(account, password, 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
accountStringcredentials
passwordStringcredentials
cbfunctioncallback (err,profile) to process the session

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~validateClient()

Validate a new/reset account request with callback cb( pass || null ).

Kind: inner method of SECLINK

SECLINK~testClient(client, guess, res)

Test response of client during a session challenge.

Kind: inner method of SECLINK

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

SEC-CLIENT

The client-side of securelink.

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

This module documented in accordance with [jsdoc](https://jsdoc.app/).

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

	+ client login/out/reset operations
	+ SecureLink and dbSync sockets (stopLink, startLink, connectIO)
	+ data encryption (genKeys, encryptMessage, decryptMessage, encodeMessage, decodeMessage)

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

Contacting, Contributing, Following

Feel free to

License

MIT


© 2012 ACMESDS

2.11.0

6 months ago

2.12.0

6 months ago

2.10.0

6 months ago

2.7.0

10 months ago

2.9.0

6 months ago

2.8.0

10 months ago

2.17.0

6 months ago

2.15.0

6 months ago

2.16.0

6 months ago

2.13.0

6 months ago

2.14.0

6 months ago

2.3.0

1 year ago

2.2.0

1 year ago

2.5.0

1 year ago

2.4.0

1 year ago

2.6.0

12 months ago

2.1.0

1 year ago

2.0.0

1 year ago

1.36.0

1 year ago

1.37.0

1 year ago

1.34.0

1 year ago

1.35.0

1 year ago

1.38.0

1 year ago

1.39.0

1 year ago

1.40.0

1 year ago

1.32.0

1 year ago

1.33.0

1 year ago

1.31.0

1 year ago

1.30.0

1 year ago

1.29.0

2 years ago

1.28.0

2 years ago

1.27.0

2 years ago

1.26.0

2 years ago

1.25.0

2 years ago

1.24.0

2 years ago

1.23.0

2 years ago

1.22.0

2 years ago

1.21.0

2 years ago

1.20.0

2 years ago

1.19.0

2 years ago

1.18.0

2 years ago

1.17.0

2 years ago