Hallo!
Ich hänge gerade bei folgender Fragestellung: ein Teil eines Dokumentes (RT-Feld) soll vor dem Zugriff von Dritten geschützt werden. Dies betrifft vor allem Anhänge mit teils sensiblen Daten.
Das Verschlüsseln der Dokumente ist soweit kein Thema und schon eingebaut. Problematisch ist es für mich nun, wenn jemand das RT-Feld ggf. wieder entschlüsseln möchte...
Was habe ich bislang:
- ein Form mit zwei RT-Feldern zum encrypten (eines hidden, sonst funzt das nicht, und eines sichtbar zum bearbeiten)
- einen Agent-Aufruf (mit NoteID des aktuellen Source.document) aus dem QueryClose
- den Agent der eine Sub aus einer ScribtLib aufruft (Parameter: die NoteID)
- die Sub, welche die Ver- bzw. Entschlüsselung vornimmt.
Die Sub sieht dann wie folgt aus:
Sub encryptStuff (strID As String)
Dim session As NotesSession
Dim dbThis As NotesDatabase
Dim docThis As NotesDocument
Dim itThis As NotesItem
Set session = New NotesSession
Set dbThis = session.currentDatabase
Set docThis = dbThis.getDocumentById(strID)
If docThis.Verschluesseln(0)="1" Then
If docThis.VerschluesselnFuer(0)<>"" Then
Set itThis = docThis.getFirstItem("EinzelmassnahmeErgebnisse")
itThis.IsEncrypted = True
If docThis.HasItem("PublicEncryptionKeys") Then
Call docThis.ReplaceItemValue("PublicEncryptionKeys", docThis.VerschluesselnFuer)
Call docThis.Save(True,False)
Call docThis.Encrypt
Call docThis.Save(True,False)
Else
Set itThis = New NotesItem(docThis,"PublicEncryptionKeys",Names)
Call docThis.Save(True,False)
Call docThis.ReplaceItemValue("PublicEncryptionKeys", docThis.VerschluesselnFuer)
Call docThis.Save(True,False)
Call docThis.Encrypt
Call docThis.Save(True,False)
End If
End If
Else
Set itThis = docThis.getFirstItem("EinzelmassnahmeErgebnisse")
itThis.IsEncrypted = False
Call docThis.save(True,False)
Call docThis.Encrypt
Call docThis.save(True,False)
If docThis.HasItem("PublicEncryptionKeys") Then
Call docThis.RemoveItem("PublicEncryptionKeys")
Call docThis.save(True,False)
End If
If docThis.HasItem("$Seal") Then
Call docThis.RemoveItem("$Seal")
Call docThis.save(True,False)
End If
If docThis.HasItem("$SealData") Then
Call docThis.RemoveItem("$SealData")
Call docThis.save(True,False)
End If
Call docThis.save(True,False)
End If
End Sub
Wie schon gesagt, das Verschlüsseln läuft gut. Das Entschlüsseln nur teilweise, soll heißen: Text wird angezeigt, die File-Attachements sind aber weiterhin verschlüsselt.
Meine letzte Idee (aber nicht meine Wunschvorstellung): detachen der Anhänge, löschen im RT-Feld und dann wieder attachen.
Leser-Felder für die Dokumente kommen nicht in Frage, da es ggf. Querverbindungen zwischen einzelnen Dokumenten geben kann.
Vielleicht hat ja jemand den zündenden Gedanken - mir kommt er gerade nicht.
Danke und Gruß,
René