Добрый день. Столкнулся со сложностью в подписании XML - файла используя pycades или cryptcp.
Нужно
подписать xml присоединенной подписью в формате pkcs7 в кодировке der:
```
Запрос осуществляется путем отправки
XML-документа в кодировке Windows-1251 с присоединенной усиленной электронной подписью PKCS7/DER методом POST.
```
Пытался сделать подпись разными вариантами:
через pycades перебирал
разные связки .SignatureType:
```
import pycades
import base64
store = pycades.Store()
store.Open(pycades.CADESCOM_CONTAINER_STORE, pycades.CAPICOM_MY_STORE, pycades.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)
certs = store.Certificates
assert(certs.Count != 0), "Certificates with private key not found"
signer = pycades.Signer()
signer.Certificate = certs.Item(1)
signer.CheckCertificate = True
signer.KeyPin='********************************'
content_to_sign = base64.b64encode(open('test.xml', "rb").read()).decode("utf-8")
signedXML = pycades.SignedXML()
signedXML.Content = content_to_sign
signedXML.SignatureType = pycades.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED | pycades.CADESCOM_XADES_BES
signature = signedXML.Sign(signer)
signedXML.Verify(signature)
decoded_data = base64.b64decode(signature).decode('utf-8')
# Сохраняем XML-строку в файл
with open("test.xml", "w", encoding="windows-1251") as xml_file:
xml_file.write(decoded_data)
```
через cryptcp:/opt/cprocsp/bin/amd64/cryptcp -sign -thumbprint ******************* -der -nochain -cert -norev "test.xml" "test.xml", так как ответ от партнера приходит в таком формате...
Но все подписи, которые сделал -
не подходят, подскажите пожалуйста, как можно сформировать данную подпись для xml. Спасибо.
Отредактировано пользователем 27 марта 2025 г. 9:43:09(UTC)
| Причина: Не указана