2013-02-25 24 views
2

場景:Notesapi:MIMEConvertCDParts失去了(加)附件如果音符最初加密

有兩個音符的客戶端用戶A和用戶B,誰從哪裏發生以下情況的機器登錄。

用戶A是最後使用筆記客戶端的人(所以notes.ini包含她的信息)。而且,我工作的數據庫是用戶B的nsf文件。

操作:

我一個文件附加到加密的筆記,使用NSFNoteAttachFile。附加後,我想用MIMEConvertCDParts將筆記轉換爲MIME。 (並使用MIMEStreamOpen獲取流內容)

我沒有用於解密音符的密鑰/ ID /密碼。因此,當我將其轉換爲MIMEConvertCDParts,筆記的內容是

「[此MIME文件的部分被利用票據 證書加密,不能被讀取。]」,

這是期待。

問題

但我前面添加的附件變換流中丟失(這是原來存在的附件仍然存在,但大小爲0 - 也如預期 - 因爲我沒有提供密鑰/密碼)

我試着在MIMEConvertCDParts(轉換)之前和之後傾倒註釋的字段。

轉換前,我的附件「$File」對象存在的領域之一,

但轉換之後,它不會在MIME顯示,但轉換會將此到外地「$MIMETrack」。

「CD-MIME失敗,在02.25.2013 10:30:02上午:您必須提供批量解密密鑰以便提取此文件對象。」

我認爲,當我添加附件時,它是用NSF文件的原始所有者(用戶B)的公鑰(或其他某個鍵)加密的。

我需要知道

我怎麼能告訴/力notesapi留下的文件,因爲它是當我添加它。即不加密。

或者我怎麼能要求它在轉換時解密它(以防使用用戶A自己的密鑰進行加密)。我怎麼知道用什麼密鑰來加密附件?

任何幫助,將不勝感激。

謝謝, Littleboy。PS:如果我將用戶B的nsf文件發送到從未意識到B的域/機器,那麼我在添加/獲取附件時沒有問題。這導致我認爲B的公鑰可能被A知道,並且當我添加到B的記錄時文件被自動加密。

回答

0

首先,B的公鑰是... public。它在Domino目錄中。它是域中每個人都知道的,所以每個人都可以爲B加密一個文檔。但是我對你的最後一段感到有些驚訝。我希望這個操作不會起作用。我不認爲你可以在同一個筆記中混合加密和未加密的附件。

在任何情況下,有關文檔加密的信息位於$ Seal項中,這是ITEM_NAME_NOTE_SEALUSERS項,但我不知道是否可以從此字段中提取任何有用的信息,沒有鑰匙。假定您有私鑰,NSFNoteDecrypt函數用於解密加密的鈔票。如果您沒有鑰匙,它將返回一個錯誤。查看Notes C API用戶指南中的第11-2章。對於使用Notes/DOmino 8.0.1或更高版本加密的數據,首選NSFNoteCipherDecrypt。