X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/a5eb7820a59f534546dbc237c589b0141db581b1..c48c4d7856cc61694b9bb1a4d9a33f693cb4fbe2:/client/cmdhfmfhard.h diff --git a/client/cmdhfmfhard.h b/client/cmdhfmfhard.h new file mode 100644 index 00000000..bcbc3db4 --- /dev/null +++ b/client/cmdhfmfhard.h @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// Copyright (C) 2015 piwi +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// hf mf hardnested command +//----------------------------------------------------------------------------- + +#ifndef CMDHFMFHARD_H__ +#define CMDHFMFHARD_H__ + +#include +#include + +#define NUM_SUMS 19 // number of possible sum property values + +typedef struct guess_sum_a8 { + float prob; + uint64_t num_states; + uint8_t sum_a8_idx; +} guess_sum_a8_t; + +typedef struct noncelistentry { + uint32_t nonce_enc; + uint8_t par_enc; + void *next; +} noncelistentry_t; + +typedef struct noncelist { + uint16_t num; + uint16_t Sum; + guess_sum_a8_t sum_a8_guess[NUM_SUMS]; + bool sum_a8_guess_dirty; + float expected_num_brute_force; + uint8_t BitFlips[0x400]; + uint32_t *states_bitarray[2]; + uint32_t num_states_bitarray[2]; + bool all_bitflips_dirty[2]; + noncelistentry_t *first; +} noncelist_t; + +int mfnestedhard(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo, uint8_t trgKeyType, uint8_t *trgkey, bool nonce_file_read, bool nonce_file_write, bool slow, int tests); +void hardnested_print_progress(uint32_t nonces, char *activity, float brute_force, uint64_t min_diff_print_time); + +#endif +