Class: Crypter

services/crypter~ Crypter


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
publicKey string New public key
privateKey string New private key

create(id, name)

Create session
Parameters:
Name Type Description
id string Session ID
name string Connection full name
Returns:
Type
boolean

getPublicKey(id)

Get session public key
Parameters:
Name Type Description
id string 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
id string Session ID
tracker string Tracker to ask for key
identity string Peer supplied identity
buffer string Buffer
signature string Signature of buffer
strict boolean <optional>
false Allow identity change or not
Returns:
Resolves to { verified, name }
Type
Promise

encrypt(id, data)

Encrypt message
Parameters:
Name Type Description
id string Session ID
data * Message
Returns:
False on failure or { nonce, encrypted }
Type
object | boolean

decrypt(id, nonce, data)

Decrypt message
Parameters:
Name Type Description
id string Session ID
nonce * Nonce
data * Message
Returns:
False on failure or buffer
Type
Buffer | boolean

destroy(id)

Destroy session
Parameters:
Name Type Description
id string Session ID

<async> _lookupPeer(tracker, identity)

Lookup peer by identity
Parameters:
Name Type Description
tracker string Tracker name
identity string 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
tracker string Tracker name
identity string 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
tracker string Tracker name
name string Peer name
key buffer Peer public key
Returns:
Type
Promise

<async> _deletePeer(tracker, name)

Delete peer identity
Parameters:
Name Type Description
tracker string Tracker name
name string Peer name
Returns:
Type
Promise