xenia 6a7c453f3e | ||
---|---|---|
crossfire | ||
.gitignore | ||
COPYING | ||
LICENSE | ||
Makefile | ||
README.md |
README.md
crossfire
distributed brute force infrastructure
takes the difficulty out of creating custom brute force jobs
status
base
- 🚧 input space manipulation functions
- ✅ data types: interval, iset (interval set), pattern (vector of interval set)
- ✅ pos->iset-pos, iset-count, pattern-count
- 🚧 partitioning functions
- 🚧 #lang for configuration/definitions
- (input) mode
- stdio: user program gets input by stdio, integers separated by space, one per line
- callback: input generator compiled into user program, user main calls
crossfire_main
with callback function that returns true or false - other modes??
- SMP: performed by crossfire or performed by the user code
- "performed by user code" can also mean GPU, for example
- (input) mode
- 🚧 codegen for input generator (in C)
- 🚧 stdio mode
- 🚧 callback mode
- success reporting mechanism
- low priority: configurable "character" type -- currently a "character" is a uint64_t
server: distribute jobs to workers
- base definitions of input classes and how to divide them
- dynamic slicing and scheduling based on agents' reported work rate
- low priority: randomized input space distribution
- ability to compile input generator with different parameters and distribute to agents
- low priority: support for multiple architectures
- agent authentication
- client authentication
agent: accept and run jobs
- securely connect to server
- retrieve assigned tasks
- report number of cores available (configurable limit)
- report work rate
- report successes
- low priority: defer to external brute force program (eg, hashcat on GPU)
client: submit jobs and view progress
- command line interface
- securely connect to server
crossfire new
: create new crossfire projectcrossfire test
: test project locally, replicates configuration of server with single local agent to debug issuescrossfire submit
: submit task to servercrossfire status
: check status of task (or network as a whole)
- low priority: gui interface