Al momento la funzione VerifySignature() in XmlSigningHelper.cs verifica che ci sia almeno un elemento "ds:Signature" (oppure ns2:Signature oppure Signature).
Come indicato nelle regole tecniche (1.4.2 Response), e confermato dalla schermata di https://idptest.spid.gov.it/login fra le Opzioni avanzate, la firma dell'Assertion è obbligatoria, mentre la firma della Response è facoltativa. Nella Response ci possono quindi essere 2 "ds:Signature" e se si genera una Response con la firma solo sulla Response e non sull'Assertion il controllo di VerifySignature() (averne almeno una) viene superato, nonostante il vincolo di presenza della firma sull'Assertion non sia rispettato.
p.s. Sempre in base a queste regole tecniche trovo sbagliato che nel https://www.spid.gov.it/assets/download/SPID_QAD.pdf (noto ora che hanno rilasciato giusto ieri una nuova versione) il test numero 3.2 preveda un errore in caso di "Response non firmata".
Al momento la funzione VerifySignature() in XmlSigningHelper.cs verifica che ci sia almeno un elemento "ds:Signature" (oppure ns2:Signature oppure Signature).
Come indicato nelle regole tecniche (1.4.2 Response), e confermato dalla schermata di https://idptest.spid.gov.it/login fra le Opzioni avanzate, la firma dell'Assertion è obbligatoria, mentre la firma della Response è facoltativa. Nella Response ci possono quindi essere 2 "ds:Signature" e se si genera una Response con la firma solo sulla Response e non sull'Assertion il controllo di VerifySignature() (averne almeno una) viene superato, nonostante il vincolo di presenza della firma sull'Assertion non sia rispettato.
p.s. Sempre in base a queste regole tecniche trovo sbagliato che nel https://www.spid.gov.it/assets/download/SPID_QAD.pdf (noto ora che hanno rilasciato giusto ieri una nuova versione) il test numero 3.2 preveda un errore in caso di "Response non firmata".