Статус: Новичок
Группы: Участники
Зарегистрирован: 19.12.2022(UTC) Сообщений: 5
Сказал(а) «Спасибо»: 1 раз
|
Добрый день! Помогите, разобраться в следующей проблеме: есть шаблон xml, в котором указан тег <ds:KeyName> с серийным номером сертификата. При подписании с помощью CAdESCOM.SignedXML.Sign, подпись добавляется в шаблон, но подпись шаблона не проходит проверку методом verify. Если из шаблона удалить тег <ds:KeyName>, то шаблон подписывается, а созданная подпись - проверяется корректно. В KeyName указываю серийный номер сертификата. Код, который используем для подписания и проверки подписи:
Код:import win32com.client
import codecs
oStore = win32com.client.Dispatch("CAdESCOM.Store")
oStore.Open(2,"My")
oCertificates = oStore.Certificates.Find(0,"4921f3b8f5152f3701d0036a1e743b38b4c239d8")
oCertificate = oCertificates.Item(1)
oSigner = win32com.client.Dispatch("CAdESCOM.CPSigner")
oSigner.Certificate = oCertificate
oSigner.CheckCertificate = True
oSignedXML = win32com.client.Dispatch("CAdESCOM.SignedXML")
f = open("Шаблон с Keyname.xml", "r", encoding='utf-8')
content = f.read()
oSignedXML.Content = content
print(content)
oSignedXML.SignatureType = '2'
oSignedXML.SignatureMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256'
oSignedXML.DigestMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256'
sSignedMessage = oSignedXML.Sign(oSigner)
print(sSignedMessage)
oSignedXMLValidate = win32com.client.Dispatch("CAdESCOM.SignedXML")
res = oSignedXMLValidate.Verify(sSignedMessage)
print(res)
XML, который подписываю:
Код:<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.06"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<CstmrCdtTrfInitn>
<GrpHdr>
<MsgId>c697e222c8e6475db3ad5dfc51518ea2</MsgId>
<CreDtTm>2021-08-31T08:12:04+03:00</CreDtTm>
<NbOfTxs>1</NbOfTxs>
<InitgPty>
<Nm>ПАО ГМК НН ГО</Nm>
<Id>
<OrgId>
<Othr>
<Id>8401005730</Id>
<SchmeNm>
<Cd>TXID</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</InitgPty>
</GrpHdr>
<PmtInf>
<PmtInfId>PKG329a0abc238b49c28bf04df50c905ed2</PmtInfId>
<PmtMtd>TRF</PmtMtd>
<NbOfTxs>1</NbOfTxs>
<ReqdExctnDt>2021-08-31</ReqdExctnDt>
<Dbtr>
<Nm>ООО отправитель</Nm>
<PstlAdr>
<Ctry>RU</Ctry>
</PstlAdr>
<Id>
<OrgId>
<Othr>
<Id>1234567890</Id>
<SchmeNm>
<Cd>TXID</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</Dbtr>
<DbtrAcct>
<Id>
<Othr>
<Id>40700000000000000000</Id>
<SchmeNm>
<Cd>BBAN</Cd>
</SchmeNm>
</Othr>
</Id>
<Ccy>RUR</Ccy>
</DbtrAcct>
<DbtrAgt>
<FinInstnId>
<ClrSysMmbId>
<ClrSysId>
<Cd>RUCBC</Cd>
</ClrSysId>
<MmbId>044525545</MmbId>
</ClrSysMmbId>
<Nm>АО БАНК</Nm>
</FinInstnId>
</DbtrAgt>
<DbtrAgtAcct>
<Id>
<Othr>
<Id>30101810300000000545</Id>
</Othr>
</Id>
</DbtrAgtAcct>
<CdtTrfTxInf>
<PmtId>
<InstrId>PMT3c002aa5f3e449ec947d0255ef27f</InstrId>
<EndToEndId>00335</EndToEndId>
</PmtId>
<PmtTpInf>
<SvcLvl>
<Cd>NURG</Cd>
</SvcLvl>
</PmtTpInf>
<Amt>
<InstdAmt Ccy="RUR">100</InstdAmt>
</Amt>
<CdtrAgt>
<FinInstnId>
<ClrSysMmbId>
<ClrSysId>
<Cd>RUCBC</Cd>
</ClrSysId>
<MmbId>004525988</MmbId>
</ClrSysMmbId>
<Nm>АО Банк</Nm>
</FinInstnId>
</CdtrAgt>
<CdtrAgtAcct>
<Id>
<Othr>
<Id>40102810545370000003</Id>
</Othr>
</Id>
</CdtrAgtAcct>
<Cdtr>
<Nm>ООО Получатель</Nm>
<PstlAdr>
<Ctry>RU</Ctry>
</PstlAdr>
<Id>
<OrgId>
<Othr>
<Id>1000000002</Id>
<SchmeNm>
<Cd>TXID</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</Cdtr>
<CdtrAcct>
<Id>
<Othr>
<Id>40700000000000000000</Id>
<SchmeNm>
<Cd>BBAN</Cd>
</SchmeNm>
</Othr>
</Id>
</CdtrAcct>
<Purp>
<Prtry>5</Prtry>
</Purp>
<Tax>
<Cdtr>
<RegnId>10000000</RegnId>
<TaxTp>770301001</TaxTp>
</Cdtr>
<Dbtr>
<TaxTp>770301001</TaxTp>
</Dbtr>
<AdmstnZn>45380000</AdmstnZn>
<RefNb>0</RefNb>
<Rcrd>
<Tp>1</Tp>
<CtgyDtls>18210102080011000110</CtgyDtls>
<DbtrSts>02</DbtrSts>
</Rcrd>
</Tax>
<RmtInf>
<Ustrd>Пример бюджетного платежа</Ustrd>
<Strd>
<RfrdDocInf>
<Tp>
<CdOrPrtry>
<Prtry>POD</Prtry>
</CdOrPrtry>
</Tp>
<RltdDt>2021-08-31</RltdDt>
</RfrdDocInf>
<CdtrRefInf>
<Ref>0</Ref>
</CdtrRefInf>
</Strd>
</RmtInf>
</CdtTrfTxInf>
</PmtInf>
<SplmtryData>
<Envlp>
<SgntrSt>
<ds:Signature Id="SigID0">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256" />
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
<dsig:XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">not(ancestor-or-self::dsig:Signature)</dsig:XPath>
</ds:Transform>
<ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
<ds:XPath xmlns:target_prefix="urn:iso:std:iso:20022:tech:xsd:pain.001.001.06">ancestor-or-self::target_prefix:Document</ds:XPath>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256" />
<ds:DigestValue />
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue />
<ds:KeyInfo>
<ds:KeyName>QWERTY</ds:KeyName>
<ds:X509Data>
<ds:X509Certificate />
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
</SgntrSt>
</Envlp>
</SplmtryData>
</CstmrCdtTrfInitn>
</Document>
Отредактировано пользователем 19 декабря 2022 г. 12:08:27(UTC)
| Причина: Не указана
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close