SecreC 2 language  2.8.0 (2023.09)
Language and standard library reference
Functions

Functions

template<domain D :shared3p >
D uint8 oramPerformRead (D uint8[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm)
 
template<domain D :shared3p >
D uint16 oramPerformRead (D uint16[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm)
 
template<domain D :shared3p >
D uint32 oramPerformRead (D uint32[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm)
 
template<domain D :shared3p >
D uint64 oramPerformRead (D uint64[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm)
 
template<domain D :shared3p >
D int8 oramPerformRead (D int8[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm)
 
template<domain D :shared3p >
D int16 oramPerformRead (D int16[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm)
 
template<domain D :shared3p >
D int32 oramPerformRead (D int32[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm)
 
template<domain D :shared3p >
D int64 oramPerformRead (D int64[[1]] src, D uint8[[1]] shuffleSeed, uint[[1]] sortperm)
 

Detailed Description

Obliviously reads values from source vector indicated by the indices vector.

Note
D - shared3p protection domain
Supported types - uint8 / uint16 / uint32 / uint64 / int8 / int16 / int32 / int64
Parameters
src- vector to read from
shuffleSeed- random seed (32 bytes), has to be the same as used for oramPrepareRead
sortperm- sorting permutation, output of oramPrepareRead
Returns
Returns a new vector result, where result[i] = src[indices[i]]
Note
Given that size(src) = m and size(indices) = n then oramPrepareRead works in Ο((m+n)log(m+n)) and oramPerformRead in Ο(m+n) time.
Leakage
None

Function Documentation

◆ oramPerformRead() [1/8]

D int16 oramPerformRead ( D int16[[1]]  src,
D uint8[[1]]  shuffleSeed,
uint[[1]]  sortperm 
)

◆ oramPerformRead() [2/8]

D int32 oramPerformRead ( D int32[[1]]  src,
D uint8[[1]]  shuffleSeed,
uint[[1]]  sortperm 
)

◆ oramPerformRead() [3/8]

D int64 oramPerformRead ( D int64[[1]]  src,
D uint8[[1]]  shuffleSeed,
uint[[1]]  sortperm 
)

◆ oramPerformRead() [4/8]

D int8 oramPerformRead ( D int8[[1]]  src,
D uint8[[1]]  shuffleSeed,
uint[[1]]  sortperm 
)

◆ oramPerformRead() [5/8]

D uint16 oramPerformRead ( D uint16[[1]]  src,
D uint8[[1]]  shuffleSeed,
uint[[1]]  sortperm 
)

◆ oramPerformRead() [6/8]

D uint32 oramPerformRead ( D uint32[[1]]  src,
D uint8[[1]]  shuffleSeed,
uint[[1]]  sortperm 
)

◆ oramPerformRead() [7/8]

D uint64 oramPerformRead ( D uint64[[1]]  src,
D uint8[[1]]  shuffleSeed,
uint[[1]]  sortperm 
)

◆ oramPerformRead() [8/8]

D uint8 oramPerformRead ( D uint8[[1]]  src,
D uint8[[1]]  shuffleSeed,
uint[[1]]  sortperm 
)