diff options
| author | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-09-08 22:02:14 +0200 |
|---|---|---|
| committer | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-09-08 22:02:14 +0200 |
| commit | 7b4ee43df0b129517b348386af9ae50e1cebb789 (patch) | |
| tree | 5582a1f8ff26e082735025132f5a9451258991ce | |
| parent | 4a1df49ff88ed854d7e9863764ebdb2946527a09 (diff) | |
| download | src-7b4ee43df0b129517b348386af9ae50e1cebb789.tar.gz src-7b4ee43df0b129517b348386af9ae50e1cebb789.zip | |
Implementiere auch den Import von SchlÃsseln
Im Moment funktioniert nur der Im- bzw. Export von bzw. in PEM
Dateien.
| -rw-r--r-- | crypt/hybridcrypt.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/crypt/hybridcrypt.cpp b/crypt/hybridcrypt.cpp index 9c0e437..cdc7239 100644 --- a/crypt/hybridcrypt.cpp +++ b/crypt/hybridcrypt.cpp @@ -91,7 +91,32 @@ void HybridCrypt::createKeypair() void HybridCrypt::importUserKeypair(QString keyfileName, QString password) { + if (isCsprngSeeded()) + { + // Räume den alten Schlüssel vorher ab + freeKeyIfNotNull(); + + FILE *keyfile = fopen(keyfileName.toStdString().c_str(), "r"); + + // Datei existiert nicht + if (keyfile == NULL) + { + throw CryptException("Datei nicht gefunden: " + keyfileName.toStdString(), 1); + } + // Ließ den Schlüssel des Nutzers ein + userKeypair = PEM_read_PrivateKey(keyfile, NULL, NULL, + (void *) password.toStdString().c_str()); + + // Räume die Ressourcen auf + fclose(keyfile); + + // Wirf einen Fehler, falls OpenSSL ein Problem hatte + if (userKeypair == NULL) + { + throwOpenSslException(); + } + } } void HybridCrypt::exportUserKeypair(QString keyfileName, QString password) |
