Decrypt Lotus Notes NSF

Jacob Quisenberry picture Jacob Quisenberry · Feb 18, 2013 · Viewed 7.5k times · Source

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?

Answer

Richard Schwartz picture Richard Schwartz · Feb 18, 2013

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.