зеркало из https://github.com/mozilla/rappor.git
0d8ad6d54f
- It can be used in applications, and follows the same choices as the C++ (and Java) client libraries: MD5 to choose the bloom filter bits, and HMAC-SHA256 with client secret for the PRR. (rappor.py) - hash_candidates.py and rappor_sim.py use the rappor.get_bloom_bits API, which is more efficient since it calls the hash function once instead of 'h' times. - Make the randomness interface a simpler "IrrRand" interface, which has 2 implementations: pure Python and C. (The PRR always uses the same randomness.) - regtest.sh: Instead of a boolean for 'fast_counts', we have 3 modes: Python client, C++ client, and 'fast_counts'. The same tests can be run against each implementation. The results are put in different directories, so they don't overwite each other. - Rename gen_reports.R to gen_true_values.R (since the "reports" are typically the data transformed by RAPPOR). - Change it to output the client and assign the cohort like this: client,cohort,value c1,1,v26 c1,1,v27 c2,2,v8 c2,2,v9 The cohort is stable per client, but the value is different. - Add unit test - tests/rappor_sim.py: New test protocol. Read true_values CSV input. The CSV output contains the bloom filter, PRR, and IRR for easier debugging. - compare_dist.R loads the true values and computes the histograms, rather than rappor_sim.py having to do it. This makes it easier to use the test harness with C++ and other clients. - demo.sh: quickly run equivalent tests for each mode. - regtest.sh: show the implementation tested |
||
---|---|---|
.. | ||
cpp | ||
python |