
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
@consento/api
Advanced tools
@consento/api
is the main API for build consento systems.
Under heavy development.
The consento API has a few configuration points.
const { setup } = require('@consento/api')
const api = setup({
core: require('@consento/crypto/core/sodium') // or '@consento/crypto/core/friends' depending on environment
notificationTransport // Implementation of notification transport
})
@consento/crypto
is the foundation upon which Consento is built.
The API exposes the crypto primitives through api.crypto
. e.g.:
const { Sender } = api.crypto
The Consento API comes with an end-to-end encrypted notification system.
const { notifications } = api
Any ISender
instance is able to submit notifications:
notifications.send(sender, 'Hello World')
For another device/instance to receive the notification, the device needs
to first register the matching IReceiver
notifications.subscribe(sender.newReceiver())
All messages are received through a single handler:
import { isSuccessNotification, isErrorNotification } from '@consento/api'
notifications.processor.add((message) => {
// Handle the message result.
if (isSuccessNotification(message)) {
message.body // body of the message
message.receiver // receiver for the message
message.receiverIdBase64 // base64 for the receiver
}
if (isErrorNotification(message)) {
message.code // code for the error
message.error // error object (if available)
message.receiverIdBase64 // id for the receiver
}
})
Of course it is possible to unsubscribe from receiving messages:
notifications.unsubscribe(receiver)
If the transport receives a method it needs to call
notifications.handle(idBase64, encryptedMessage)
For simple one-time reading of a request you can also subscribe, receive and unsubscribe from a channel.
const { promise, cancel } = notifications.receive(receiver)
const response = await promise // To receive the next notification
await cancel() // To cancel the receiving of a notification
You can also send a message before receiving with the sendAndReceive
helper:
const message = 'Hello World'
const { promise, cancel } = notifications.sendAndReceive({ sender, receiver }, message)
In extension it is possible to verify the body message by using a filter:
import { IEncodable } from '@consento/api'
const isStringLen32 = (body: IEncodable): body is string => typeof body === 'string' && body.length === 32
const { promise } = notifications.receive(receiver, isStringLen32)
const response: string = await promise // only resolves if a 32 character string has been sent received on the channel
... and furthermore it is possible to add a timeout to receiving a message:
const { promise } = notifications.receive(receiver, null, 1000)
try {
const data = await promise
} catch (err) {
err.code === 'timeout'
err.timeout === 1000
}
(You can also pass a filter & timeout to sendAndReceive
)
FAQs
JavasScript API for building things with consento.
We found that @consento/api demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.