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
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
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.
Open/Close
## Modules- SECLINK
Provides a private (end-to-end encrypted) message link between trusted clients and secure logins.
This module documented in accordance with jsdoc.
LINK_PASS = passphrase to encrypt user passwords ["securePass"] LINK_HOST = name of secure link host ["secureHost"]
- SECLINK-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 (Kill, Sockets, Join) + data encryption (GenKeys, Encrypt, Decrypt, Encode, Decode)
Provides a private (end-to-end encrypted) message link between trusted clients and secure logins.
This module documented in accordance with jsdoc.
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,
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 ...
});
Domain name of host for attributing domain-owned accounts.
Kind: static property of SECLINK
Validate a new/reset account request with callback cb( pass || null ).
Kind: static method of SECLINK
Test if an account is "trusted" to use the secure com channel.
Kind: static method of SECLINK
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 |
Test response of client during a session challenge.
Kind: static method of SECLINK
Param | Type | Description |
---|---|---|
client | String |
name of client being challenged |
guess | String |
guess provided by client |
res | function |
response callback( "pass" |
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
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 (Kill, Sockets, Join)
+ data encryption (GenKeys, Encrypt, Decrypt, Encode, Decode)
Requires: module:socketio
, module:openpgp
, module:uibase
Author: ACMESDS
Feel free to
- submit and status TOTEM issues
- contribute to TOTEM notebooks
- revise TOTEM requirements
- browse TOTEM holdings
- or follow TOTEM milestones
© 2012 ACMESDS