Подписание XML-файла (PHP)

Я столкнулся с проблемой при попытке подписать файл XML, чтобы сделать запрос мыла.
Вот функция, которую я использую, чтобы получить подпись в переменной:

private function signXml() {

$doc = new DOMDocument();
$doc->loadXML($this->xml);

foreach($doc->getElementsByTagNameNS('*', 'SignedInfo') as $elm) {
$SignedInfo =  $elm->c14n();

$key = openssl_pkey_get_private ( file_get_contents($this->lc_key) , $this->lc_Password); //file_get_contents($this->key);

if ( openssl_sign($SignedInfo, $crypt, $key, OPENSSL_ALGO_SHA1) ) {
$this->data['SignatureValue'] = base64_encode($crypt);
} else {
throw new Exception('XML signature failed !');
}
}
}

Когда я использую SoapUI для генерации подписи, запрос успешно обрабатывается сервером. Но когда я использую свой php-скрипт, я получаю другую подпись, хотя digestValues ​​совпадает, и на сервере возникает внутренняя ошибка.

Вот стандарты, которые я должен использовать:

Key Identifiert Type => Двоичный токен безопасности

Алгоритм подписи => http://www.w3.org/2000/09/xmldsig#rsa-sha1

Подпись Каноникализация => http://www.w3.org/2001/10/xml-exc-c14n#

Алгоритм дайджеста => sha1

Часть подписанного сообщения => Тело

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]