Decrypt Lotus Notes NSF
interop-domino, lotus, lotus-domino, lotus-notes
Solution
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.
Problem
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?