
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.
@tsmx/object-hmac
Advanced tools
Create and verify HMAC's for JSON objects.
Easily create and verify HMAC's for your JSON objects to ensure data integrity and authenticity.
const objectHmac = require('@tsmx/object-hmac');
const key = 'HmacSecret-0815';
let person = {
name: 'Max',
age: 32,
hobbies: ['sports', 'travelling']
};
objectHmac.createHmac(person, key);
// person = {"name":"Max","age":32,"hobbies":["sports","travelling"],"__hmac":"37c2e448b6f4a72c9d8abc9a1ab6cada602c3785148caeeed5498ed065ddc69f"}
// person = {"name":"Max","age":32,"hobbies":["sports","travelling"],"__hmac":"37c2e448b6f4a72c9d8abc9a1ab6cada602c3785148caeeed5498ed065ddc69f"}
const objectHmac = require('@tsmx/object-hmac');
const key = 'HmacSecret-0815';
let verification = objectHmac.verifyHmac(person, key);
// true
person.age = 33;
let verificationAfterChange = objectHmac.verifyHmac(person, key);
// false
const objectHmac = require('@tsmx/object-hmac');
const key = 'HmacSecret-0815';
let person = {
name: 'Max',
age: 32,
hobbies: ['sports', 'travelling']
};
let hmac = objectHmac.calculateHmac(person, key);
// 37c2e448b6f4a72c9d8abc9a1ab6cada602c3785148caeeed5498ed065ddc69f
Calculates the HMAC of obj
and attaches it as value of attribute obj[hmacAttribute]
.
Type: Object
The object to calculate and store the HMAC for.
Type: String
The key to calculate the objects HMAC.
Type: String
Default: __hmac
The name of the attribute to store the HMAC value in obj
. Make sure that the name of the attribute is not overlapping with other attributes already in use.
Verifies the HMAC attached to obj
. Returns true
if the validation was successful, otherwise false false
.
The verification would fail and return false
, if...
obj
is nullobj
doesn't provide a HMAC to check againstobj
was manipulated: at least one attribute was changed, added or deleted (deep-inspection including all nested objects/arrays)obj
was manipulatedkey
is deviating from the one the HMAC was created withType: Object
The object of which the HMAC should be verified. The given HMAC to be verified is assumed to exist as an attribute in the object itself: obj[hmacAttribute]
.
Type: String
The key to calculate the objects HMAC and validate against the given one. Must be identical to the key
that was used to create the original HMAC for the object for a successful verification.
Type: String
Default: __hmac
The name of the attribute for the HMAC value in obj
to be verified against.
Calculates and returns the HMAC of obj
.
Takes all of obj
attributes into account for calculating the HMAC. So make sure that there isn't already a HMAC attribute created in the object. Otherwise this would also being used as an input for the calculation.
Type: Object
The object to calculate the HMAC for.
Type: String
The key to calculate the objects HMAC.
To create and verify the HMAC, standard NodeJS crypto functions are used.
The HMAC is generated by using the following parameters:
npm install
npm test
FAQs
Create and verify HMAC's for JSON objects
The npm package @tsmx/object-hmac receives a total of 460 weekly downloads. As such, @tsmx/object-hmac popularity was classified as not popular.
We found that @tsmx/object-hmac demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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.