base32check1

TypeScript implementation of the Base32Check1 algorithm

Usage no npm install needed!

<script type="module">
  import base32check1 from 'https://cdn.skypack.dev/base32check1';
</script>

README

base32check1

test publish npm

TypeScript implementation of the Base32Check1 algorithm.

There is already a base32check JS library that follows the original primitive polynomial defined by Thaddée Tyl. However, this implementation is a port from base32check-python and base32check-java developed by BITMARCK Service GmbH to support DiGA submissions. Therefore, the checksums computed by this library are different from the ones computed by base32check.

Usage

Install:

# npm
npm install base32check1
# yarn
yarn add base32check1

Checksums

To compute and validate checksums:

import { compute, validate } from 'base32check1';

compute('CONSECRATIO'); // 'X'
validate('CONSECRATIO'); // false

compute('CAFEDEAD'); // 'A'
validate('CAFEDEAD'); // true

Codecs

To encode and decode Base32 data, base32check1 wraps base32-decode and base32-decode libraries.

import { decode, encode } from 'base32check1;

const data = new Uint8Array([0x74, 0x65, 0x73, 0x74]);

// Crockford
decode('EHJQ6X0'); // ArrayBuffer { 4 }
encode(data); // 'EHJQ6X0'

// RFC4648
encode(data, { variant: 'RFC4648' }); // 'ORSXG5A='
decode('ORSXG5A=', { variant: 'RFC4648' }); // ArrayBuffer { 4 }

// RFC4648-HEX
encode(data, { variant: 'RFC4648-HEX' }); // 'EHIN6T0='
encode(data, { variant: 'RFC4648-HEX', padding: false }); // 'EHIN6T0'
decode('EHIN6T0=', { variant: 'RFC4648-HEX' }); // ArrayBuffer { 4 }

Changelog

See the GitHub release history.