Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #15 from tmilos/signing_options
SignatureWriter and SigningOptions #13
- Loading branch information
Showing
9 changed files
with
751 additions
and
62 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
<?php | ||
|
||
/* | ||
* This file is part of the LightSAML-Core package. | ||
* | ||
* (c) Milos Tomic <tmilos@lightsaml.com> | ||
* | ||
* This source file is subject to the MIT license that is bundled | ||
* with this source code in the file LICENSE. | ||
*/ | ||
|
||
namespace LightSaml\Meta; | ||
|
||
class ParameterBag implements \IteratorAggregate, \Countable | ||
{ | ||
/** | ||
* Parameter storage. | ||
* | ||
* @var array | ||
*/ | ||
protected $parameters; | ||
|
||
/** | ||
* @param array $parameters An array of parameters | ||
*/ | ||
public function __construct(array $parameters = array()) | ||
{ | ||
$this->parameters = $parameters; | ||
} | ||
|
||
/** | ||
* Returns the parameters. | ||
* | ||
* @return array An array of parameters | ||
*/ | ||
public function all() | ||
{ | ||
return $this->parameters; | ||
} | ||
|
||
/** | ||
* Returns the parameter keys. | ||
* | ||
* @return array An array of parameter keys | ||
*/ | ||
public function keys() | ||
{ | ||
return array_keys($this->parameters); | ||
} | ||
|
||
/** | ||
* Replaces the current parameters by a new set. | ||
* | ||
* @param array $parameters An array of parameters | ||
*/ | ||
public function replace(array $parameters = array()) | ||
{ | ||
$this->parameters = $parameters; | ||
} | ||
|
||
/** | ||
* Adds parameters. | ||
* | ||
* @param array $parameters | ||
*/ | ||
public function add(array $parameters = array()) | ||
{ | ||
$this->parameters = array_replace($this->parameters, $parameters); | ||
} | ||
|
||
/** | ||
* Returns a parameter by name. | ||
* | ||
* @param string $key | ||
* @param mixed $default | ||
* | ||
* @return mixed | ||
*/ | ||
public function get($key, $default = null) | ||
{ | ||
return array_key_exists($key, $this->parameters) ? $this->parameters[$key] : $default; | ||
} | ||
|
||
/** | ||
* Sets a parameter by name. | ||
* | ||
* @param string $key | ||
* @param mixed $value | ||
*/ | ||
public function set($key, $value) | ||
{ | ||
$this->parameters[$key] = $value; | ||
} | ||
|
||
/** | ||
* Returns true if the parameter is defined. | ||
* | ||
* @param string $key | ||
* | ||
* @return bool true if the parameter exists, false otherwise | ||
*/ | ||
public function has($key) | ||
{ | ||
return array_key_exists($key, $this->parameters); | ||
} | ||
|
||
/** | ||
* Removes a parameter. | ||
* | ||
* @param string $key | ||
*/ | ||
public function remove($key) | ||
{ | ||
unset($this->parameters[$key]); | ||
} | ||
|
||
/** | ||
* @return \ArrayIterator | ||
*/ | ||
public function getIterator() | ||
{ | ||
return new \ArrayIterator($this->parameters); | ||
} | ||
|
||
/** | ||
* @return int | ||
*/ | ||
public function count() | ||
{ | ||
return count($this->parameters); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
<?php | ||
|
||
/* | ||
* This file is part of the LightSAML-Core package. | ||
* | ||
* (c) Milos Tomic <tmilos@lightsaml.com> | ||
* | ||
* This source file is subject to the MIT license that is bundled | ||
* with this source code in the file LICENSE. | ||
*/ | ||
|
||
namespace LightSaml\Meta; | ||
|
||
use LightSaml\Credential\X509Certificate; | ||
use RobRichards\XMLSecLibs\XMLSecurityKey; | ||
|
||
class SigningOptions | ||
{ | ||
const CERTIFICATE_SUBJECT_NAME = 'subjectName'; | ||
const CERTIFICATE_ISSUER_SERIAL = 'issuerSerial'; | ||
|
||
/** @var bool */ | ||
private $enabled = true; | ||
|
||
/** @var XMLSecurityKey */ | ||
private $privateKey; | ||
|
||
/** @var X509Certificate */ | ||
private $certificate; | ||
|
||
/** @var ParameterBag */ | ||
private $certificateOptions; | ||
|
||
/** | ||
* @param XMLSecurityKey $privateKey | ||
* @param X509Certificate $certificate | ||
*/ | ||
public function __construct(XMLSecurityKey $privateKey = null, X509Certificate $certificate = null) | ||
{ | ||
$this->enabled = true; | ||
$this->privateKey = $privateKey; | ||
$this->certificate = $certificate; | ||
$this->certificateOptions = new ParameterBag(); | ||
} | ||
|
||
/** | ||
* @return X509Certificate | ||
*/ | ||
public function getCertificate() | ||
{ | ||
return $this->certificate; | ||
} | ||
|
||
/** | ||
* @param X509Certificate $certificate | ||
* | ||
* @return SigningOptions | ||
*/ | ||
public function setCertificate(X509Certificate $certificate = null) | ||
{ | ||
$this->certificate = $certificate; | ||
|
||
return $this; | ||
} | ||
|
||
/** | ||
* @return XMLSecurityKey | ||
*/ | ||
public function getPrivateKey() | ||
{ | ||
return $this->privateKey; | ||
} | ||
|
||
/** | ||
* @param XMLSecurityKey $privateKey | ||
* | ||
* @return SigningOptions | ||
*/ | ||
public function setPrivateKey(XMLSecurityKey $privateKey = null) | ||
{ | ||
$this->privateKey = $privateKey; | ||
|
||
return $this; | ||
} | ||
|
||
/** | ||
* @return ParameterBag | ||
*/ | ||
public function getCertificateOptions() | ||
{ | ||
return $this->certificateOptions; | ||
} | ||
|
||
/** | ||
* @return bool | ||
*/ | ||
public function isEnabled() | ||
{ | ||
return $this->enabled; | ||
} | ||
|
||
/** | ||
* @param bool $enabled | ||
* | ||
* @return SigningOptions | ||
*/ | ||
public function setEnabled($enabled) | ||
{ | ||
$this->enabled = (bool) $enabled; | ||
|
||
return $this; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.