PrePIRIOT.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package pir.precomputation;
  2. import communication.Communication;
  3. import crypto.Crypto;
  4. import crypto.PRF;
  5. import oram.Forest;
  6. import oram.Metadata;
  7. import protocols.Protocol;
  8. import protocols.struct.Party;
  9. import protocols.struct.PreData;
  10. import util.M;
  11. import util.P;
  12. import util.Timer;
  13. import util.Util;
  14. public class PrePIRIOT extends Protocol {
  15. private int pid = P.IOT;
  16. public PrePIRIOT(Communication con1, Communication con2) {
  17. super(con1, con2);
  18. }
  19. public void runE(PreData predata, int n, Timer timer) {
  20. timer.start(pid, M.offline_comp);
  21. predata.ssiot_kprime = PRF.generateKey(Crypto.sr);
  22. predata.ssiot_r = Util.nextBytes(Crypto.secParamBytes, Crypto.sr);
  23. timer.start(pid, M.offline_write);
  24. con1.write(predata.ssiot_kprime);
  25. con1.write(predata.ssiot_r);
  26. timer.stop(pid, M.offline_write);
  27. predata.ssiot_F_kprime = new PRF(Crypto.secParam);
  28. predata.ssiot_F_kprime.init(predata.ssiot_kprime);
  29. timer.stop(pid, M.offline_comp);
  30. }
  31. public void runD(PreData predata, Timer timer) {
  32. timer.start(pid, M.offline_comp);
  33. timer.start(pid, M.offline_read);
  34. predata.ssiot_kprime = con1.read();
  35. predata.ssiot_r = con1.read();
  36. timer.stop(pid, M.offline_read);
  37. predata.ssiot_F_kprime = new PRF(Crypto.secParam);
  38. predata.ssiot_F_kprime.init(predata.ssiot_kprime);
  39. timer.stop(pid, M.offline_comp);
  40. }
  41. public void runC() {
  42. }
  43. @Override
  44. public void run(Party party, Metadata md, Forest forest) {
  45. }
  46. @Override
  47. public void run(Party party, Metadata md, Forest[] forest) {
  48. // TODO Auto-generated method stub
  49. }
  50. }