C # UBL 2.1 подпись - PullRequest
       33

C # UBL 2.1 подпись

0 голосов
/ 03 января 2019

Мне нужно подписать счет-фактуру UBL 2.1 с помощью c #. Проблема в том, что после подписания мне нужно вставить Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" в

элемент UBLExtensions, вот так

<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">

Я пытался добавить эти элементы позже, но подпись не считается действительной.

У меня нет опыта подписи XML-файлов, поэтому любая помощь будет высоко цениться

EDIT

Исходный XML-файл

<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">
   ... Invoice Elements
</Invoice>

Мне нужно произвести что-то вроде

<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">
   <ext:UBLExtensions>
      <ext:UBLExtension xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2" xmlns:sig="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2">
         <ext:ExtensionContent>
            <sig:UBLDocumentSignatures>
               <sac:SignatureInformation>
                  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
                     ... signature contents produced by signed xml class
                  </Signature>
               </sac:SignatureInformation>
            </sig:UBLDocumentSignatures>
         </ext:ExtensionContent>
      </ext:UBLExtension>
   </ext:UBLExtensions>
    ... Invoice Elements
</Invoice>

Если я добавлю эти элементы позже, подпись будет считаться недействительной.

Опять же, любая помощь будет высоко оценена.

Ссылка на фактический подписанный файл: signed_xml

1 Ответ

0 голосов
/ 22 января 2019

Проблема заключалась в том, что элементы расширения должны быть размещены в документе до процесса подписания. Мне стыдно! Спасибо за ваше время!

...