Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@thirdweb-dev/crypto

Package Overview
Dependencies
Maintainers
8
Versions
53
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@thirdweb-dev/crypto

thirdweb crypto <a href="https:

  • 0.0.0-dev-6295cf7-20231117075633
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
7.9K
increased by13.63%
Maintainers
8
Weekly downloads
 
Created
Source



thirdweb crypto

npm version Build Status Join our Discord!

Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.


Installation

npm install @thirdweb-dev/crypto

Available methods

Encryption

methoduse casereturn typeunderlying technology
aesEncrypt(<plaintext>, <password>)Encrypts a string/Uint8Array with AES-GCMPromise<string>WebCrypto (AES-GCM)
aesDecrypt(<ciphertext>, <password>)Decrypts a value encrypted via aesEncryptPromise<string>WebCrypto (AES-GCM)
aesDecryptCompat(<ciphertext>, <password>)Same as aesDecrypt but also supports values encrypted via crypto-js (for backwards compatibility)Promise<string>WebCrypto (AES-GCM)

Hashing

methoduse casereturn typeunderlying technology
sha256(<value>)Hashes a string/Uint8Array with SHA256Promise<Uint8Array>WebCrypto
sha256Hex(<value>)Same as sha256 but reruns as hex stringPromise<string>WebCrypto
sha256Sync(<value>)Same as sha256 but synchronousUint8Array@noble/hashes
sha256SyncHex(<value>)Same as sha256Sync but reruns as hex stringstring@noble/hashes
keccak256Sync(<value>)Hashes a string/Uint8Array with Keccak256Uint8Arrayjs-sha3
keccak256SyncHex(<value>)Same as keccak256Sync but returns as hex stringstringjs-sha3
keccak256SyncHexPrefixed(<value>)Same as keccak256Sync but returns as 0x prefixed hex string0x${string}js-sha3

Initial Benchmarks

sha256 -> Uint8Array
┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐
│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │
├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤
│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │
│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │
│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │
└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘
sha256 -> hex
┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐
│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │
├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤
│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │
│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │
│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │
└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘
keccack256 -> Uint8Array
┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐
│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │
├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤
│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │
│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │
│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │
│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │
└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘
keccack256 -> hex
┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐
│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │
├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤
│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │
│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │
│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │
│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │
└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘

FAQs

Package last updated on 17 Nov 2023

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc