Zum Hauptinhalt springen

Testvektoren

qoresign-v1.json wird aus der TypeScript-Implementierung erzeugt (pnpm build && pnpm vectors) und von den Testsuiten für TypeScript, Rust, Go, Swift, Kotlin und Python geprüft. Eine Änderung an der Datei ist eine Änderung des Wire-Formats: Legen Sie stattdessen eine neue Datei mit einer neuen Version an, statt diese zu bearbeiten.

Jeder Schlüssel wird aus dem öffentlichen BIP-39-Test-Mnemonic (abandon ... about) abgeleitet. Senden Sie niemals Gelder an diese Konten.

Felder​

FeldInhalt
accountsklassische Schlüssel und Adressen für Konten vom Typ secp256k1 (m/44'/118'/0'/0/0) und eth_secp256k1 (m/44'/60'/0'/0/0)
canonicalkanonische öffentliche ML-DSA-87-Schlüssel je Adresse (Schlüsselableitung)
hd, hdRejectedhierarchische Ableitung im Entwurf: öffentliche Schlüssel je Pfad und Pfade, die abgelehnt werden müssen (Schlüsselableitung)
hybridTxein TxBody und AuthInfo, Kontonummer und Chain-ID, mit den erwarteten Sign-Bytes, ML-DSA-87-Signatur, finalem Body, secp256k1-Signatur und TxRaw für die Sign-Bytes v2 und v1 (Hybrid-Signieren)
proofOfPossessionNachricht und Signatur des Besitznachweises (Registrierung)
registerMessagekodiertes MsgRegisterPQCKeyV2
messageSignieren beliebiger Nachrichten: Daten, ADR-36- und ML-DSA-87-Sign-Bytes, Signatur (Nachrichtensignierung)
siwqAnmeldefelder, gerenderte Nachricht, ADR-36- und ML-DSA-87-Sign-Bytes, Signatur und ein Zeitpunkt, zu dem sie verifiziert (Sign In With QoreChain)

Kodierung​

Alle Byte-Strings sind Hex in Kleinbuchstaben. ML-DSA-87-Signaturen sind deterministisch (FIPS 204, rnd = 32 Null-Bytes); secp256k1-Signaturen verwenden RFC 6979 und Low-S.