setasign\SetaPDF2\Core\SecHandler

AbstractHandler Abstract security handler class for handling PDF encryption features.

File: /SetaPDF v2/Core/SecHandler/AbstractHandler.php
Old class name (alias): \SetaPDF_Core_SecHandler_AbstractHandler

Class hierarchy

Summary

Properties

$_auth

protected bool AbstractHandler::$_auth = false

Defines if this security handler is authenticated

$_authMode

protected ?string AbstractHandler::$_authMode

The auth mode

Says who is authenticated: user or owner

$_document

The document to which this security handler is attached

$_encryptMetadata

protected bool AbstractHandler::$_encryptMetadata = true

Metadata are encrypted or not

$_encryptionDictionary

$_encryptionKey

protected string AbstractHandler::$_encryptionKey

The encryption key

$_keyLength

protected int AbstractHandler::$_keyLength = 5

The key length in bytes

This value is still needed if crypt filters are in use:

  • It is needed to compute the encryption key.
  • It is needed to compute the O value It is NOT documented which key length should be used for this things if a crypt filter is in use.

$_streamAlgorithm

protected array AbstractHandler::$_streamAlgorithm = array(...)

The algorithm key length to be used for en/decrypting stream

$_stringAlgorithm

protected array AbstractHandler::$_stringAlgorithm = array(...)

The algorithm key length to be used for en/decrypting strings


Methods

__construct()

The constructor.

Parameters
$document : \SetaPDF_Core_Document
 
$encryptionDictionary : \SetaPDF_Core_Type_Dictionary
 
Exceptions

Throws Exception

Throws \setasign\SetaPDF2\Core\Type\Exception

_computeHashR6()

protected AbstractHandler::_computeHashR6 (
string $data,
string $inputPassword,
string $userKey = ''
): string

Computes a hash for security handler revision 6.

Parameters
$data : string
 
$inputPassword : string
 
$userKey : string
 

_crypt()

protected AbstractHandler::_crypt (
string $data,
array $algorithm,
\SetaPDF_Core_Type_IndirectObject $param = null,
bool $encrypt = true
): string

Encrypts or decrypts data using Algorithm 1 of the PDF specification.

Parameters
$data : string
 
$algorithm : array
 
$param : \SetaPDF_Core_Type_IndirectObject
 
$encrypt : bool
 
Exceptions

Throws Exception

decryptStream()

public AbstractHandler::decryptStream (
string $data,
\SetaPDF_Core_Type_IndirectObject $param = null
): string

Decrypt a stream.

Parameters
$data : string
 
$param : \SetaPDF_Core_Type_IndirectObject
 
Exceptions

Throws Exception

decryptString()

public AbstractHandler::decryptString (
string $data,
\SetaPDF_Core_Type_IndirectObject $param = null
): string

Decrypt a string.

Parameters
$data : string
 
$param : \SetaPDF_Core_Type_IndirectObject
 
Exceptions

Throws Exception

encryptStream()

public AbstractHandler::encryptStream (
string $data,
\SetaPDF_Core_Type_IndirectObject $param = null
): string

Encrypt a stream.

Parameters
$data : string
 
$param : \SetaPDF_Core_Type_IndirectObject
 
Exceptions

Throws Exception

encryptString()

public AbstractHandler::encryptString (
string $data,
\SetaPDF_Core_Type_IndirectObject $param = null
): string

Encrypt a string.

Parameters
$data : string
 
$param : \SetaPDF_Core_Type_IndirectObject
 
Exceptions

Throws Exception

getAuthMode()

public AbstractHandler::getAuthMode (
void
): string

Get the auth method.

Return Values

"user", "owner" or an empty string if not authenticated.

getDocument()

Returns the document instance of this security handler.

getEncryptMetadata()

public AbstractHandler::getEncryptMetadata (
void
): bool

Returns true if the metadata are/will be encrypted.

getEncryptionDictionary()

Gets the encryption dictionary.

getEncryptionKey()

public AbstractHandler::getEncryptionKey (
void
): string

Get the encryption key if known/authenticated.

Exceptions

Throws Exception

getPdfVersion()

public AbstractHandler::getPdfVersion (
void
): string

Get the PDF version, which is needed for the currently used encryption algorithm.

Exceptions

Throws \setasign\SetaPDF2\NotImplementedException

getPermission()

public AbstractHandler::getPermission (
int $permission
): bool

Queries if a permission is granted.

Parameters
$permission : int
 

getPermissions()

abstract public AbstractHandler::getPermissions (
void
): int

Returns current permissions.

See

getStreamAlgorithm()

public AbstractHandler::getStreamAlgorithm (
void
): array

Get the stream algorithm data.

getStringAlgorithm()

public AbstractHandler::getStringAlgorithm (
void
): array

Get the string algorithm data.

isAuth()

public AbstractHandler::isAuth (
void
): bool

Queries if the security handler is authenticated.

If not it tries by calling auth() without a password.