diff options
author | Björn Schießle <schiessle@owncloud.com> | 2013-06-19 15:52:33 +0200 |
---|---|---|
committer | Björn Schießle <schiessle@owncloud.com> | 2013-06-19 15:52:33 +0200 |
commit | 83d98e2d8b52b8ea975d39ab28bd9b1e14a2a56f (patch) | |
tree | 6b6faf2b21400ebd0c9ed5fca0d1475998b71a88 | |
parent | 8406d3f7b1a8e33c4fbd378660f1510a1d44346d (diff) | |
download | nextcloud-server-83d98e2d8b52b8ea975d39ab28bd9b1e14a2a56f.tar.gz nextcloud-server-83d98e2d8b52b8ea975d39ab28bd9b1e14a2a56f.zip |
add some more error messages, in case something went wrong
-rwxr-xr-x | apps/files_encryption/lib/crypt.php | 33 | ||||
-rw-r--r-- | apps/files_encryption/lib/util.php | 19 |
2 files changed, 28 insertions, 24 deletions
diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php index 945b342a316..4322bbf1af2 100755 --- a/apps/files_encryption/lib/crypt.php +++ b/apps/files_encryption/lib/crypt.php @@ -53,19 +53,26 @@ class Crypt { $res = openssl_pkey_new(array('private_key_bits' => 4096));
- // Get private key
- openssl_pkey_export($res, $privateKey);
+ if ($res === false) {
+ \OCP\Util::writeLog('Encryption library', 'couldn\'t generate users key-pair for ' . \OCP\User::getUser(), \OCP\Util::ERROR);
+ $result = false;
+ } else {
+
+ // Get private key
+ openssl_pkey_export($res, $privateKey);
- // Get public key
- $publicKey = openssl_pkey_get_details($res);
+ // Get public key
+ $publicKey = openssl_pkey_get_details($res);
- $publicKey = $publicKey['key'];
+ $publicKey = $publicKey['key'];
- return (array(
- 'publicKey' => $publicKey,
- 'privateKey' => $privateKey
- ));
+ $result = array(
+ 'publicKey' => $publicKey,
+ 'privateKey' => $privateKey
+ );
+ }
+ return $result;
}
/**
@@ -287,28 +294,22 @@ class Crypt { public static function symmetricEncryptFileContent($plainContent, $passphrase = '') {
if (!$plainContent) {
-
+ \OCP\Util::writeLog('Encryption library', 'symmetrically encryption failed, no content given.', \OCP\Util::ERROR);
return false;
-
}
$iv = self::generateIv();
if ($encryptedContent = self::encrypt($plainContent, $iv, $passphrase)) {
-
// Combine content to encrypt with IV identifier and actual IV
$catfile = self::concatIv($encryptedContent, $iv);
-
$padded = self::addPadding($catfile);
return $padded;
} else {
-
\OCP\Util::writeLog('Encryption library', 'Encryption (symmetric) of keyfile content failed', \OCP\Util::ERROR);
-
return false;
-
}
}
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php index b4b3923a799..e8e53859bd8 100644 --- a/apps/files_encryption/lib/util.php +++ b/apps/files_encryption/lib/util.php @@ -228,18 +228,21 @@ class Util { // Generate keypair $keypair = Crypt::createKeypair(); - \OC_FileProxy::$enabled = false; + if ($keypair) { - // Save public key - $this->view->file_put_contents($this->publicKeyPath, $keypair['publicKey']); + \OC_FileProxy::$enabled = false; - // Encrypt private key with user pwd as passphrase - $encryptedPrivateKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], $passphrase); + // Encrypt private key with user pwd as passphrase + $encryptedPrivateKey = Crypt::symmetricEncryptFileContent($keypair['privateKey'], $passphrase); - // Save private key - $this->view->file_put_contents($this->privateKeyPath, $encryptedPrivateKey); + // Save key-pair + if ($encryptedPrivateKey) { + $this->view->file_put_contents($this->privateKeyPath, $encryptedPrivateKey); + $this->view->file_put_contents($this->publicKeyPath, $keypair['publicKey']); + } - \OC_FileProxy::$enabled = true; + \OC_FileProxy::$enabled = true; + } } else { // check if public-key exists but private-key is missing |