pub struct PublicKey { /* private fields */ }Expand description
A structure containing a public key.
Implementations§
Source§impl PublicKey
impl PublicKey
Sourcepub fn encrypt(&self, message: bool) -> Ciphertext
pub fn encrypt(&self, message: bool) -> Ciphertext
Encrypt a Boolean message using the public key.
§Example
use tfhe::boolean::prelude::*;
// Generate the client key and the server key:
let (cks, sks) = gen_keys();
let pks = PublicKey::new(&cks);
// Encryption of one message:
let ct1 = pks.encrypt(true);
let ct2 = pks.encrypt(false);
let ct_res = sks.and(&ct1, &ct2);
// Decryption:
let dec = cks.decrypt(&ct_res);
assert!(!dec);Sourcepub fn new(client_key: &ClientKey) -> Self
pub fn new(client_key: &ClientKey) -> Self
Allocate and generate a client key.
§Example
use tfhe::boolean::prelude::*;
// Generate the client key and the server key:
let (cks, sks) = gen_keys();
let pks = PublicKey::new(&cks);Sourcepub fn into_raw_parts(self) -> (LwePublicKeyOwned<u32>, BooleanParameters)
pub fn into_raw_parts(self) -> (LwePublicKeyOwned<u32>, BooleanParameters)
Deconstruct a PublicKey into its constituents.
Sourcepub fn from_raw_parts(
lwe_public_key: LwePublicKeyOwned<u32>,
parameters: BooleanParameters,
) -> Self
pub fn from_raw_parts( lwe_public_key: LwePublicKeyOwned<u32>, parameters: BooleanParameters, ) -> Self
Trait Implementations§
Source§impl<'de> Deserialize<'de> for PublicKey
impl<'de> Deserialize<'de> for PublicKey
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Unversionize for PublicKeywhere
PublicKeyVersions: VersionsDispatch<Self>,
impl Unversionize for PublicKeywhere
PublicKeyVersions: VersionsDispatch<Self>,
Source§fn unversionize(
versioned: Self::VersionedOwned,
) -> Result<Self, UnversionizeError>
fn unversionize( versioned: Self::VersionedOwned, ) -> Result<Self, UnversionizeError>
Creates an object from a versioned enum, and eventually upgrades from previous
variants.
Source§impl UnversionizeVec for PublicKeywhere
PublicKeyVersions: VersionsDispatch<Self>,
impl UnversionizeVec for PublicKeywhere
PublicKeyVersions: VersionsDispatch<Self>,
fn unversionize_vec( versioned: Self::VersionedVec, ) -> Result<Vec<Self>, UnversionizeError>
Source§impl Versionize for PublicKeywhere
PublicKeyVersions: VersionsDispatch<Self>,
impl Versionize for PublicKeywhere
PublicKeyVersions: VersionsDispatch<Self>,
Source§type Versioned<'vers> = <PublicKeyVersions as VersionsDispatch<PublicKey>>::Ref<'vers>
type Versioned<'vers> = <PublicKeyVersions as VersionsDispatch<PublicKey>>::Ref<'vers>
The equivalent versioned type. It should have a variant for each version.
It may own the underlying data or only hold a read-only reference to it.
Source§fn versionize(&self) -> Self::Versioned<'_>
fn versionize(&self) -> Self::Versioned<'_>
Wraps the object into a versioned enum with a variant for each version. This will
use references on the underlying types if possible.
Source§impl VersionizeOwned for PublicKeywhere
PublicKeyVersions: VersionsDispatch<Self>,
impl VersionizeOwned for PublicKeywhere
PublicKeyVersions: VersionsDispatch<Self>,
type VersionedOwned = <PublicKeyVersions as VersionsDispatch<PublicKey>>::Owned
Source§fn versionize_owned(self) -> Self::VersionedOwned
fn versionize_owned(self) -> Self::VersionedOwned
Wraps the object into a versioned enum with a variant for each version. This will
clone the underlying types.
Source§impl VersionizeSlice for PublicKeywhere
PublicKeyVersions: VersionsDispatch<Self>,
impl VersionizeSlice for PublicKeywhere
PublicKeyVersions: VersionsDispatch<Self>,
type VersionedSlice<'vers> = Vec<<PublicKey as Versionize>::Versioned<'vers>>
fn versionize_slice(slice: &[Self]) -> Self::VersionedSlice<'_>
Source§impl VersionizeVec for PublicKeywhere
PublicKeyVersions: VersionsDispatch<Self>,
impl VersionizeVec for PublicKeywhere
PublicKeyVersions: VersionsDispatch<Self>,
type VersionedVec = Vec<<PublicKey as VersionizeOwned>::VersionedOwned>
fn versionize_vec(vec: Vec<Self>) -> Self::VersionedVec
Auto Trait Implementations§
impl Freeze for PublicKey
impl RefUnwindSafe for PublicKey
impl Send for PublicKey
impl Sync for PublicKey
impl Unpin for PublicKey
impl UnsafeUnpin for PublicKey
impl UnwindSafe for PublicKey
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more