Я последовал примеру от Microsoft: https://docs.microsoft.com/en-us/dotnet/standard/security/how-to-sign-xml-documents-with-digital-signatures
И я получаю подпись.
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <Reference URI=""> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>e7jQRU4xmLaQmWVO9pVovhWSeGU=</DigestValue> </Reference> </SignedInfo> <SignatureValue>gAuVoU7bBgzJCD7VZku1Gvju4h/R4mQZGEXK5BoIAKbmYJqeWCYAdvb07gVwaFOc6DeQPmV3lS0BGE4wOZkNqvLqN2BhIM98hYSwd1KZgBDzkrNs6GoLmDLiJVwC+rq2IYOKfQumk3sD7V7KBZ/92/dbXPfPUOLEQRmF9tkJZBA=</SignatureValue> </Signature>
Но это не совсем тот формат, который мне нужен. Мне нужно отправить цифровые подписи, как эти:
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod> <Reference URI=""> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod> <DigestValue>e7jQRU4xmLaQmWVO9pVovhWSeGU=</DigestValue> </Reference> </SignedInfo> <SignatureValue>gAuVoU7bBgzJCD7VZku1Gvju4h/R4mQZGEXK5BoIAKbmYJqeWCYAdvb07gVwaFOc6DeQPmV3lS0BGE4wOZkNqvLqN2BhIM98hYSwd1KZgBDzkrNs6GoLmDLiJVwC+rq2IYOKfQumk3sD7V7KBZ/92/dbXPfPUOLEQRmF9tkJZBA=</SignatureValue> </Signature>
Обратите внимание на закрывающие теги здесь. Есть ли способ, которым я могу поручить компоненту xmlDigitalSignature выложить нужный мне xml?