Тема: Decrypt Notesdocument with LotusScript

Создан:Geselle Thinkalot 09/11/2008 12:39 PM
Модифицирован:Geselle Thinkalot 09/11/2008 12:43 PM
Папка:
06. Разработка Notes-приложений
Тип сообщения:
Нужна информация

Сообщение:

Hallo, коллеги.

Чтобы защитить финансовую информацию от всёумеющего администратора, клиент захотел иметь возможность её encrypt и decrypt on demand.

Написали простой код, который:
- запускается в Frontend
- помечает нужные поля как IsEncrypted
- устанавливает поля ключей SecretEncryptionKeys и PublicEncryptionKeys,
- вызывает метод notesdocument.encrypt
- сохраняет документ

Обратное (расшифровка) достигается удалением флага IsEncrypted с зашифрованных полей, удалением полей PublicEncryptionKeys, SecretEncryptionKeys ,$SealData, $Seal из документа и сохранением документа.

Все работает, если в соответствующих полях нету атачментов. Документ с атачментом шифруется без видимых проблем, но после расшифровки содержимое поля хоть и видно - картинка атачмента находится на своем месте, но открыть атачмент не получается. Сообщение на приатаченной к посту JPG: "Вы должны указать ключ для расшифровки, чтобы экспортировать этот атачмент. Сохранение файла в <путь> невозможно"


Была предпринята попытка расшифровать документ другим путём, а именно вызвать NotesDocument.encrypt предвалително убрав флаг isEncrypted с поля с атачментом. Все проходит без видимых ошибок, документ шифруется, пользователь_ чьего имени нету в поле PublicEncryptionKeys, видит при открытии документа предупреждение о том, что часть полей для него будут недоступны, содержимое поля с атачментом видно (иконка атачмента на своём месте), но при попытке открыть атачмент появляется тоже самое сообщение об ошибке.

Подскажите, плиз, как решить траблу.

P.S.

Способ декодирования

Dim ws As New NotesUIWorkspace
Dim uidoc As notesuidocument
Set uidoc=ws.EditDocument(True,pDoc)

Call uidoc.Document.RemoveItem("SecretEncryptionKeys")
Call uidoc.Document.RemoveItem("PublicEncryptionKeys")
uidoc.Save
uidoc.Close

работает безотказно, но есть свои недостатки


Иерархия документов данной дискуссии:
Decrypt Notesdocument with LotusScript (Geselle Thinkalot) (11.09.2008 12:39:25)
.... пИндусы предлагают поступить чуть по-другому: перешифровать документ, при этом зашифровать ненужное поле (иначе не сработает). Остальные поля, с которых снят флаг "шифровать", расшифруются. (+ ссылка) (Ivan Tsibanenko) (12.09.2008 12:55:00)
........ Спасибо! Взял код из статью - работает. Обидно :) я сам почти допер. Шифровал документ убрав флаг isEncrypted с RichText поля, но, видимо, другие поля типа $File оставались зашифрованными (-) (Geselle Thinkalot) (12.09.2008 15:38:28)
........ Круто! (Vlad Sh) (12.09.2008 13:35:37)
.... а с $FILE тоже сымаете флажки isEncrypted? (+) (Nick A Norkin; VIT Server B) (12.09.2008 13:48:02)
........ не снимали, но простое "снимание" этих флагов не помогло. В результате работает способ "перешифровки", предложенный Иваном (-) (Geselle Thinkalot) (12.09.2008 16:11:45)
.... Странно, что при расшифровке удаляете $SealData. В нём же хранятся в зашифрованном виде данные из шифруемых полей. [-] (Ilya A. Tugushev; InterTrust) (12.09.2008 13:20:12)
........ $SealData для закрытого Back-End (Vlad Sh) (12.09.2008 14:29:47)
............ похоже ключевой момент в том, что документ нужно открыть в UI, но если уж открывать, то я уже упоминал похожий способ (+) (Geselle Thinkalot) (12.09.2008 15:35:37)
................ В зашифрованных письмах полей SecretEncryptionKeys и PublicEncryptionKeys нету, поэтому это не сработает (-) (Vlad Sh) (12.09.2008 15:41:47)
.................... упс... сори, про почту, я пропустил (-) (Geselle Thinkalot) (12.09.2008 16:09:16)
.... важное замечание (Geselle Thinkalot) (11.09.2008 14:21:14)
........ случай легко репродуцируется на этой базе. Гляньте, плиз (+) (Geselle Thinkalot) (11.09.2008 14:51:26)


Разработчикам и администраторам: курсы, книги, сертификация
File Attachment Icon
meldung.JPG