Socket
Socket
Sign inDemoInstall

is-canonical-base64

Package Overview
Dependencies
0
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    is-canonical-base64

test wether a base64 string will serialize the same after parsing


Version published
Weekly downloads
170
increased by66.67%
Maintainers
1
Install size
6.09 kB
Created
Weekly downloads
 

Readme

Source

is-canonical-base64

a regular expression to test wether a string is a valid base64, without ambiguity.

Base64 encodes bytes (base 256, 8 bits each) as chars each representing 6 bits. That means a one byte buffer necessarily becomes 2 chars, except only the top 2 bits of the last char are used (and the string is then padded with an == to take the spaces those chars would be)

It's recommended that implementations encode zeros here, but many implementations (including node.js's) accept non-zeros here, but just ignore them.

This can be a problem for signed data, because if the signature signs base64, you must retain exactly the encoded representation (including any ambiguity). So, it's good to enforce that ambigious representations are rejected.

usage

simple

var isCanonicalBase64 = require('canonical-base64')() //note, returns a function
isCanonicalBase64.test(string)

advanced: you may pass in a prefix and suffix, which is combined into the regular expression.

var isCanonicalBase64 = require('canonical-base64')('@', '(?:\.ed25519)')
isCanonicalBase64.test(string)

License

MIT

FAQs

Last updated on 25 Oct 2018

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc