【问题标题】:How to use NSFNoteCipherDecrypt in LotusScript agent如何在 LotusScript 代理中使用 NSFNoteCipherDecrypt
【发布时间】:2018-06-12 00:20:18
【问题描述】:

我希望能够在 LotusScript 代理中使用NSFNoteCipherDecrypt 来解密在选定邮件数据库中找到的任何加密消息,但我不明白为什么我需要传递@ 987654322@函数的参数。

API 参考数据库将其描述为:

"hKFC - ID 文件句柄。为当前用户的 ID 传递 NULLKFHANDLE"

STATUS LNPUBLIC NSFNoteCipherDecrypt(
NOTEHANDLE hNote,
KFHANDLE hKFC,
DWORD DecryptFlags,
CIPHERHANDLE far *rethCipherForAttachments,
DWORD Reserved,
void *pReserved);

我找不到在 LotusScript 代理中使用该函数的任何引用,所以我不知道在其参数中使用什么数据类型:

Declare Private Function NSFNoteCipherDecrypt Lib "nnotes.dll" (ByVal hNote As Long, ByVal hKFC As ??? , ByVal DecryptFlags As ???, ByVal rethCipherForAttachments As ???, ByVal ???, ByVal ???) As Integer

有没有可以提供建议的 Notes C API 大师?

【问题讨论】:

    标签: lotus-notes lotus-domino


    【解决方案1】:

    要获得 KFHANDLE,请使用 SECKFMOpen。您基本上需要拥有邮件数据库所属用户的 id 文件和密码。

    除非它是当前用户 ID,否则您可以传递 NULL(即 0 ByVal)。

    一个好的起点是编写 C 代码并解密邮件;然后你可以弄清楚如何将它移动到 LS。

    如果您要使用 rethCipherAttachments,您将通过 ref 传递它。

    【讨论】:

    • 请注意:您必须将每个邮件文件的 id 文件放在可访问的位置 - 使用已知密码。这几乎会自动产生安全风险。如果您使用 ID Vault 功能,可能有一种安全的方法可以安全地执行此操作(只要您删除临时文件!),但我上次查看没有发布的 API 用于从保险库中提取 ID .
    • 谢谢诺蒙德和理查德。我可以从保险库中提取 ID 文件,但密码是要在一批邮件用户上运行的代理的关键。我认为我们只需要扫描用户的主要和存档电子邮件数据库,并向他们发送发现的任何加密消息的报告,以便他们自己处理(我们可以在报告中包含一个使用 API 功能的解密按钮)。
    • 一个问题是我们的(数百个)iNotes 用户,他们看不到那个按钮;管理员可能必须从保管库中获取每个相关的用户 ID,然后在邮件数据库中运行解密过程(尽管我不确定识别 iNotes 用户是否会那么简单)。我们的邮件正在迁移到 Exchange,因此需要首先解密加密邮件,否则将无法再访问它们。除非有人有其他想法……
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    相关资源
    最近更新 更多