2.27.0 • Published 7 months ago

@totemorg/securelink v2.27.0

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

secureLink

The SecureLink provides a /link agent to enable

+ secure inter-client communication
+ antibot challenges 
+ secure login mechanisim
+ room admittance

SecureLink is built on SocketIO and establishes the
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

Install

npm install @totemorg/securelink
npm update

Start

npm run start ?					# List start options

Manage

npm run verminor				# Roll minor version
npm run vermajor				# Roll major version
npm run redoc					# Regen documentation
npm run pubminor				# republish as minor version
npm run pubmajor				# republish as major version

Usage

import SECLINK from "@totemorg/securelink";

Program Reference

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.

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, module:cp
Author: ACMESDS
Example

On the server:

	import {configLink,notifyClients} from "securelink";

	configLink({
		server: server,
		guest: {....}
	});
								
	notifyClients( "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.configLink()

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.notifyClients()

Kind: static method of SECLINK

SECLINK~resetClient()

Reset account request with callback cb( err ).

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" )

SECLINK~isTrusted()

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

Kind: inner method of SECLINK

SEC-CLIENT

The securelink client.

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.25.0

7 months ago

2.27.0

7 months ago

2.26.0

7 months ago

2.19.0

1 year ago

2.20.0

1 year ago

2.22.0

1 year ago

2.24.0

12 months ago

2.18.0

1 year ago

2.21.0

1 year ago

2.23.0

1 year ago

2.11.0

2 years ago

2.12.0

2 years ago

2.10.0

2 years ago

2.7.0

2 years ago

2.9.0

2 years ago

2.8.0

2 years ago

2.17.0

2 years ago

2.15.0

2 years ago

2.16.0

2 years ago

2.13.0

2 years ago

2.14.0

2 years ago

2.3.0

2 years ago

2.2.0

2 years ago

2.5.0

2 years ago

2.4.0

2 years ago

2.6.0

2 years ago

2.1.0

2 years ago

2.0.0

2 years ago

1.36.0

3 years ago

1.37.0

3 years ago

1.34.0

3 years ago

1.35.0

3 years ago

1.38.0

2 years ago

1.39.0

2 years ago

1.40.0

2 years ago

1.32.0

3 years ago

1.33.0

3 years ago

1.31.0

3 years ago

1.30.0

3 years ago

1.29.0

3 years ago

1.28.0

3 years ago

1.27.0

3 years ago

1.26.0

3 years ago

1.25.0

3 years ago

1.24.0

3 years ago

1.23.0

3 years ago

1.22.0

3 years ago

1.21.0

3 years ago

1.20.0

3 years ago

1.19.0

3 years ago

1.18.0

3 years ago

1.17.0

3 years ago