Crate mc_oblivious_traits[−][src]
Traits for different pieces of ORAM, from the level of block storage up to an oblivious map. These are all defined in terms of fixed-length chunks of bytes and the A8Bytes object from the aligned-cmov crate.
There is also a naive implementation of the ORAM storage object for tests.
Re-exports
pub use aligned_cmov::subtle; |
pub use aligned_cmov::typenum; |
Modules
testing | Some generic tests that exercise objects implementing these traits |
Structs
GenericArray | Struct representing a generic array - |
HeapORAMStorage | The HeapORAMStorage is simply vector |
HeapORAMStorageCreator | HeapORAMStorage simply allocates a vector, and requires no special initialization support |
LinearScanningORAM |
Constants
OMAP_FOUND | Status code for the case that an OMAP operation found and returned a value. |
OMAP_INVALID_KEY | Status code for the case that the OMAP algorithm rejected the key. The all zeroes key may be invalid for instance. |
OMAP_NOT_FOUND | Status code for the case that an OMAP operation did not find a value that was searched for. |
OMAP_OVERFLOW | Status code for the case that an OMAP wanted to add a new value but could not because the hash table overflowed, and so the operation failed. |
Traits
ArrayLength | Trait making |
CMov | CMov represents types that can be (obliviously) conditionally moved. |
CryptoRng | A marker trait used to indicate that an |
OMapCreator | A factory which makes ObliviousMap objects of some type, based on an ORAM |
ORAM | An Oblivious RAM – that is, an array like [A8Bytes |
ORAMCreator | A factory which creates an ORAM of arbitrary size using recursive strategy. The result is required to have the ’static lifetime, and not be tied to the factory. |
ORAMDebug | Trait that helps to debug ORAM. This should only be used in tests. |
ORAMStorage | Represents trusted block storage holding aligned blocks of memory of a certain size. This is a building block for ORAM. |
ORAMStorageCreator | A factory which makes ORAMStorage objects of some type |
ObliviousHashMap | Trait for an oblivious hash map, where READING and ACCESSING EXISTING ENTRIES have a strong oblivious property. |
PositionMap | PositionMap trait conceptually is an array of TreeIndex. Each value in the map corresponds to a leaf in the complete binary tree, at some common height. |
PositionMapCreator | A factory which creates a PositionMap |
RngCore | The core of a random number generator. |
Functions
cswap | |
log2_ceil | Utility function for logs base 2 rounded up, implemented as const fn |
rng_maker | A helper which takes an Rng implementing SeedableRng and returns a lambda
which returns newly seeded Rng’s with seeds derived from this one.
This matches the |
Type Definitions
A8Bytes | An alias representing 8-byte aligned bytes, mainly to save typing |
A64Bytes | An alias representing 64-byte aligned bytes, mainly to save typing |