PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@iota/iota-sdk/dist/esm/cryptography
Просмотр файла: signature.js
import { fromBase64, toBase64 } from "@iota/bcs";
import { bcs } from "../bcs/index.js";
import {
SIGNATURE_FLAG_TO_SCHEME,
SIGNATURE_SCHEME_TO_FLAG,
SIGNATURE_SCHEME_TO_SIZE
} from "./signature-scheme.js";
import { parseSerializedPasskeySignature } from "../keypairs/passkey/publickey.js";
function toSerializedSignature({
signature,
signatureScheme,
publicKey
}) {
if (!publicKey) {
throw new Error("`publicKey` is required");
}
const pubKeyBytes = publicKey.toRawBytes();
const serializedSignature = new Uint8Array(1 + signature.length + pubKeyBytes.length);
serializedSignature.set([SIGNATURE_SCHEME_TO_FLAG[signatureScheme]]);
serializedSignature.set(signature, 1);
serializedSignature.set(pubKeyBytes, 1 + signature.length);
return toBase64(serializedSignature);
}
function parseSerializedSignature(serializedSignature) {
const bytes = fromBase64(serializedSignature);
const signatureScheme = SIGNATURE_FLAG_TO_SCHEME[bytes[0]];
switch (signatureScheme) {
case "Passkey":
return parseSerializedPasskeySignature(serializedSignature);
case "MultiSig":
const multisig = bcs.MultiSig.parse(bytes.slice(1));
return {
serializedSignature,
signatureScheme,
multisig,
bytes
};
case "ED25519":
case "Secp256k1":
case "Secp256r1":
const size = SIGNATURE_SCHEME_TO_SIZE[signatureScheme];
const signature = bytes.slice(1, bytes.length - size);
const publicKey = bytes.slice(1 + signature.length);
return {
serializedSignature,
signatureScheme,
signature,
publicKey,
bytes
};
default:
throw new Error("Unsupported signature scheme");
}
}
export {
parseSerializedSignature,
toSerializedSignature
};
//# sourceMappingURL=signature.js.map
Выполнить команду
Для локальной разработки. Не используйте в интернете!