DAViCal
iSchedule Class Reference

Public Member Functions

 getTxt ()
 
 setTxt ( $dk)
 
 parseTxt ()
 
 validateKey ()
 
 getServer ()
 
 getCapabilities ( $domain=null)
 
 queryCapabilities ( $capability, $domain=null)
 
 signDKIM ( $headers, $body)
 
 sendRequest ( $address, $type, $data)
 
 parseDKIM ( $sig)
 
 parseURI ( $uri)
 
 verifySignature ()
 
 validateRequest ()
 

Public Attributes

 $parsed
 
 $selector
 
 $domain
 

Private Attributes

 $dk
 
 $DKSig
 
 $try_anyway = false
 
 $failed = false
 
 $failOnError = true
 
 $subdomainsOK = true
 
 $remote_public_key
 
 $required_headers
 
 $disallowed_headers
 

Detailed Description

Definition at line 25 of file iSchedule.php.

Member Function Documentation

◆ getCapabilities()

iSchedule::getCapabilities (   $domain = null)

get capabilities from remote server

Definition at line 261 of file iSchedule.php.

◆ getServer()

iSchedule::getServer ( )

finds a remote calendar server via DNS SRV records

Definition at line 193 of file iSchedule.php.

◆ getTxt()

iSchedule::getTxt ( )

gets the domainkey TXT record from DNS

Definition at line 78 of file iSchedule.php.

◆ parseDKIM()

iSchedule::parseDKIM (   $sig)

parses and validates DK header

Parameters
string$sigthe value of the DKIM-Signature header

Definition at line 511 of file iSchedule.php.

◆ parseTxt()

iSchedule::parseTxt ( )

parses DNS TXT record from domainkey lookup

Definition at line 122 of file iSchedule.php.

◆ parseURI()

iSchedule::parseURI (   $uri)

split up a mailto uri into domain and user components TODO handle other uri types (eg http)

Definition at line 589 of file iSchedule.php.

◆ queryCapabilities()

iSchedule::queryCapabilities (   $capability,
  $domain = null 
)

query capabilities retrieved from server

Definition at line 299 of file iSchedule.php.

◆ sendRequest()

iSchedule::sendRequest (   $address,
  $type,
  $data 
)

send request to remote server $address should be an email address or an array of email addresses all with the same domain $type should be in the format COMPONENT/METHOD eg (VFREEBUSY, VEVENT/REQUEST, VEVENT/REPLY, etc. ) $data is the vcalendar data N.B. must already be rendered into text format

Definition at line 408 of file iSchedule.php.

◆ setTxt()

iSchedule::setTxt (   $dk)

strictly for testing purposes

Definition at line 114 of file iSchedule.php.

◆ signDKIM()

iSchedule::signDKIM (   $headers,
  $body 
)

signs a POST body and headers

Parameters
string$bodythe body of the POST
array$headersthe headers to sign as passed to header ();

Definition at line 366 of file iSchedule.php.

◆ validateKey()

iSchedule::validateKey ( )

validates that domainkey is acceptable for the current request

Definition at line 144 of file iSchedule.php.

◆ validateRequest()

iSchedule::validateRequest ( )

checks that current request has a valid DKIM signature signed by a currently valid key from DNS

Definition at line 650 of file iSchedule.php.

◆ verifySignature()

iSchedule::verifySignature ( )

verifies parsed DKIM header is valid for current message with a signature from the public key in DNS TODO handle multiple headers of the same name

Definition at line 604 of file iSchedule.php.

Member Data Documentation

◆ $disallowed_headers

iSchedule::$disallowed_headers
private
Initial value:
= Array ( 'connection',
'keep-alive',
'dkim-signature',
'proxy-authenticate',
'proxy-authorization',
'te',
'trailers',
'transfer-encoding',
'upgrade' )

Definition at line 41 of file iSchedule.php.

◆ $required_headers

iSchedule::$required_headers
private
Initial value:
= Array ( 'host',
'originator',
'recipient',
'content-type' )

Definition at line 37 of file iSchedule.php.


The documentation for this class was generated from the following file: