Closed pandasamanvaya closed 3 years ago
Sorry for reply late, you can get the size of a ciphertext like this:
cipher = Ciphertext()
...
cipher_size = cipher.size()
# or
ciipher_sizec = cipher.size_capacity()
And for more, if you want the size in bytes, add a new code to the wrapper file, which point to Ciphertext::save_size
, and no compression.
So, cipher.size() outputs 2 whereas seal.Ciphertext class doesn't have any attribute "size_capacity()".
I see, we will commit new attribute for this later.
Now you could try to use save_size
to get the size of ciphertext or plaintext in bytes.
I recompiled all the files but it says seal.Ciphertext object has no attribute 'save_size'. However, I was able to perform cipher.save() and cipher.load() without any errors.
It's not an attribute, you should call it as a method, and work well in my environment:
print(cipher.save_size())
Can you find the save_size
in src/wrapper.cpp
line 216 or src/wrapper_with_pickle.cpp
line 278?
https://github.com/Huelse/SEAL-Python/blob/c66cef35eb4d2a766521a62e032a6a364d05b742/src/wrapper.cpp#L216
https://github.com/Huelse/SEAL-Python/blob/c66cef35eb4d2a766521a62e032a6a364d05b742/src/wrapper_with_pickle.cpp#L278
I did the same but it didn't work. I am using Ubuntu 20.04.2 LTS. I also can find save_size() method both in src/wrapper.cpp and src/wrapper_with_pickle.cpp.
What about remove the build
folder and .so
files and recompile, or just clone a new repo.
Type To find the size of ciphertext in bytes
Describe I want to compute the size of ciphertext in bytes. Using sys.getsizeof() on a ciphertext object gives output as 56 bytes which doesn't seem to be the actual size of the ciphertext containing the coefficients of the polynomial. A function for this is available in Microsoft seal library as mentioned in this issue https://github.com/microsoft/SEAL/issues/88. I am wondering if the same is also in this library but seem have had no luck in finding any such method.