Reference

SEAL.CKKSEncoderType
CKKSEncoder

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!.

See also: Plaintext, encode!, decode!

source
SEAL.CiphertextType
Ciphertext

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.

See also: Plaintext, Encryptor, Decryptor, Evaluator

source
SEAL.EncryptionParametersType
EncryptionParameters

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

source
SEAL.EvaluatorType
Evaluator

An Evaluator is used to perform arithmetic and other operations on Ciphertext instances. These include addition, multiplication, relinearization, and modulus switching.

See also: Ciphertext

source
SEAL.KeyGeneratorType
KeyGenerator

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).

See also: SecretKey, PublicKey, RelinKeys

source
SEAL.ModulusType
Modulus

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

source
SEAL.PlaintextType
Plaintext

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

source
SEAL.SEALContextType
SEALContext

Heavyweight class that does validates encryption parameters of type EncryptionParameters and pre-computes and stores several costly pre-computations.

See also: EncryptionParameters

source
SEAL.check_return_valueFunction
check_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

source
SEAL.decode!Method
decode!(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

source
SEAL.destroy!Method
destroy!(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.

source
SEAL.encode!Function
encode!(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

source
SEAL.gethandleMethod
gethandle(object::SEALObject)

Return the raw C pointer to where object resides in memory.

source
SEAL.isallocatedMethod
isallocated(object::SEALObject)

Return true if the object is allocated, i.e., if it is not null.

source
SEAL.isnullMethod
isnull(object::SEALObject)

Return true if the object handle is a null pointer and false otherwise.

source
SEAL.sethandle!Method
sethandle!(object::SEALObject, handle)

Set the underlying raw C pointer to where object resides in memory to handle.

source
SEAL.slot_countMethod
slot_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.

source