Garbler.java 611 B

123456789101112131415161718192021222324252627
  1. package com.oblivm.backend.gc.halfANDs;
  2. import java.nio.ByteBuffer;
  3. import java.security.MessageDigest;
  4. import com.oblivm.backend.gc.GCSignal;
  5. final class Garbler {
  6. private MessageDigest sha1 = null;
  7. Garbler() {
  8. try {
  9. sha1 = MessageDigest.getInstance("SHA-1");
  10. } catch (Exception e) {
  11. e.printStackTrace();
  12. System.exit(1);
  13. }
  14. }
  15. ByteBuffer buffer = ByteBuffer.allocate(GCSignal.len + 9);
  16. public GCSignal hash(GCSignal lb, long k, boolean b) {
  17. buffer.clear();
  18. sha1.update(buffer.put(lb.bytes).putLong(k).put(b ? (byte) 1 : (byte) 0));
  19. return GCSignal.newInstance(sha1.digest());
  20. }
  21. }