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

bsaes

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bsaes

Advanced Encryption Standard

  • 0.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

bsaes.js - JavaScript AES

CircleCI

Just as it's possible to write a TCP/IP protocol stack in some utterly inappropriate programing language like ML or Visual Basic, so too, it's possible to implement TCP/IP over carrier pidgeons, or paper tape, or demons summoned from the vasty deep.

-- Stross, C., The Jennifer Morgue

This package provides a pure-JavaScript bitsliced AES implementation, as logical operations on 32 bit unsigned integers, ported from the Go port of the BearSSL code.

As a concession to performance and the futility of pure-JS crypto, a variable time table based AESENC analog is also provided in the unsafe sub-module.

WARNING

THIS IS NOT INTENDED AS A GENERAL PURPOSE AES IMPLEMENTATION. Unless you need access to AES algorithm internals (ie: AddRoundKey, SubBytes, ShiftRows, and or MixColumns) it is strongly recommended that you use crypto instead.

While sensible languages and compilers generally would transform an AES implementation of this design into something that is timing side-channel free, JavaScript and it's various implementations are not sensible by any common definition of the word.

Notes
  • The inverse transformations are not currently implemented for reasons of brevity.

  • The bitsliced nature of the implementation means that under the hood each operation is applied to 2 blocks at once. This can be used to increase performance of certain constructs.

  • If timing side-channels are beyond your threat model, this could be more easily accomplished via a table driven implementation, with better performance.

  • The package is not documented as developers that can't figure it out really have no business using it, at all.

FAQs

Package last updated on 03 Apr 2019

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