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
Open/Close
## Modules- 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
- 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.
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
Param | Type | Description |
---|---|---|
account | String |
credentials |
password | String |
credentials |
cb | function |
callback (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
Param | Type | Description |
---|---|---|
client | String |
name of client being challenged |
guess | String |
guess provided by client |
res | function |
response callback( "pass" |
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
- submit and status TOTEM issues
- contribute to TOTEM notebooks
- revise TOTEM requirements
- browse TOTEM holdings
- or follow TOTEM milestones
License
© 2012 ACMESDS