cesr
Version:
[](https://www.npmjs.com/package/cesr) [](https://github.com/lenkan/cesr-js/blob/main/LICENSE) [ • 1.88 kB
JavaScript
import { Matter } from "./matter.js";
import { Indexer } from "./indexer.js";
function createRaw(code) {
return (raw) => {
return new Matter({ code, raw });
};
}
function ed25519_sig(raw, index, ondex) {
if (index === undefined) {
return Matter.from(Matter.Code.Ed25519_Sig, raw);
}
if (ondex === undefined) {
if (index > 64) {
return Indexer.from(Indexer.Code.Ed25519_Big_Crt_Sig, raw, index);
}
return Indexer.from(Indexer.Code.Ed25519_Sig, raw, index);
}
// TODO: Keripy also checks if index === ondex and then use Crt_Sig
return Indexer.from(Indexer.Code.Ed25519_Big_Sig, raw, index, ondex);
}
function ed448_sig(raw, index, ondex) {
if (index === undefined) {
return Matter.from(Matter.Code.Ed448_Sig, raw);
}
if (ondex === undefined) {
if (index > 64) {
return Indexer.from(Indexer.Code.Ed448_Big_Crt_Sig, raw, index);
}
return Indexer.from(Indexer.Code.Ed448_Crt_Sig, raw, index);
}
if (index > 64 || ondex > 64) {
return Indexer.from(Indexer.Code.Ed448_Big_Sig, raw, index, ondex);
}
return Indexer.from(Indexer.Code.Ed448_Sig, raw, index, ondex);
}
export const cesr = {
crypto: {
ed25519_sig: ed25519_sig,
ed448_sig: ed448_sig,
blake3_256: createRaw(Matter.Code.Blake3_256),
blake3_512: createRaw(Matter.Code.Blake3_512),
blake2b_256: createRaw(Matter.Code.Blake2b_256),
blake2s_256: createRaw(Matter.Code.Blake2s_256),
sha3_256: createRaw(Matter.Code.SHA3_256),
sha2_256: createRaw(Matter.Code.SHA2_256),
ed25519: createRaw(Matter.Code.Ed25519),
ed25519N: createRaw(Matter.Code.Ed25519N),
ed448: createRaw(Matter.Code.Ed448),
ed448N: createRaw(Matter.Code.Ed448N),
},
primitive: Matter.primitive,
};