|
@@ -2,7 +2,7 @@
|
|
|
|
|
|
#include "types.hpp"
|
|
#include "types.hpp"
|
|
#include "duoram.hpp"
|
|
#include "duoram.hpp"
|
|
-#include "node.hpp"
|
|
|
|
|
|
+#include "bst.hpp"
|
|
|
|
|
|
// This file demonstrates how to implement custom ORAM wide cell types.
|
|
// This file demonstrates how to implement custom ORAM wide cell types.
|
|
// Such types can be structures of arbitrary numbers of RegAS and RegXS
|
|
// Such types can be structures of arbitrary numbers of RegAS and RegXS
|
|
@@ -196,12 +196,11 @@ std::tuple<RegXS, RegBS> insert(MPCTIO &tio, yield_t &yield, RegXS ptr, Node new
|
|
RegXS next_ptr;
|
|
RegXS next_ptr;
|
|
mpc_select(tio, yield, next_ptr, gt, left, right, 32);
|
|
mpc_select(tio, yield, next_ptr, gt, left, right, 32);
|
|
|
|
|
|
- //RegBS F_z = check_ptr_zero(next_ptr, tio, yield);
|
|
|
|
- CDPF dpf;
|
|
|
|
|
|
+ CDPF dpf = tio.cdpf(yield);
|
|
size_t &aes_ops = tio.aes_ops();
|
|
size_t &aes_ops = tio.aes_ops();
|
|
//RegAS next_ptr_as;
|
|
//RegAS next_ptr_as;
|
|
//mpc_xs_to_as(tio, yield, next_ptr_as, next_ptr);
|
|
//mpc_xs_to_as(tio, yield, next_ptr_as, next_ptr);
|
|
- //RegBS F_z = dpf.is_zero(tio, yield, next_ptr, aes_ops);
|
|
|
|
|
|
+ RegBS F_z = dpf.is_zero(tio, yield, next_ptr, aes_ops);
|
|
RegBS F_i;
|
|
RegBS F_i;
|
|
|
|
|
|
if(tio.player()==0) {
|
|
if(tio.player()==0) {
|
|
@@ -273,6 +272,7 @@ void newnode(Node &a) {
|
|
|
|
|
|
// Now we use the node in various ways. This function is called by
|
|
// Now we use the node in various ways. This function is called by
|
|
// online.cpp.
|
|
// online.cpp.
|
|
|
|
+
|
|
void bst(MPCIO &mpcio,
|
|
void bst(MPCIO &mpcio,
|
|
const PRACOptions &opts, char **args)
|
|
const PRACOptions &opts, char **args)
|
|
{
|
|
{
|