Reference
SEAL.CKKSEncoder
SEAL.Ciphertext
SEAL.Decryptor
SEAL.EncryptionParameters
SEAL.Encryptor
SEAL.Evaluator
SEAL.GaloisKeys
SEAL.KeyGenerator
SEAL.Modulus
SEAL.Plaintext
SEAL.PublicKey
SEAL.RelinKeys
SEAL.SEALContext
SEAL.SEALObject
SEAL.SecretKey
SEAL.check_return_value
SEAL.decode!
SEAL.destroy!
SEAL.encode!
SEAL.gethandle
SEAL.isallocated
SEAL.isnull
SEAL.sethandle!
SEAL.slot_count
SEAL.version
SEAL.version_major
SEAL.version_minor
SEAL.version_patch
SEAL.@check_return_value
SEAL.CKKSEncoder
— TypeCKKSEncoder
A CKKSEncoder
provides functionality to convert raw data such as scalars and vectors into Plaintext
instances using encode!
, and to convert Plaintext
elements back to raw data using decode!
.
SEAL.Ciphertext
— TypeCiphertext
A ciphertext element, consisting of two or more polynomials. It can be created from a Plaintext
element by encrypting it with an appropriate Encryptor
instance. Ciphertext
instances should usually not be modified directly by the user but only through the corresponding functions of Evaluator
. Decryption is performed via a Decryptor
instance, which converts a Ciphertext
back to a Plaintext
instance.
SEAL.Decryptor
— TypeDecryptor
A Decryptor
can be used to decrypt a Ciphertext
instance back into a Plaintext
instance.
See also: Plaintext
, Ciphertext
SEAL.EncryptionParameters
— TypeEncryptionParameters
Stores settings for use by the encryption schemes, most importantly the polynomial modulus, the coefficient modulus, and the plaintext modulus. An EncryptionParameters
object is required to create a SEALContext
instance.
See also: SEALContext
SEAL.Encryptor
— TypeEncryptor
An Encryptor
can be used to encrypt a Plaintext
instance, yielding a Ciphertext
instance.
See also: Plaintext
, Ciphertext
SEAL.Evaluator
— TypeEvaluator
An Evaluator
is used to perform arithmetic and other operations on Ciphertext
instances. These include addition, multiplication, relinearization, and modulus switching.
See also: Ciphertext
SEAL.GaloisKeys
— TypeSEAL.KeyGenerator
— TypeKeyGenerator
Can be used to generate a pair of matching secret and public keys. In addition, the KeyGenerator
provides functions to obtain relinearization keys (required after multiplication) and Galois keys (needed for rotation).
SEAL.Modulus
— TypeModulus
Represents a non-negative integer modulus of up to 61 bits, e.g., for the plain modulus and the coefficient modulus in instances of EncryptionParameters
.
See also: EncryptionParameters
SEAL.Plaintext
— TypePlaintext
A plaintext element, storing data as a polynomial modulo the plaintext modulus. It can be used to create a Ciphertext
element by encrypting it with an appropriate Encryptor
instance. Decrypting a Ciphertext
with a Decryptor
instance will again return a Plaintext
instance.
See also: Ciphertext
, Encryptor
, Decryptor
SEAL.PublicKey
— TypeSEAL.RelinKeys
— TypeSEAL.SEALContext
— TypeSEALContext
Heavyweight class that does validates encryption parameters of type EncryptionParameters
and pre-computes and stores several costly pre-computations.
See also: EncryptionParameters
SEAL.SEALObject
— TypeSEALObject
Abstract parent type for all types based on SEAL classes.
SEAL.SecretKey
— TypeSEAL.check_return_value
— Functioncheck_return_value(value, location="")
Check the return value value
of calls to C bindings of the SEAL library and throw an exception if there were errors. location
can be used to pass information about were the error occurred and will be printed as well.
See also: @check_return_value
SEAL.decode!
— Methoddecode!(destination, plain, encoder)
Use CKKSEncoder
instance encoder
to convert the Plaintext
instance plain
back to raw data. The result is stored in the dense vector destination
, which must have at least as many elements as there are slots available.
See also: slot_count
SEAL.destroy!
— Methoddestroy!(object::SEALObject)
Call the corresponding destruction function on object
to free up memory and reset object handle to a null pointer. If object
is not allocated, destroy!
will not do anything.
SEAL.encode!
— Functionencode!(destination, data::DenseVector{Float64}, scale, encoder)
encode!(destination, data::Float64, scale, encoder)
Use CKKSEncoder
instance encoder
to encode raw data
, which can either be a scalar or a dense vector. The result is stored in the Plaintext
instance destination
using encoding precision scale
. Note that if data
is a vector, it must have at least as many elements as there are slots available.
See also: slot_count
SEAL.gethandle
— Methodgethandle(object::SEALObject)
Return the raw C pointer to where object
resides in memory.
SEAL.isallocated
— Methodisallocated(object::SEALObject)
Return true if the object is allocated, i.e., if it is not null.
SEAL.isnull
— Methodisnull(object::SEALObject)
Return true if the object handle is a null pointer and false otherwise.
SEAL.sethandle!
— Methodsethandle!(object::SEALObject, handle)
Set the underlying raw C pointer to where object
resides in memory to handle
.
SEAL.slot_count
— Methodslot_count(encoder)
Return the number of available slots for a given encoder, i.e., how many raw data values can be stored and processed simultaneously with the given encryption setup.
SEAL.version
— Methodversion()
Return the version of the used SEAL library as a VersionNumber
in the format v"major.minor.patch"
..
See also: version_major
, version_minor
, version_patch
SEAL.version_major
— Methodversion_major()
Return the major version of the used SEAL library as an integer.
See also: version_minor
, version_patch
, version
SEAL.version_minor
— Methodversion_minor()
Return the minor version of the used SEAL library as an integer.
See also: version_major
, version_patch
, version
SEAL.version_patch
— Methodversion_patch()
Return the patch version of the used SEAL library as an integer.
See also: version_major
, version_minor
, version
SEAL.@check_return_value
— Macro@check_return_value value
Call check_return_value(value, location)
with location
being a string of the format <filename>:<line_number>
.
See also: check_return_value