So the problem I'm facing is that I'm making a request to a server, and the server is responding via webhooks -> this notification can take a while to come back. This is why every time I get a response, I need to verify the signature sent in the response authentication header.
They say that they produce the signature with: sign(apikey + nonce + timestamp + transactionid)
Now, obviously I have the apikey, but I don't have the timestamp, nonce and transactionId to verify if the signature is correct. I don't understand, is it even solvable then?
Anyway, they say that they use the SHA256withRSA (OID: 1.2.840.113549.1.1.11) standard to sign it, therefore I have to use the same thing to decrypt it. They have given me their string public key and nothing else (no certificate). The public key is in the form:
-----BEGIN PUBLIC KEY-----
<public key>
-----END PUBLIC KEY-----
I haven't found any out of the box solutions in C# for this problem, as I can't just use RSA. What can I do to decrypt their signature and verify that it's really them?