public function testDecryptPrivateKey() { // test successful decrypt $crypted = \OCA\Files_Encryption\Crypt::symmetricEncryptFileContent($this->genPrivateKey, 'hat'); $header = \OCA\Files_Encryption\Crypt::generateHeader(); $decrypted = \OCA\Files_Encryption\Crypt::decryptPrivateKey($header . $crypted, 'hat'); $this->assertEquals($this->genPrivateKey, $decrypted); //test private key decrypt with wrong password $wrongPasswd = \OCA\Files_Encryption\Crypt::decryptPrivateKey($crypted, 'hat2'); $this->assertEquals(false, $wrongPasswd); }
/** * write header at beginning of encrypted file * * @throws \OCA\Files_Encryption\Exception\EncryptionException */ private function writeHeader() { $header = Crypt::generateHeader(); if (strlen($header) > Crypt::BLOCKSIZE) { throw new EncryptionException('max header size exceeded', EncryptionException::ENCRYPTION_HEADER_TO_LARGE); } $paddedHeader = str_pad($header, Crypt::BLOCKSIZE, self::PADDING_CHAR, STR_PAD_RIGHT); fwrite($this->handle, $paddedHeader); $this->headerWritten = true; }
/** * @medium */ function testSetPrivateSystemKey() { $key = "dummy key"; $keyName = "myDummyKey"; $encHeader = \OCA\Files_Encryption\Crypt::generateHeader(); \OCA\Files_Encryption\Keymanager::setPrivateSystemKey($key, $keyName); $this->assertTrue($this->view->file_exists('/files_encryption/' . $keyName . '.privateKey')); $result = \OCA\Files_Encryption\Keymanager::getPrivateSystemKey($keyName); $this->assertSame($encHeader . $key, $result); // clean up $this->view->unlink('/files_encryption/' . $keyName . '.privateKey'); }