private function _addCertificateMetaData(&$parsedMetaData) { $encryptionEnabled = $this->_config->getBoolean('encryption.enable'); $certKeys = array('keys:0:', 'keys:1:', 'keys:2:', 'keys:3:', 'keys:4:', 'keys:5:', 'keys:6:', 'keys:7:', 'keys:8:'); $certDataKeys = array('certData', 'certData2', 'certData3'); $certificates = array(); foreach ($certKeys as $certKey) { if (!isset($parsedMetaData[$certKey . 'X509Certificate'])) { continue; } // Skip encryption keys (key with no signing use) if we don't support encryption usage. if (!$parsedMetaData[$certKey . 'signing'] && !$encryptionEnabled) { continue; } $certData = $parsedMetaData[$certKey . 'X509Certificate']; /* * We don't want an empty certData if keys:0 is an encryption key and encryption is not enabled. So we * ensure that we fill the $certDataKeys in the right order. */ foreach ($certDataKeys as $certDataKey) { if (!isset($certificates[$certDataKey])) { $certificates[$certDataKey] = str_replace(array(" ", "\r\n", "\n", "\r", "\t", "\t"), '', $certData); if (!$this->_validatePublicCertificate($certificates[$certDataKey])) { return 'error_not_valid_certData'; } break; } } } foreach ($certDataKeys as $certDataKey) { if (!isset($certificates[$certDataKey]) && $this->_entityController->hasMetadata($certDataKey)) { $this->_entityController->removeMetadata($certDataKey); $this->_updated = true; } } $parsedMetaData = array_merge($parsedMetaData, array_unique($certificates)); return false; }
$newkey = substr($newkey, 0, -6); $value = false; } } if ($mcontroller->updateMetadata($newkey, $value)) { $update = TRUE; $note .= 'Metadata edited: ' . $newkey . ' => ' . $value . '<br />'; } } } } } // Delete metadata if (isset($_POST['delete-metadata']) && $guard->hasPermission('deletemetadata', $entity->getWorkflow(), $user->getType())) { foreach ($_POST['delete-metadata'] as $data) { if ($mcontroller->removeMetadata($data)) { $update = TRUE; $note .= 'Metadata deleted: ' . $data . '<br />'; } } } // Add metadata from a URL. // NOTE. This will overwrite everything paster to the XML field if (isset($_POST['add_metadata_from_url']) && $guard->hasPermission('importmetadata', $entity->getWorkflow(), $user->getType())) { if (!empty($_POST['meta_url'])) { if ($mcontroller->setMetadataURL($_POST['meta_url'])) { $update = TRUE; $note .= 'Metadata URL set: ' . $_POST['meta_url'] . '<br />'; } try { $res = @file_get_contents($_POST['meta_url']);