/** * @param SAML2_Configuration_CertificateProvider $config * @param NULL|string $usage * @param bool $required * * @return SAML2_Certificate_KeyCollection */ public function loadKeysFromConfiguration(SAML2_Configuration_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 SAML2_Certificate_Exception_NoKeysFoundException('No keys found in configured metadata, please ensure that either the "keys", "certData" or ' . '"certificate" entries is available.'); } return $this->getKeys(); }