Package Exports
- @xrplf/isomorphic/dist/ripemd160/index.js
- @xrplf/isomorphic/dist/sha256/index.js
- @xrplf/isomorphic/dist/sha512/index.js
- @xrplf/isomorphic/dist/utils/index.js
- @xrplf/isomorphic/dist/ws/index.js
- @xrplf/isomorphic/ripemd160
- @xrplf/isomorphic/sha256
- @xrplf/isomorphic/sha512
- @xrplf/isomorphic/utils
- @xrplf/isomorphic/ws
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@xrplf/isomorphic) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@xrplf/isomorphic
A collection of isomorphic implementations of crypto and utility functions.
Browser implementations of cryptographic functions use @noble/hashes
and crypto
for node .
Hashes
All hash functions operate similarly to @noble/hashes
and have the following properties:
- They can be called directly by providing a Uint8Array or string which will be converted into a UInt8Array via UTF-8 encoding (not hex).
- They all return a UInt8Array.
function hash(message: Uint8Array | string): Uint8Array;
hash(new Uint8Array([1, 3]));
hash('string') == hash(new TextEncoder().encode('string'));
All hash functions can be constructed via hash.create()
method:
- The result is
Hash
subclass instance, which hasupdate()
anddigest()
methods. digest()
finalizes the hash and makes it no longer usable
hash
.create()
.update(new Uint8Array([1, 3]))
.digest();
@xrplf/isomorphic/ripemd160
import { ripemd160 } from '@xrplf/isomorphic/ripemd160';
const hashA = ripemd160('abc');
const hashB = ripemd160
.create()
.update(Uint8Array.from([1, 2, 3]))
.digest();
@xrplf/isomorphic/sha256
import { sha256 } from '@xrplf/isomorphic/sha256';
const hashA = sha256('abc');
const hashB = sha256
.create()
.update(Uint8Array.from([1, 2, 3]))
.digest();
@xrplf/isomorphic/sha512
import { sha512 } from '@xrplf/isomorphic/sha512';
const hashA = sha512('abc');
const hashB = sha512
.create()
.update(Uint8Array.from([1, 2, 3]))
.digest();
Utilities
@xrplf/isomorphic/utils
randomBytes
Create an UInt8Array of the supplied size
import { randomBytes } from @xrplf/isomorphic/utils
console.log(randomBytes(12)) // Uint8Array(12) [95, 236, 188, 55, 208, 128, 161, 249, 171, 57, 141, 7]
bytesToHex
Convert an UInt8Array to hex.
import { bytesToHex } from @xrplf/isomorphic/utils
console.log(bytesToHex([222, 173, 190, 239])) // "DEADBEEF"
hexToBytes
Convert hex to an UInt8Array.
import { hexToBytes } from @xrplf/isomorphic/utils
console.log(hexToBytes('DEADBEEF')) // [222, 173, 190, 239]
hexToString
Converts hex to its string equivalent. Useful to read the Domain field and some Memos.
import { hexToString } from @xrplf/isomorphic/utils
console.log(hexToString('6465616462656566D68D')) // "deadbeef֍"
stringToHex
Converts a utf-8 to its hex equivalent. Useful for Memos.
import { stringToHex } from @xrplf/isomorphic/utils
console.log(stringToHex('deadbeef֍')) // "6465616462656566D68D"
@xrplf/isomorphic/ws
import WebSocket from '@xrplf/isomorphic/ws'
const socket = new WebSocket('wss://localhost:8080')