Types
Last updated
Last updated
The following types are supported:
u8
, u16
, u32
, u64
, u128
, usize
, i8
, i16
, i32
, i64
, i128
, isize
f64
, f32
(Note: these types are emulated by the fixed-point numbers k*2^-52
, for k
between -2^250
and 2^250
.)
tuples of supported types, including ()
fixed-length arrays of a supported type
(mutable) references to a supported type
user-defined structs of supported types
Arcis-defined Enc
, Mxe
and Shared
.
In particular, we do not support HashMap
, Vec
, slices, nor anything related to strings.
Here, Enc
type defines the encrypted data input, which is used as Enc<Owner, T>
where Owner
can be either Mxe
or Shared
, signaling which party the data of type T
can be decrypted by. You can read more about dealing with encrypted inputs/outputs .
Note: Currently all these types get mapped to secret shares over the curve25519 scalar field under the hood, meaning they all take up the same amount of space. Changing this for better space utilization is on the roadmap and will be implemented soon.