private void Output(CircuitBuilder builder, SecureWord word) { foreach (Wire wire in word.Wires) { builder.Output(wire); } }
internal void GetSecureWords(GPoint pos, out string sec1, out string sec2) { sec1 = string.Empty; // after &x=... sec2 = string.Empty; // after &zoom=... int seclen = (int)((pos.X * 3) + pos.Y) % 8; sec2 = SecureWord.Substring(0, seclen); if (pos.Y >= 10000 && pos.Y < 100000) { sec1 = Sec1; } }
public SecureSetIntersection(SecureWord[] inputs, int numberOfCounterBits) { _intersection = SecureWord.And(inputs); SecureInteger counter = SecureInteger.Zero(_intersection.Builder); for (int i = 0; i < _intersection.Length; ++i) { counter = counter + SecureInteger.FromBoolean(_intersection.IsBitSet(i)); } _counter = counter.OfFixedLength(numberOfCounterBits); }
public void Record(CircuitBuilder builder) { SecureWord[] inputs = new SecureWord[_numberOfParties]; for (int i = 0; i < _numberOfParties; ++i) { inputs[i] = Input(builder, _numberOfElements); } SecureSetIntersection setIntersection = new SecureSetIntersection(inputs, _numberOfCounterBits); Output(builder, setIntersection.Intersection); Output(builder, setIntersection.Counter); }