> Hi,
>
> Before I go diving into the SQLite source code, can anyone tell me what
> happens to unused space? (i.e. from deleted data in the db)
>
> Specifically, I'm interested in whether it gets over-written by zeroes,
> or something. I'm storing information in a database (in a blob field),
> which the user can then decide to encrypt, and then the plaintext blob
> is set to NULL, and the ciphertext blob (i.e. a different column) is set
> to contain the encrypted data.
>
> So what I'm asking is, in this scenario, is it possible that sometimes I
> could load the sqlite db into a hex editor, and see the original
> unencrypted data? (i.e. the old deleted data from the plaintext blob)
It could happen.
> If so, a workaround is obviously to set the original blob data to
> contain a block of zeroes (of the same length), and *then* set it to
> NULL. But then it's also within the realms of possibility (not wishing
> to criticise anyone's code; only guessing) that SQLite might reallocate
> a block for the blob even if it's the same length as the old data, in
> which case my cunning plan wouldn't work either.
I can contrive a situation where that would happen. I think.
> So in summary, when I delete a blob, I want it to stay deleted, even
> from prying eyes with a hex editor - what's the best way to do this in
> the SQLite model?
Tricky question.
____________________________________________________
Yahoo! Sports
Rekindle the Rivalries. Sign up for Fantasy Football
http://football.fantasysports.yahoo.com