I would like to decrypt Lotus Notes NSF files programmatically. Assume that for each NSF, I have the ID file and password needed to access the NSF.
I am using Lotus Notes 8.5.2, Windows 7 SP1 64-bit. I am willing to use COM, C++ API, or C API.
I am aware of the C API function NSFDbIsLocallyEncrypted
, which reports whether an NSF is encrypted. However, I do not believe it is able to decrypt the NSF.
I am aware of the C++ API function LNNotesSession.CreateDatabaseCopy
, which takes as parameter 3 DBOptions
, which has a member that I can set as DBOptions.SetLocalEncryption( LNLOCALENCRYPTION::LNLOCALENCRYPTION_NONE )
. However, this function creates a new NSF. If possible, I would like to decrypt the source NSF in place to save time and disk space.
How can I remove local encryption from an NSF in place?
AFAIK, there is no exposed API for decrypting an NSF file.
Also, since the entire file needs to be rewritten in order to decrypt all the data, I don't think there's really any time or space penalty for copying the entire NSF.