Typex¶
Overview¶
Encipher/decipher with the WW2 Typex machine.
Status¶
| Field | Value |
|---|---|
| Implementation | Partial |
| Parity | Unknown |
| Availability | Available |
| Input requirement | Required |
| Features | none |
| Side effects | [] |
| Deterministic | true |
Input¶
Declared input type: String.
Output¶
Declared output type: String. Redirect stdout or use --output-file for exact binary bytes.
Arguments¶
| # | Argument | Type | Required | Default | Allowed | Sensitive | Description |
|---|---|---|---|---|---|---|---|
| 1 | 1st rotor | String |
no | MCYLPQUVRXGSAOWNBJEZDTFKHI<BFHNQUW |
— | no | Wiring<Steps |
| 2 | 1st rotor reversed | Boolean |
no | false |
— | no | Boolean |
| 3 | 1st rotor ring setting | String |
no | A |
— | no | A-Z |
| 4 | 1st rotor initial value | String |
no | A |
— | no | A-Z |
| 5 | 2nd rotor | String |
no | KHWENRCBISXJQGOFMAPVYZDLTU<BFHNQUW |
— | no | Wiring<Steps |
| 6 | 2nd rotor reversed | Boolean |
no | false |
— | no | Boolean |
| 7 | 2nd rotor ring setting | String |
no | A |
— | no | A-Z |
| 8 | 2nd rotor initial value | String |
no | A |
— | no | A-Z |
| 9 | 3rd rotor | String |
no | BYPDZMGIKQCUSATREHOJNLFWXV<BFHNQUW |
— | no | Wiring<Steps |
| 10 | 3rd rotor reversed | Boolean |
no | false |
— | no | Boolean |
| 11 | 3rd rotor ring setting | String |
no | A |
— | no | A-Z |
| 12 | 3rd rotor initial value | String |
no | A |
— | no | A-Z |
| 13 | 4th rotor | String |
no | ZANJCGDLVHIXOBRPMSWQUKFYET<BFHNQUW |
— | no | Wiring<Steps |
| 14 | 4th rotor reversed | Boolean |
no | false |
— | no | Boolean |
| 15 | 4th rotor ring setting | String |
no | A |
— | no | A-Z |
| 16 | 4th rotor initial value | String |
no | A |
— | no | A-Z |
| 17 | 5th rotor | String |
no | QXBGUTOVFCZPJIHSWERYNDAMLK<BFHNQUW |
— | no | Wiring<Steps |
| 18 | 5th rotor reversed | Boolean |
no | false |
— | no | Boolean |
| 19 | 5th rotor ring setting | String |
no | A |
— | no | A-Z |
| 20 | 5th rotor initial value | String |
no | A |
— | no | A-Z |
| 21 | Reflector | String |
no | AN BC FG IE KD LU MH OR TS VZ WQ XJ YP |
— | no | Pairs |
| 22 | Plugboard | String |
no | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
— | no | A-Z (26 chars) |
| 23 | Typex keyboard emulation | String |
no | None |
— | no | None, Encrypt, Decrypt |
| 24 | Strict output | Boolean |
no | true |
— | no | Boolean |
Implementation¶
The implementation is in src/operations/typex.rs and declares String input and String output. The operation module owns conversion and domain-error rules; registry resolution, argument validation, input-requirement enforcement, tracing, and output validation are performed by rxchef::execution.
Command-line use¶
This operation requires input. Supply literal UTF-8 with --input, exact bytes with --input-file, or pipe bytes on stdin.
rxchef run "Typex" --input-file input.bin --output-file output.bin
Arguments may be supplied positionally in the table order or by name with repeatable --arg NAME=VALUE. Omitted optional arguments use the documented defaults.
Pipeline use¶
Place the operation anywhere a String value is valid. Its String result becomes the next step's input. Compact syntax uses the operation name followed by comma-separated arguments; JSON/YAML recipes use an op field and an args array.
Error conditions¶
Schema violations are rejected before the operation runs. Malformed input, unsupported parameter combinations, unavailable optional backends, and domain processing failures produce structured errors and a non-zero CLI status; partial output is never reported as success.
CyberChef compatibility¶
Parity status: Unknown. Unknown records an unassessed compatibility claim; it does not imply equality or incompatibility.
Security considerations¶
Declared side effects: []. Treat parser inputs as untrusted and apply execution limits to large data. Arguments marked sensitive in the schema are redacted from metadata-aware History displays.
Testing evidence¶
Correctness tests: - tests/tests/operations/typex.rs
Differential tests: - tests/tests/differential.rs
Performance classification¶
Excluded from the committed representative benchmark set: No stable representative benchmark case is defined; operation remains Partial until performance evidence is reviewed.