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.
Install:
# npm
npm install base32check1
# yarn
yarn add base32check1
To compute and validate checksums:
import { compute, validate } from 'base32check1';
compute('CONSECRATIO'); // 'X'
validate('CONSECRATIO'); // false
compute('CAFEDEAD'); // 'A'
validate('CAFEDEAD'); // true
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 }
See the GitHub release history.