diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-04-30 11:51:51 +0300 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-04-30 11:51:51 +0300 |
commit | 5dbb2af0c39523b6f3d5120bb8832f0a4e7e11a6 (patch) | |
tree | 17338add0ded4b020b1d918237513d4ad61179e0 /encryption_dummy | |
parent | f6eee08a191a8af6a232ebb49f368bdc69e8989b (diff) |
Moving encryption_dummy to the apps repo - fixes #15950
Diffstat (limited to 'encryption_dummy')
-rw-r--r-- | encryption_dummy/appinfo/app.php | 8 | ||||
-rw-r--r-- | encryption_dummy/appinfo/info.xml | 20 | ||||
-rw-r--r-- | encryption_dummy/appinfo/version | 1 | ||||
-rw-r--r-- | encryption_dummy/img/app.svg | 51 | ||||
-rw-r--r-- | encryption_dummy/lib/dummymodule.php | 138 |
5 files changed, 218 insertions, 0 deletions
diff --git a/encryption_dummy/appinfo/app.php b/encryption_dummy/appinfo/app.php new file mode 100644 index 000000000..51a535a98 --- /dev/null +++ b/encryption_dummy/appinfo/app.php @@ -0,0 +1,8 @@ +<?php + +$manager = \OC::$server->getEncryptionManager(); +$module = new \OCA\Encryption_Dummy\DummyModule(); +$manager->registerEncryptionModule('OC_DUMMY_MODULE', 'Dummy Encryption Module', function() use ($module) { + return $module; +}); + diff --git a/encryption_dummy/appinfo/info.xml b/encryption_dummy/appinfo/info.xml new file mode 100644 index 000000000..f62f6fb5d --- /dev/null +++ b/encryption_dummy/appinfo/info.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<info> + <id>encryption_dummy</id> + <name>dummy encryption module</name> + <description> + This module does nothing, it is used for testing purpose only + </description> + <licence>AGPL</licence> + <author>Bjoern Schiessle</author> + <requiremin>8</requiremin> + <shipped>true</shipped> + <rememberlogin>false</rememberlogin> + <types> + <filesystem/> + </types> + <ocsid>166047</ocsid> + <dependencies> + <lib>openssl</lib> + </dependencies> +</info> diff --git a/encryption_dummy/appinfo/version b/encryption_dummy/appinfo/version new file mode 100644 index 000000000..8acdd82b7 --- /dev/null +++ b/encryption_dummy/appinfo/version @@ -0,0 +1 @@ +0.0.1 diff --git a/encryption_dummy/img/app.svg b/encryption_dummy/img/app.svg new file mode 100644 index 000000000..1157c71c6 --- /dev/null +++ b/encryption_dummy/img/app.svg @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xml:space="preserve" + height="16px" + width="16px" + version="1.1" + y="0px" + x="0px" + viewBox="0 0 71 100" + id="svg2" + inkscape:version="0.48.5 r10040" + sodipodi:docname="app.svg"><metadata + id="metadata10"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs + id="defs8" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1014" + id="namedview6" + showgrid="false" + inkscape:zoom="14.75" + inkscape:cx="-21.423729" + inkscape:cy="8" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" /><path + d="m8 1c-2.2091 0-4 1.7909-4 4v2h-1v7h10v-7h-1v-2c0-2.2091-1.791-4-4-4zm0 2c1.1046 0 2 0.89543 2 2v2h-4v-2c0-1.1046 0.8954-2 2-2z" + transform="matrix(6.25,0,0,6.25,-14.5,0)" + id="path4" + style="fill:#ffffff;fill-opacity:1" /><path + style="fill:none" + d="m 3.0644068,10.508475 0,-3.4576275 0.4655371,0 0.465537,0 0.049537,-1.2033899 C 4.1094633,4.2818838 4.1578923,4.0112428 4.4962182,3.3259708 4.7075644,2.8978935 4.9002217,2.6327599 5.2605792,2.2740624 6.7855365,0.75613022 8.9920507,0.69157582 10.623172,2.1171729 c 0.384104,0.3357058 0.882069,1.0763131 1.054177,1.5678422 0.147302,0.4206856 0.262873,1.6086448 0.266436,2.7387137 l 0.002,0.6271187 0.508474,0 0.508475,0 0,3.4576275 0,3.457627 -4.9491527,0 -4.9491525,0 0,-3.457627 z M 10.065882,6.3559322 c -0.02012,-0.3822034 -0.04774,-0.7076271 -0.0614,-0.7231639 -0.013653,-0.015537 -0.024824,0.281921 -0.024824,0.661017 l 0,0.6892655 -1.9630041,0 -1.963004,0 -0.023717,-0.4576271 -0.023717,-0.4576271 -0.013279,0.4915254 -0.013279,0.4915255 2.0613978,0 2.0613972,0 -0.03657,-0.6949153 0,0 z M 6.5396275,3.7118644 C 6.648082,3.5720339 6.7197092,3.4576271 6.6987988,3.4576271 c -0.062956,0 -0.5835446,0.6841947 -0.5835446,0.7669359 0,0.042237 0.051116,0.00136 0.1135916,-0.090834 0.062475,-0.092195 0.2023271,-0.2820343 0.3107817,-0.4218648 z M 9.7498983,4.0169492 C 9.6961899,3.9144068 9.5352369,3.723769 9.392225,3.5933098 L 9.1322034,3.356111 9.3784249,3.6272081 c 0.1354218,0.1491033 0.2814105,0.3397411 0.3244192,0.4236394 0.043009,0.083898 0.093162,0.1525423 0.1114515,0.1525423 0.01829,0 -0.010689,-0.083898 -0.064397,-0.1864406 l 0,0 z M 7.3032896,3.1315382 C 7.2704731,3.0987216 6.877102,3.3089557 6.8306315,3.3841466 6.8091904,3.4188389 6.911918,3.3813452 7.0589148,3.300827 7.2059117,3.2203088 7.3158803,3.1441289 7.3032896,3.1315382 l 0,0 z" + id="path3007" + inkscape:connector-curvature="0" + transform="matrix(6.25,0,0,6.25,-14.5,0)" /></svg>
\ No newline at end of file diff --git a/encryption_dummy/lib/dummymodule.php b/encryption_dummy/lib/dummymodule.php new file mode 100644 index 000000000..141edfb58 --- /dev/null +++ b/encryption_dummy/lib/dummymodule.php @@ -0,0 +1,138 @@ +<?php + +/** + * ownCloud + * + * @copyright (C) 2015 ownCloud, Inc. + * + * @author Bjoern Schiessle <schiessle@owncloud.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +namespace OCA\Encryption_Dummy; + +use OCP\Encryption\IEncryptionModule; + +class DummyModule implements IEncryptionModule { + + /** @var boolean */ + protected $isWriteOperation; + + /** + * @return string defining the technical unique id + */ + public function getId() { + return "OC_DUMMY_MODULE"; + } + + /** + * In comparison to getKey() this function returns a human readable (maybe translated) name + * + * @return string + */ + public function getDisplayName() { + return "Dummy Encryption Module"; + } + + /** + * start receiving chunks from a file. This is the place where you can + * perform some initial step before starting encrypting/decrypting the + * chunks + * + * @param string $path to the file + * @param string $user who read/write the file (null for public access) + * @param string $mode php stream open mode + * @param array $header contains the header data read from the file + * @param array $accessList who has access to the file contains the key 'users' and 'public' + * + * @return array $header contain data as key-value pairs which should be + * written to the header, in case of a write operation + * or if no additional data is needed return a empty array + */ + public function begin($path, $user, $mode, array $header, array $accessList) { + return array(); + } + + /** + * last chunk received. This is the place where you can perform some final + * operation and return some remaining data if something is left in your + * buffer. + * + * @param string $path to the file + * @return string remained data which should be written to the file in case + * of a write operation + */ + public function end($path) { + + if ($this->isWriteOperation) { + $storage = \OC::$server->getEncryptionKeyStorage(); + $storage->setFileKey($path, 'fileKey', 'foo', $this->getId()); + } + return ''; + } + + /** + * encrypt data + * + * @param string $data you want to encrypt + * @return mixed encrypted data + */ + public function encrypt($data) { + $this->isWriteOperation = true; + return $data; + } + + /** + * decrypt data + * + * @param string $data you want to decrypt + * @param string $user decrypt as user (null for public access) + * @return mixed decrypted data + */ + public function decrypt($data) { + $this->isWriteOperation=false; + return $data; + } + + /** + * should the file be encrypted or not + * + * @param string $path + * @return boolean + */ + public function shouldEncrypt($path) { + if (strpos($path, '/'. \OCP\User::getUser() . '/files/') === 0) { + return true; + } + + return false; + } + + public function getUnencryptedBlockSize() { + return 6126; + } + + /** + * update encrypted file, e.g. give additional users access to the file + * + * @param string $path path to the file which should be updated + * @param string $uid of the user who performs the operation + * @param array $accessList who has access to the file contains the key 'users' and 'public' + * @return boolean + */ + public function update($path, $uid, array $accessList) { + return true; + } +} |