Dear experts,
I'm trying to use Crypto.Signature.pkcs1_15 with SHA256.
But I have the 32-byte digest already provided from something else.
So I need to forge a thing that can be passed to sign() and verify() from a bytes object.
I've tried this:
def make_sha(digest: bytes) :
class x:
pass
x.oid = '2.16.840.1.101.3.4.2.1'
x.digest_size = 32
x.digest = lambda : digest
return x
h = make_sha(my_digest)
sig = signer.sign(h)
.................
and then to verify:
signer.verify(h, sig)
This looks like working, but actually verify() returns success even with invalid digest!
So I guess that my fake hash thing causes silent verify() failure in a strange way.
What is a proper way to do what I need?