|
template<domain D :shared2p , dim N> |
D xor_uint8 | choose (D bool[[N]] cond, D xor_uint8[[N]] first, D xor_uint8[[N]] second) |
|
template<domain D :shared2p , dim N> |
D xor_uint16 | choose (D bool[[N]] cond, D xor_uint16[[N]] first, D xor_uint16[[N]] second) |
|
template<domain D :shared2p , dim N> |
D xor_uint32 | choose (D bool[[N]] cond, D xor_uint32[[N]] first, D xor_uint32[[N]] second) |
|
template<domain D :shared2p , dim N> |
D xor_uint64 | choose (D bool[[N]] cond, D xor_uint64[[N]] first, D xor_uint64[[N]] second) |
|
Function for obliviously choosing pointwise from the inputs.
- Note
- D - shared2p protection domain
-
Supported types - xor_uint8 / xor_uint16 / xor_uint32 / xor_uint64
- Parameters
-
cond | - a boolean vector |
first | - values for true case |
second | - values for false case |
- Returns
- pointwise check if cond at a certain position is true or false. if true the element of first at that position is returned else the element of second at that position is returned
◆ choose() [1/4]
D xor_uint16 choose |
( |
D bool[[N]] |
cond, |
|
|
D xor_uint16[[N]] |
first, |
|
|
D xor_uint16[[N]] |
second |
|
) |
| |
◆ choose() [2/4]
D xor_uint32 choose |
( |
D bool[[N]] |
cond, |
|
|
D xor_uint32[[N]] |
first, |
|
|
D xor_uint32[[N]] |
second |
|
) |
| |
◆ choose() [3/4]
D xor_uint64 choose |
( |
D bool[[N]] |
cond, |
|
|
D xor_uint64[[N]] |
first, |
|
|
D xor_uint64[[N]] |
second |
|
) |
| |
◆ choose() [4/4]
D xor_uint8 choose |
( |
D bool[[N]] |
cond, |
|
|
D xor_uint8[[N]] |
first, |
|
|
D xor_uint8[[N]] |
second |
|
) |
| |