Autor Thema: Verschlüsselung aufheben  (Gelesen 5669 mal)

Offline muenzpraeger

  • Junior Mitglied
  • **
  • Beiträge: 59
  • Geschlecht: Männlich
Verschlüsselung aufheben
« am: 30.09.08 - 14:45:07 »
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é
---------------------------------------------------------------

#moveOn

samWare

  • Gast
Re: Verschlüsselung aufheben
« Antwort #1 am: 26.01.10 - 13:53:56 »
Was machst denn du?

Der Code zum Verschlüsseln von Items sieht beispielsweise so aus:

Code
Sub Click(Source As Button) 'by Sam
	'set encryption_key	
	Const key = "hallo123"
	
	'declair vars
	Dim doc As NotesDocument
	Dim ws As New NotesUIWorkspace
	Dim it As NotesItem
	
	'get the marked document
	Set doc = ws.CurrentDatabase.Database.UnprocessedDocuments.GetFirstDocument
	
	'mark field 4 encryption
	Set it = doc.GetFirstItem("crypt_me")
	it.IsEncrypted = True
	
	'set doc_encrypt_key
	doc.EncryptionKeys = key
	
	'encrypt the document
	Call doc.Encrypt
	
	'doc save
	Call doc.Save(True, True)
	
	
End Sub

Der Code zum entschlüsseln sieht dann so aus:

Code
Sub Click(Source As Button) 'by Sam
	
	'declair vars
	Dim doc As NotesDocument
	Dim ws As New NotesUIWorkspace
	Dim it As NotesItem
	
	'get the marked document
	Set doc = ws.CurrentDatabase.Database.UnprocessedDocuments.GetFirstDocument
	
	'mark field 4 decryption
	Set it = doc.GetFirstItem("crypt_me")
	it.IsEncrypted = False
	
	'doc save
	Call doc.Save(True, True)
	
	
End Sub

Einfach nur billig. Have fun..

mfg Sam

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz