Abric-language-kotlin

val protocol = protocol val x = input(alice) val y = input(bob) val z = add(x, y) output(z, charlie)

import fr.ens.abricot.* fun main() val protocol = protocol val a = secretInput(party("Alice"), 42) val b = secretInput(party("Bob"), 117) val c = add(a, b) val result = reveal(c) output(result, party("Charlie")) abric-language-kotlin

val multiply = protocol val x = input(alice) val y = input(bob) val product = mul(x, y) // This might generate Beaver triple multiplication output(product, alice, bob) val protocol = protocol val x = input(alice)

// Locally refresh: new_share = old_share + random_share - random_share_from_prev val newShares = parties.indices.map i -> add(oldShares[i], randoms[i]) 42) val b = secretInput(party("Bob")