-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathargs_omp.ggo
89 lines (70 loc) · 4.1 KB
/
args_omp.ggo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package "rbc_validator"
version "1.0.0"
purpose "\nGiven an HOST_SEED and either:
1) an AES256 CLIENT_CIPHER and plaintext UUID;
2) a ChaCha20 CLIENT_CIPHER, plaintext UUID, and IV;
3) an ECC Secp256r1 CLIENT_PUB_KEY;
4) a MD5, SHA1, SHA2-224, SHA2-256, SHA2-384, SHA2-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512, \
SHAKE128, SHAKE256, or KangarooTwelve CLIENT_DIGEST;
where CLIENT_* is from an unreliable source. \
Progressively corrupt the chosen cryptographic function by a certain \
number of bits until a matching client seed is found. The matching \
HOST_* will be sent to stdout, depending on the cryptographic function.
This implementation uses OpenMP."
usage "rbc_validator [OPTIONS...] --mode=none HOST_SEED
or : rbc_validator [OPTIONS...] --mode=[aes,chacha20] HOST_SEED CLIENT_CIPHER UUID [IV]
or : rbc_validator [OPTIONS...] --mode=ecc HOST_SEED CLIENT_PUB_KEY
or : rbc_validator [OPTIONS...] --mode=[md5,sha1,sha224,sha256,sha384,sha512,sha3-224,sha3-256,\
sha3-384,sha3-512,shake128,shake256,kang12] HOST_SEED CLIENT_DIGEST [SALT]
or : rbc_validator [OPTIONS...] --mode=* -r/--random -m/--mismatches=value
or : rbc_validator [OPTIONS...] --mode=* -b/--benchmark -m/--mismatches=value
Try `rbc_validator_mpi --help' for more information."
description "If the client seed is found then the program will have an exit code \
0. If not found, e.g. when providing --mismatches and \
especially --exact, then the program will have an exit code \
1. For any general error, such as parsing, out-of-memory, \
etc., the program will have an exit code 2.
The original HOST_SEED, passed in as hexadecimal, is corrupted by \
a certain number of bits and used to generate the cryptographic output. \
HOST_SEED is always 32 bytes, which corresponds to 64 hexadecimal \
characters."
versiontext "Christopher Robert Philabaum <[email protected]>"
args "--output-dir=src/cmdline --default-optional --unnamed-opts --file-name cmdline_omp \
--show-required=(MANDATORY) --no-handle-error"
defmode "Random"
defmode "Benchmark"
option "usage" - "Give a short usage message"
option "mode" - "(REQUIRED) The cryptographic function to iterate against. If `none', then only perform
seed iteration."
enum values="none","aes","chacha20","ecc","md5","sha1","sha224","sha256","sha384","sha512",
"sha3-224","sha3-256","sha3-384","sha3-512","shake128","shake256","kang12"
option "mismatches" m "The largest # of bits of corruption to test against, inclusively. \
Defaults to -1. If negative, then the size of key in bits will be the limit. If in random or \
benchmark mode, then this will also be used to corrupt the random key by the same # of bits; for this \
reason, it must be set and non-negative when in random or benchmark mode. Cannot be larger \
than what --subkey-size is set to."
int typestr="value" default="-1"
option "subkey" s "How many of the first bits to corrupt and iterate over. Must be between 1 and 256. \
Defaults to 256."
int typestr="value" default="256"
modeoption "random" r "Instead of using arguments, randomly generate HOST_SEED and CLIENT_*. This must be \
accompanied by --mismatches, since it is used to corrupt the random key by the same # of \
bits. --random and --benchmark cannot be used together."
flag off mode="Random"
modeoption "benchmark" b "Instead of using arguments, strategically generate HOST_SEED and CLIENT_*. \
Specifically, generates a client seed that's always 50% of the way through a rank's \
workload, but randomly chooses the thread. --random and --benchmark cannot be used \
together."
flag off mode="Benchmark"
option "all" a "Don't cut out early when key is found."
flag off
option "count" c "Count the number of keys tested and show it as verbose output."
flag off
option "fixed" f "Only test the given mismatch, instead of progressing from 0 to --mismatches. This is \
only valid when --mismatches is set and non-negative."
flag off
option "verbose" v "Produces verbose output and time taken to stderr."
flag off
option "threads" t "How many worker threads to use. Defaults to 0. If set to 0, then the number of \
threads used will be detected by the system."
int typestr="count" default="0"