/**
* @param \SAML2\Configuration\CertificateProvider $config
* @param null|string $usage
* @param bool $required
*
* @return \SAML2\Certificate\KeyCollection
*/
public function loadKeysFromConfiguration(CertificateProvider $config, $usage = null, $required = false)
{
$keys = $config->getKeys();
$certificateData = $config->getCertificateData();
$certificateFile = $config->getCertificateFile();
if ($keys) {
$this->loadKeys($keys, $usage);
} elseif ($certificateData) {
$this->loadCertificateData($certificateData);
} elseif ($certificateFile) {
$this->loadCertificateFile($certificateFile);
}
if ($required && !$this->hasKeys()) {
throw new NoKeysFoundException('No keys found in configured metadata, please ensure that either the "keys", "certData" or ' . '"certificate" entries is available.');
}
return $this->getKeys();
}