new Crypter(app, config, logger)
Create service
Parameters:
| Name | Type | Description |
|---|---|---|
app |
App | Application |
config |
object | Configuration |
logger |
Logger | Logger service |
Members
-
<static> provides :string
-
Service name is 'crypter'
Type:
- string
-
<static> requires :Array.<string>
-
Dependencies as constructor arguments
Type:
- Array.<string>
-
<static> lifecycle
-
This service is a singleton
-
<static> lookupTimeout :number
-
Lookup identity on tracker timeout
Type:
- number
-
_tracker
-
Retrieve tracker server
-
_peer
-
Retrieve peer server
Methods
-
init(publicKey, privateKey)
-
Initialize
Parameters:
Name Type Description publicKeystring New public key privateKeystring New private key -
create(id, name)
-
Create session
Parameters:
Name Type Description idstring Session ID namestring Connection full name Returns:
- Type
- boolean
-
getPublicKey(id)
-
Get session public key
Parameters:
Name Type Description idstring Session ID Returns:
- Type
- string | null
-
sign(data)
-
Sign data
Parameters:
Name Type Description data* Data to sign Returns:
- Type
- string
-
<async> verify(id, tracker, identity, buffer, signature [, strict])
-
Verify peer identity
Parameters:
Name Type Argument Default Description idstring Session ID trackerstring Tracker to ask for key identitystring Peer supplied identity bufferstring Buffer signaturestring Signature of buffer strictboolean <optional>
false Allow identity change or not Returns:
Resolves to { verified, name }- Type
- Promise
-
encrypt(id, data)
-
Encrypt message
Parameters:
Name Type Description idstring Session ID data* Message Returns:
False on failure or { nonce, encrypted }- Type
- object | boolean
-
decrypt(id, nonce, data)
-
Decrypt message
Parameters:
Name Type Description idstring Session ID nonce* Nonce data* Message Returns:
False on failure or buffer- Type
- Buffer | boolean
-
destroy(id)
-
Destroy session
Parameters:
Name Type Description idstring Session ID -
<async> _lookupPeer(tracker, identity)
-
Lookup peer by identity
Parameters:
Name Type Description trackerstring Tracker name identitystring Peer identity Returns:
{ name: 'user@dom/daemon', key: NodeRSA of public key, buffer: key as buffer, }- Type
- Promise
-
<async> _loadPeer(tracker, identity)
-
Find and load peer
Parameters:
Name Type Description trackerstring Tracker name identitystring Peer supplied identity Returns:
Resolves to peer info{ name: 'user@dom/daemon', key: NodeRSA of public key, buffer: key as buffer, }- Type
- Promise
-
<async> _savePeer(tracker, name, key)
-
Save peer identity
Parameters:
Name Type Description trackerstring Tracker name namestring Peer name keybuffer Peer public key Returns:
- Type
- Promise
-
<async> _deletePeer(tracker, name)
-
Delete peer identity
Parameters:
Name Type Description trackerstring Tracker name namestring Peer name Returns:
- Type
- Promise