Security News
GitHub Removes Malicious Pull Requests Targeting Open Source Repositories
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
@privy-io/crypto
Advanced tools
JavaScript library for encrypting and decrypting data with Privy.
This library is intended to be used by the @privy-io/privy-browser
and @privy-io/privy-node
libraries to handle all cryptographic operations.
npm install --save @privy-io/crypto
import {CryptoEngine, CryptoVersion} from '@privy-io/crypto';
// Grab the engine (implementation) corresponding to the version
const x0 = CryptoEngine(CryptoVersion.x0);
// Crypto module expects Uint8Arrays.
const plaintext = new TextEncoder().encode('{"ssn": "123-45-6789"}');
// Encryption
const privyEncryption = new x0.Encryption(plaintext, {
wrapperKey: wrapperKey, // RSA public key from privy server
wrapperKeyId: wrapperKeyId, // Metadata id of RSA public key from Privy's KMS
});
const encryptionResult = await privyEncryption.encrypt();
const ciphertext = encryptionResult.ciphertext();
// Commitment id's are computed from the hash of a nonce concatenated with the
// plaintext. Can be used for an optional data integrity check.
const commitmentId = encryptionResult.commitmentId();
// Decryption
const privyDecryption = new x0.Decryption(ciphertext);
// This is where Privy would decrypt the encrypted data
// key against the Privy server, ultimately doing so in an HSM.
const decryptedDataKey = decryptDataKey(
privyDecryption.wrapperKeyId(),
privyDecryption.encryptedDataKey(),
);
const decryptionResult = await privyDecryption.decrypt(decryptedDataKey);
// Optional data integrity check.
if (!(await privyDecryption.verify(decryptionResult, commitmentId))) {
throw 'Data integrity check failed.';
}
// Crypto module returns Uint8Arrays.
const decryptedPlaintext = new TextDecoder().decode(decryptionResult.plaintext());
console.log(decryptedPlaintext); // {"ssn": "123-45-6789"}
To test the module interfaces, run:
npm test
To test the node crypto operations against the browser ones (which use the webcrypto standard), run:
# Requires node >= 15
npm run test-webcrypto
FAQs
Privy encryption and decryption library
The npm package @privy-io/crypto receives a total of 0 weekly downloads. As such, @privy-io/crypto popularity was classified as not popular.
We found that @privy-io/crypto demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 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.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.