PreSSIOT.java 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package protocols.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 PreSSIOT extends Protocol {
  15. private int pid = P.IOT;
  16. public PreSSIOT(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_k = PRF.generateKey(Crypto.sr);
  22. predata.ssiot_kprime = PRF.generateKey(Crypto.sr);
  23. predata.ssiot_r = Util.nextBytes(Crypto.secParamBytes, Crypto.sr);
  24. timer.start(pid, M.offline_write);
  25. con1.write(predata.ssiot_k);
  26. con1.write(predata.ssiot_kprime);
  27. con1.write(predata.ssiot_r);
  28. timer.stop(pid, M.offline_write);
  29. predata.ssiot_F_k = new PRF(Crypto.secParam);
  30. predata.ssiot_F_k.init(predata.ssiot_k);
  31. predata.ssiot_F_kprime = new PRF(Crypto.secParam);
  32. predata.ssiot_F_kprime.init(predata.ssiot_kprime);
  33. timer.stop(pid, M.offline_comp);
  34. }
  35. public void runD(PreData predata, Timer timer) {
  36. timer.start(pid, M.offline_comp);
  37. timer.start(pid, M.offline_read);
  38. predata.ssiot_k = con1.read();
  39. predata.ssiot_kprime = con1.read();
  40. predata.ssiot_r = con1.read();
  41. timer.stop(pid, M.offline_read);
  42. predata.ssiot_F_k = new PRF(Crypto.secParam);
  43. predata.ssiot_F_k.init(predata.ssiot_k);
  44. predata.ssiot_F_kprime = new PRF(Crypto.secParam);
  45. predata.ssiot_F_kprime.init(predata.ssiot_kprime);
  46. timer.stop(pid, M.offline_comp);
  47. }
  48. public void runC() {
  49. }
  50. @Override
  51. public void run(Party party, Metadata md, Forest forest) {
  52. }
  53. @Override
  54. public void run(Party party, Metadata md, Forest[] forest) {
  55. // TODO Auto-generated method stub
  56. }
  57. }