/** * @note 🔐 Quantum Vulnerabilities of Supported Signature Schemes * * Most signature schemes currently supported (ECDSA, Schnorr, FROST variants) are based on elliptic curve cryptography (ECC), * which relies on the hardness of the Elliptic Curve Discrete Logarithm Problem (ECDLP). * While this is secure against classical adversaries, it is fundamentally broken by quantum algorithms. * * ⛔ Key implications: * - A sufficiently powerful quantum computer (~2,500–4,000 logical qubits) running Shor's Algorithm can efficiently recover private keys from public keys * - This impacts all ECDSA and Schnorr-based schemes, including secp256k1, P-256, P-384, Ed25519, Ed448, Ristretto25519, Jubjub, and others * - Public keys become vulnerable **after** signature broadcast, making post-quantum readiness essential for long-term key safety * - FROST does not provide post-quantum guarantees unless combined with a post-quantum signature primitive * * ⚠️ The choice of hash function (e.g., SHA256, SHA384, SHA512, Blake2b, SHAKE256) does **not** mitigate the quantum threat. * Hashes are not a defence if the underlying signature algorithm is broken. * * @warning None of the currently supported signature types are post-quantum secure. */ import { EcdsaSigType, SigningSchemeSchema } from '@lit-protocol/constants'; import { SigningChainSchema } from '@lit-protocol/schemas'; import { z } from 'zod'; type DesiredEcdsaSchemes = Extract, EcdsaSigType>; type EcdsaHashMapper = Record Uint8Array>; type ChainHashMapper = { [key in z.infer]: EcdsaHashMapper; }; export declare const chainHashMapper: ChainHashMapper; export declare const LitMessageSchema: z.ZodEffects; signingScheme: z.ZodEnum<["EcdsaK256Sha256" | "EcdsaP256Sha256" | "EcdsaP384Sha384" | "SchnorrEd25519Sha512" | "SchnorrK256Sha256" | "SchnorrP256Sha256" | "SchnorrP384Sha384" | "SchnorrRistretto25519Sha512" | "SchnorrEd448Shake256" | "SchnorrRedJubjubBlake2b512" | "SchnorrK256Taproot" | "SchnorrRedDecaf377Blake2b512" | "SchnorrkelSubstrate", ...("EcdsaK256Sha256" | "EcdsaP256Sha256" | "EcdsaP384Sha384" | "SchnorrEd25519Sha512" | "SchnorrK256Sha256" | "SchnorrP256Sha256" | "SchnorrP384Sha384" | "SchnorrRistretto25519Sha512" | "SchnorrEd448Shake256" | "SchnorrRedJubjubBlake2b512" | "SchnorrK256Taproot" | "SchnorrRedDecaf377Blake2b512" | "SchnorrkelSubstrate")[]]>; chain: z.ZodEnum<["ethereum", "bitcoin", "cosmos", "solana"]>; }, "strip", z.ZodTypeAny, { chain: "ethereum" | "bitcoin" | "cosmos" | "solana"; signingScheme: "EcdsaK256Sha256" | "EcdsaP256Sha256" | "EcdsaP384Sha384" | "SchnorrEd25519Sha512" | "SchnorrK256Sha256" | "SchnorrP256Sha256" | "SchnorrP384Sha384" | "SchnorrRistretto25519Sha512" | "SchnorrEd448Shake256" | "SchnorrRedJubjubBlake2b512" | "SchnorrK256Taproot" | "SchnorrRedDecaf377Blake2b512" | "SchnorrkelSubstrate"; toSign: number[]; }, { chain: "ethereum" | "bitcoin" | "cosmos" | "solana"; signingScheme: "EcdsaK256Sha256" | "EcdsaP256Sha256" | "EcdsaP384Sha384" | "SchnorrEd25519Sha512" | "SchnorrK256Sha256" | "SchnorrP256Sha256" | "SchnorrP384Sha384" | "SchnorrRistretto25519Sha512" | "SchnorrEd448Shake256" | "SchnorrRedJubjubBlake2b512" | "SchnorrK256Taproot" | "SchnorrRedDecaf377Blake2b512" | "SchnorrkelSubstrate"; toSign?: any; }>, number[], { chain: "ethereum" | "bitcoin" | "cosmos" | "solana"; signingScheme: "EcdsaK256Sha256" | "EcdsaP256Sha256" | "EcdsaP384Sha384" | "SchnorrEd25519Sha512" | "SchnorrK256Sha256" | "SchnorrP256Sha256" | "SchnorrP384Sha384" | "SchnorrRistretto25519Sha512" | "SchnorrEd448Shake256" | "SchnorrRedJubjubBlake2b512" | "SchnorrK256Taproot" | "SchnorrRedDecaf377Blake2b512" | "SchnorrkelSubstrate"; toSign?: any; }>; export {};