Barvna shema: Svetla
Trenutno dejavna stran: start » sl » Dokumentacija » Postkvantna kriptografija » WvdS Crypto Service – pregled » Referenca » Protokol JSON izvedbe Windows

Protokol JSON izvedbe Windows

Ta stran opisuje vsako zahtevo in vsak odgovor izvedbe Windows. Merodajni so tipi v win/src/protocol.rs.

Prenos

  • Storitev posluša na eni ali več imenovanih ceveh; brez konfiguracije na \\.\pipe\wvds_crypto. Katere cevi odpre konfiguracijska datoteka, opisuje Možnosti gradnje in konfiguracija.
  • Zahteva je natanko ena vrstica JSON v UTF-8, zaključena z \n. Tudi odgovor je ena vrstica. Prek ene povezave lahko zaporedoma pošljete poljubno število zahtev.
  • Binarni podatki so v Base64 po RFC 4648 z dopolnjevanjem (=).
  • Hkrati je lahko povezanih več odjemalcev.

Skupna polja

Vsaka zahteva vsebuje operation in request_id. request_id izbere odjemalec; storitev ga vrne nespremenjenega.

Vsak odgovor na berljivo zahtevo vsebuje:

PoljeTipVsebina
idnizUUID odgovora, ki ga dodeli storitev
request_idniziz zahteve
timestampšteviločas odgovora v milisekundah od 1970-01-01 UTC
successlogična vrednosttrue ob uspehu
errorobjektle ob neuspehu: code, message, po izbiri details
duration_usšteviločas obdelave v mikrosekundah

Če vrstica ni veljaven JSON ali manjka obvezno polje, storitev odgovori le z {"success":false,"error":{"code":"INVALID_REQUEST","message":"…"}}, brez request_id.

Operacije

operationPolja zahteveDodatna polja odgovora
info–version, algorithms, status, uptime_seconds, requests_processed, keys_stored
keygenalgorithm, po izbiri levelkey_id, algorithm, pri parih ključev public_key
aes_encryptkey_id, plaintext, po izbiri aadciphertext, nonce, tag, key_id
aes_decryptkey_id, ciphertext, nonce, tag, po izbiri aadplaintext
ml_dsa_signkey_id, messagesignature, signature_size
ml_dsa_verifypublic_key, message, signature, levelvalid
ml_kem_encapsulatepublic_key, levelciphertext, shared_secret
ml_kem_decapsulatekey_id, ciphertextshared_secret
export_public_keykey_idpublic_key, algorithm
hkdfikm, length, po izbiri salt, infoderived_key

Polja z binarno vsebino so v Base64: plaintext, aad, ciphertext, nonce, tag, message, signature, public_key, shared_secret, ikm, salt, info, derived_key. key_id in length sta števili.

algorithm in level

NamenDovoljene vrednosti
keygen.algorithmAES-256-GCM, AES256, AES; ML-DSA, ML-DSA-44, ML-DSA-65, ML-DSA-87; ML-KEM, ML-KEM-512, ML-KEM-768, ML-KEM-1024 (velikost črk ni pomembna)
level za ML-DSAML-DSA-44, ML-DSA-65, ML-DSA-87, ml-dsa-44 … ali krajše 44, 65, 87
level za ML-KEMML-KEM-512, ML-KEM-768, ML-KEM-1024, ml-kem-512 … ali krajše 512, 768, 1024

keygen z ML-DSA ali ML-KEM brez level ustvari ML-DSA-65 oz. ML-KEM-768. Neznan level vodi do UNSUPPORTED_ALGORITHM.

Opombe k posameznim operacijam

  • aes_encrypt enkratno vrednost ustvari sam in jo vrne v odgovoru. nonce in tag shranite skupaj s šifriranim besedilom; aes_decrypt potrebuje oba.
  • ml_dsa_verify neveljaven podpis sporoči kot uspeh z "valid": false. Vedno vrednotite valid, ne le success.
  • hkdf: Polji salt ali info, ki nista veljaven Base64, storitev obravnava kot prazni. Kodiranje preverite pred pošiljanjem. Največji možni izhod je 8160 bajtov (255 × 32).

Primer

Zahteva:

{"operation":"keygen","request_id":"k1","algorithm":"ML-KEM","level":"ML-KEM-768"}

Odgovor (skrajšan):

{"id":"5d1c…","request_id":"k1","timestamp":1760788800000,"success":true,"duration_us":412,"key_id":2741182583,"algorithm":"ML-KEM-768","public_key":"…"}

Sorodne teme

sl/wiki/pqcrypt/svc/reference/windows-json-protocol.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille