| ||||
| ||||
проблема такая что, каким бы я публичным кпючом не проверял подпись запроса она всегда оказывается верна скажите пожалуйста в чем мож быть проблема или я чегото не так делаю вот код на паскале: Req1 := TCertRequest.create; Req1.OpenProvContext(’server’); Req1.OpenReqFromFile(’C:\test.rqst’); b := CryptVerifyCertificateSignature(FhProv, PKCS_7_ASN_ENCODING or X509_ASN_ENCODING, Req1.FreqEncoded, Req1.FreqSize, @Req1.FCertReqInfo.SubjectPublicKeyInfo); | ||||
Ответы: | ||||
| ||||
Можно уточнить "она всегда оказывается верна" или "она всегда оказывается НЕ верна"? | ||||
| ||||
она всегда верна | ||||
| ||||
В вашем примере вы передаёте в качестве указателя на CERT_PUBLIC_KEY_INFO для проверки подписи именно структуру, соответствующую ключу, на котором подписан запрос (т.к. при создании запрос подписывается только что созданным ключом). Если передать ключ не из этого запроса - подпись проверится? | ||||
| ||||
спасибо я уже разобрался с этой (моей) ошибкой, все отлично проверяется | ||||