Laden...

C# Truecrypt API für .NET?

Erstellt von vreden123 vor 10 Jahren Letzter Beitrag vor 10 Jahren 5.658 Views
V
vreden123 Themenstarter:in
31 Beiträge seit 2012
vor 10 Jahren
C# Truecrypt API für .NET?

Hallo,

ich möchte mit meinem C# Programm Dateien verschlüssen/entschlüssen.

Das Ver- und Entschlüssen soll wie in Truecrypt in einem Virtuellen Laufwerk passieren

Jetzt dachte ich mir, gibt es eine Truecrypt API? Bzw. .dll?

Also das ich diese .dll einfach einbindungen kann wie z.B SQLite und dann Container erstellen und mounten kann.

Gruß
vreden123

16.835 Beiträge seit 2008
vor 10 Jahren

Nö. TrueCrypt ist in C/C++ geschrieben und bietet keine direkte Bibliothek für C#.
Einzige Möglichkeit: Commandline.

V
vreden123 Themenstarter:in
31 Beiträge seit 2012
vor 10 Jahren

Commandline?
Also das ich die Truecrypt.exe dann mit Parameter anspreche?

Aber dann muss auf jedem PC der das Programm ausführt TC installiert sein?

H
114 Beiträge seit 2007
vor 10 Jahren

Hallo vreden123,

wenn es lizenzrechtlich aus Sicht von Truecrpyt keine Probleme gibt, dann könntest du auch die Portable-Version von Truecrypt deiner Anwendung beifügen, um die Installation zu vermeiden. Nur so als Idee..

Grüße, HiGHteK

175 Beiträge seit 2010
vor 10 Jahren

Moin!

Soooooo einfach ist das nicht.... Wirf doch mal einen Blick auf Dokan - dafür gibt es sogar .Net Bindings.

Ein Beispiel für eine Benutzung von Dokan findest Du z. B. FUSE(file system in userspace) for Microsoft-SQL using C#

Bye, Michael

Debuggers don't remove Bugs, they only show them in Slow-Motion.

V
vreden123 Themenstarter:in
31 Beiträge seit 2012
vor 10 Jahren

Danke für deine Antwort.

Wenn ich das richtiog verstanden habe, kann ich mit Dokan "nur" Laufwerke/Verzeichnisse similieren.

Gibt es den noch etwas anderes mit dem ich auch verschlüsseln kann?

Mit TC kann ich über die Konsole keine Container erstellen 😦

16.835 Beiträge seit 2008
vor 10 Jahren

Mit TC kann ich über die Konsole keine Container erstellen 😦

Parameter /volume bzw. /v reicht Dir nicht?

V
vreden123 Themenstarter:in
31 Beiträge seit 2012
vor 10 Jahren

Ne leider nicht.

Ich muss zwingend vorher einen Container erstellen.

Das Programm soll nachher nicht nur auf meinem PC laufen... 😃

16.835 Beiträge seit 2008
vor 10 Jahren

Vorher? Keine Ahnung was Du meinst.
Du hast gerade von Container gesprochen (also *.tc-Files) und das geht mit /v problemlos.

V
vreden123 Themenstarter:in
31 Beiträge seit 2012
vor 10 Jahren

Oder ich habe etwas nicht verstanden 😃

Wie kann ich mit /v eine .tc Datei (Container) erstellen?
/v war doch zum Mounten? Oder ?

Mount a volume called myvolume.tc using the password MyPassword, as the drive letter X. TrueCrypt will open an explorer window and beep; mounting will be automatic:

truecrypt /v myvolume.tc /lx /a /p MyPassword /e /b

16.835 Beiträge seit 2008
vor 10 Jahren

Mh ja stimmt. Für Windows gibts noch keine Commandline-Lösung (nur Linux und Mac).

V
vreden123 Themenstarter:in
31 Beiträge seit 2012
vor 10 Jahren

Genau mit Linux geht es ohne Probleme 😃
Aber in meinem Fall ist es Windows...

Kennt jemand vieleicht noch eine andere möglichkeit wie ich einen verschlüsselten Container erstellen kann, Dateien hinzufügen/öffne und das per Comandozeile oder dll?

175 Beiträge seit 2010
vor 10 Jahren

Moin!

Danke für deine Antwort.
Wenn ich das richtiog verstanden habe, kann ich mit Dokan "nur" Laufwerke/Verzeichnisse similieren.

ja, sozusagen.... ich war der Meinung das ist das was Du sucht - denn Du hast ja in Deinem Ursprungspost geschrieben:

Das Ver- und Entschlüssen soll wie in Truecrypt in einem Virtuellen Laufwerk passieren

also demnach in einem virtuellen (--> simulierten) Laufwerk.

Gibt es den noch etwas anderes mit dem ich auch verschlüsseln kann?
Mit TC kann ich über die Konsole keine Container erstellen 😦

Also Du später geschrieben hattest

Aber dann muss auf jedem PC der das Programm ausführt TC installiert sein?

Hatte ich das so interpretiert, also ob Truecrypt (oder gar eine andere Software) nicht als Voraussetzung in Frage kommt....

Ich muss gestehen dass ich so langsam auch nicht mehr verstehe was Du eigentlich willst...

Willst Du ein emuliertes/simuliertes Laufwerk? Dann nimm Dokan. Dass Du dabei auch ein Dateisystem emulieren musst ist dann halt der saure Apfel in den Du beissen musst.... Ein netter/simpler Einstieg ist ggf. ein auf SQLite basiertes Dateisystem. Es gibt natürlich auch Alternativen zu Dokan, aber ich denke dann muss Du schon auf C / C++ runter und hast keine C# Bindings (kannst ja mal einen Blick in den Source von WinCDEmu werfen um mal zu sehen was da für Klimmzüge gemacht werden müssen...

Willst Du nur einen Container der verschlüsselte Dateien enthält? Dann pack doch die verschlüsselten Dateien in eine ZIP-Datei und gut ist.... Damit kann jedes Windows umgehen....

Bye,
MK

Debuggers don't remove Bugs, they only show them in Slow-Motion.

V
vreden123 Themenstarter:in
31 Beiträge seit 2012
vor 10 Jahren

Danke für deine Ausführliche Antwort.

Mit dem Programm sollen sensible Daten abgespeichert/Syncronisiert werden.

Wenn das Programm zum ersten mal gestartet wird, müssen folgende Punkte abgearbeitet werden:

  • Verschlüsselten Container erstellen
  • Container Mounten
  • Dateien syncronisieren

Wird das Programm beim nächsten WindowsStart mitgeladen muss nur noch der Container gemountet und die gemounteten Dateien syncronisiert werden.

Ich hoffe das macht das Problem ein wenig verständlicher 😃

Eine andere Möglichkeit wäre das ich einen verschlüsselten .zip Container erstelle und den dann mit Dokan mounte? Geht das? Nur so eine Idee...

175 Beiträge seit 2010
vor 10 Jahren

Wird das Programm beim nächsten WindowsStart mitgeladen muss nur noch der Container gemountet und die gemounteten Dateien syncronisiert werden.

Mir fehlt momentan noch etwas das Verständnis dafür, warum der Container gemounted werden muss. Wenn es nur darum geht Daten innerhalb eines Containers zu synchronisieren - dafür ist doch kein Mount (--> Laufwerk) erforderlich. Das kann man auch innerhalb eines ZIP-Archives machen ohne dafür extra ein Laufwerk zur Verfügung zu haben....

Eine andere Möglichkeit wäre das ich einen verschlüsselten .zip Container erstelle und den dann mit Dokan mounte? Geht das? Nur so eine Idee...

Klar. Ich habe ehrlich gesagt das Gefühl, dass Du dich nicht die Bohne mit Dokan auseinandergesetzt hast....

Du musst nur das Interface DokanOperations implementieren und das war es dann. In dem Interface gibt es dann Methoden wie z. B. CreateFile, OpenDirectory, CreateDirectory, CloseFile, ReadFile, WriteFile usw usw usw.

Ist also eigentlich relativ trivial, wenn man dahinter dann einen ZIP-Container hat.

Ich pers. würde aber eher zu einem SQLite basierten Backend raten (oder was anderes), da (so meine ich) beim Löschen innerhalb eines ZIP-Archives die bisherige Datei im ZIP-Container eben nicht gelöscht wird - der Eintrag wird im ZIP-Directory einfach entfernt (oder als "gelöscht" markiert - weiss ich gerade nicht). Ähnlich verhält es sich beim Ändern von Dateien. Ich meine, der "alte" Stand bleibt im ZIP-Container bestehen und der "neue" Stand der Datei wird hinten angehängt. Sprich, eine Log-Architektur. Das wird dann auf Dauer etwas voluminös....

Bye,
Knick

Debuggers don't remove Bugs, they only show them in Slow-Motion.

16.835 Beiträge seit 2008
vor 10 Jahren

da (so meine ich) beim Löschen innerhalb eines ZIP-Archives die bisherige Datei im ZIP-Container eben nicht gelöscht wird - der Eintrag wird im ZIP-Directory einfach entfernt (oder als "gelöscht" markiert

Das bezieht sich dann wohl auf das Dokan-Verhalten; denn bei "normalen" Zip-Dateien ist das Verhalten nicht der Fall.

175 Beiträge seit 2010
vor 10 Jahren

Es gibt kein "Dokan-Verhalten", weil Dokan nix mit ZIPs anfangen kann - es sei denn man implementiert es.

Aber ja, Du hast Recht - meine Erinnerung hat mich getrübt. Die Einräge im ZIP werden in der Tat physikalisch entfernt - das geht dann natürlich auf Kosten der Performance, denn die "neue" ZIP-Datei wird (logisch) komplett neu geschrieben....

Im Fall von Dokan könnte man sich natürlich ein "logisch gelöscht" Verhalten überlegen (z. B. in dem man den gelöschten Dateien im ZIP-Directory einen speziellen Namen gibt) - und erst wenn n Dateien (oder n Bytes) als gelöscht makriert sind einen neuen ZIP-Container erstellen (sozusagen, die ZIP-Datei "reorganisieren"). Hier sind dem kreativen Coder keine Grenzen gesetzt 😉

Bye,
MK

Debuggers don't remove Bugs, they only show them in Slow-Motion.