Reference
SEAL.CKKSEncoderSEAL.CiphertextSEAL.DecryptorSEAL.EncryptionParametersSEAL.EncryptorSEAL.EvaluatorSEAL.GaloisKeysSEAL.KeyGeneratorSEAL.ModulusSEAL.PlaintextSEAL.PublicKeySEAL.RelinKeysSEAL.SEALContextSEAL.SEALObjectSEAL.SecretKeySEAL.check_return_valueSEAL.decode!SEAL.destroy!SEAL.encode!SEAL.gethandleSEAL.isallocatedSEAL.isnullSEAL.sethandle!SEAL.slot_countSEAL.versionSEAL.version_majorSEAL.version_minorSEAL.version_patchSEAL.@check_return_value
SEAL.CKKSEncoder — TypeCKKSEncoderA 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 — TypeCiphertextA 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 — TypeDecryptorA Decryptor can be used to decrypt a Ciphertext instance back into a Plaintext instance.
See also: Plaintext, Ciphertext
SEAL.EncryptionParameters — TypeEncryptionParametersStores 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 — TypeEncryptorAn Encryptor can be used to encrypt a Plaintext instance, yielding a Ciphertext instance.
See also: Plaintext, Ciphertext
SEAL.Evaluator — TypeEvaluatorAn 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 — TypeKeyGeneratorCan 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 — TypeModulusRepresents 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 — TypePlaintextA 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 — TypeSEALContextHeavyweight class that does validates encryption parameters of type EncryptionParameters and pre-computes and stores several costly pre-computations.
See also: EncryptionParameters
SEAL.SEALObject — TypeSEALObjectAbstract 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 valueCall check_return_value(value, location) with location being a string of the format <filename>:<line_number>.
See also: check_return_value