pub enum VectorEncryption {
None,
Dcpe,
ClientSide,
}Expand description
How a collection’s vectors are encrypted (ADR-0031, ADR-0032). Encryption is
always client-side — the server never holds the key. Defaults to
VectorEncryption::None. The variants sit on Quiver’s encrypted-search
spectrum, from fastest to most confidential:
None: plaintext vectors; the server ranks and sees everything (the default).Dcpe: experimental property-preserving encryption; the server ranks ciphertexts but the approximate distance-comparison relation leaks by design.L2only; not semantically secure (ADR-0031).ClientSide: semantically secure (IND-CPA) opaque AEAD ciphertext; the server stores blobs it cannot read and does no distance math, so the client fetches and ranks locally (ADR-0032).
The discriminants are chosen so a descriptor written when this flag was a
bool encrypted_vectors decodes unchanged: false (byte 0) is
None and true (byte 1) is
Dcpe — no data migration.
Variants§
None
Plaintext vectors; the server ranks (the default).
Dcpe
Experimental DCPE ciphertext (ADR-0031): the server ranks, the approximate
distance-comparison relation leaks by design, L2 only, not semantically
secure.
ClientSide
Semantically secure opaque AEAD ciphertext (ADR-0032): the server stores blobs it cannot read and does no distance math; the client ranks locally.
Trait Implementations§
Source§impl Clone for VectorEncryption
impl Clone for VectorEncryption
Source§fn clone(&self) -> VectorEncryption
fn clone(&self) -> VectorEncryption
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for VectorEncryption
Source§impl Debug for VectorEncryption
impl Debug for VectorEncryption
Source§impl Default for VectorEncryption
impl Default for VectorEncryption
Source§fn default() -> VectorEncryption
fn default() -> VectorEncryption
Source§impl<'de> Deserialize<'de> for VectorEncryption
impl<'de> Deserialize<'de> for VectorEncryption
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<VectorEncryption, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<VectorEncryption, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for VectorEncryption
Source§impl PartialEq for VectorEncryption
impl PartialEq for VectorEncryption
Source§fn eq(&self, other: &VectorEncryption) -> bool
fn eq(&self, other: &VectorEncryption) -> bool
self and other values to be equal, and is used by ==.