Nextcloud PHP API (stable19)

IEncryptionModule

Interface IEncryptionModule

Tags
since
8.1.0

Table of Contents

begin()  : mixed
start receiving chunks from a file. This is the place where you can perform some initial step before starting encrypting/decrypting the chunks
decrypt()  : mixed
decrypt data
encrypt()  : mixed
encrypt data
encryptAll()  : mixed
Initial encryption of all files
end()  : string
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.
getDisplayName()  : string
In comparison to getKey() this function returns a human readable (maybe translated) name
getId()  : string
getUnencryptedBlockSize()  : int
get size of the unencrypted payload per block.
isReadable()  : bool
check if the encryption module is able to read the file, e.g. if all encryption keys exists
isReadyForUser()  : bool
Check if the module is ready to be used by that specific user.
needDetailedAccessList()  : bool
Does the encryption module needs a detailed list of users with access to the file? For example if the encryption module uses per-user encryption keys and needs to know the users with access to the file to encrypt/decrypt it.
prepareDecryptAll()  : bool
prepare encryption module to decrypt all files
shouldEncrypt()  : bool
should the file be encrypted or not
update()  : bool
update encrypted file, e.g. give additional users access to the file

Methods

begin()

start receiving chunks from a file. This is the place where you can perform some initial step before starting encrypting/decrypting the chunks

public begin(string $path, string $user, string $mode, array $header, array $accessList) : mixed
Parameters
$path : string

to the file

$user : string

who read/write the file (null for public access)

$mode : string

php stream open mode

$header : array

contains the header data read from the file

$accessList : array

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

Tags
since
8.1.0
Return values
mixed

decrypt()

decrypt data

public decrypt(string $data, string $position) : mixed
Parameters
$data : string

you want to decrypt

$position : string

position of the block we want to decrypt

Tags
since
8.1.0
since
9.0.0

parameter $position added

Return values
mixed

decrypted data

encrypt()

encrypt data

public encrypt(string $data, string $position) : mixed
Parameters
$data : string

you want to encrypt

$position : string

position of the block we want to encrypt (starts with '0')

Tags
since
8.1.0
since
9.0.0

parameter $position added

Return values
mixed

encrypted data

encryptAll()

Initial encryption of all files

public encryptAll(InputInterface $input, OutputInterface $output) : mixed
Parameters
$input : InputInterface
$output : OutputInterface

write some status information to the terminal during encryption

Tags
since
8.2.0
Return values
mixed

end()

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.

public end(string $path, string $position) : string
Parameters
$path : string

to the file

$position : string

id of the last block (looks like "<Number>end")

Tags
since
8.1.0
since
9.0.0

parameter $position added

Return values
string

remained data which should be written to the file in case of a write operation

getDisplayName()

In comparison to getKey() this function returns a human readable (maybe translated) name

public getDisplayName() : string
Tags
since
8.1.0
Return values
string

getId()

public getId() : string
Tags
since
8.1.0
Return values
string

defining the technical unique id

getUnencryptedBlockSize()

get size of the unencrypted payload per block.

public getUnencryptedBlockSize([bool $signed = false ]) : int

ownCloud read/write files with a block size of 8192 byte

Parameters
$signed : bool = false
Tags
since
8.1.0

optional parameter $signed was added in 9.0.0

Return values
int

isReadable()

check if the encryption module is able to read the file, e.g. if all encryption keys exists

public isReadable(string $path, string $uid) : bool
Parameters
$path : string
$uid : string

user for whom we want to check if he can read the file

Tags
since
8.1.0
Return values
bool

isReadyForUser()

Check if the module is ready to be used by that specific user.

public isReadyForUser(string $user) : bool

In case a module is not ready - because e.g. key pairs have not been generated upon login this method can return false before any operation starts and might cause issues during operations.

Parameters
$user : string
Tags
since
9.1.0
Return values
bool

needDetailedAccessList()

Does the encryption module needs a detailed list of users with access to the file? For example if the encryption module uses per-user encryption keys and needs to know the users with access to the file to encrypt/decrypt it.

public needDetailedAccessList() : bool
Tags
since
13.0.0
Return values
bool

prepareDecryptAll()

prepare encryption module to decrypt all files

public prepareDecryptAll(InputInterface $input, OutputInterface $output[,  $user = '' ]) : bool
Parameters
$input : InputInterface
$output : OutputInterface

write some status information to the terminal during encryption

$user : = ''

for which the files should be decrypted, default = all users

Tags
since
8.2.0
Return values
bool

return false on failure or if it isn't supported by the module

shouldEncrypt()

should the file be encrypted or not

public shouldEncrypt(string $path) : bool
Parameters
$path : string
Tags
since
8.1.0
Return values
bool

update()

update encrypted file, e.g. give additional users access to the file

public update(string $path, string $uid, array $accessList) : bool
Parameters
$path : string

path to the file which should be updated

$uid : string

of the user who performs the operation

$accessList : array

who has access to the file contains the key 'users' and 'public'

Tags
since
8.1.0
Return values
bool

Search results