@totemorg/securelink
v2.27.0
Published
provide secure login link to web services
Downloads
176
Readme
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
| Param | Type | Description | | --- | --- | --- | | account | String | credentials | | password | String | credentials | | cb | function | callback (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
| Param | Type | Description | | --- | --- | --- | | client | String | name of client being challenged | | guess | String | guess provided by client | | res | function | response 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
- submit and status TOTEM issues
- contribute to TOTEM notebooks
- revise TOTEM requirements
- browse TOTEM holdings
- or follow TOTEM milestones
License
© 2012 ACMESDS