There are a lot of things to keep track of when verifying.
- Did you encode your data according to the proper sighash byte?
- Are you using the correct key to verify?
- Did you hash the data you are verifying?
- Did you add the four bytes representing the sighash byte to your data?
So, for the transaction you mentioned, there is only one input that contains a signature that ends with sighash byte 01. Sighash byte 01 means we basically use the raw transaction as our data. If there had been multiple inputs, we would use zero-length scripts for the inputs we are not verifying, but in this case we only have one. But we do have to put a 4-byte little endian value at the end of the data to represent the sighash byte.
So this is the data that I believe needs to be verified.
01000000
01
c997a5e56e104102fa209c6a852dd90660a20b2d9c352423edce25857fcd3704
00000000
43410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac
ffffffff
02
00ca9a3b00000000
434104ae1a62fe09c5f51b13905f07f06b99a2f7159b2225f374cd378d71302fa28414e7aab37397f554a7df5f142c21c1b7303b8a0626f1baded5c72a704f7e6cd84cac
00286bee00000000
43410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac
00000000
01000000
Notice the 01000000
at the end. That represents the sighash byte which has to be signed along with the rest of the data.
I'm not familiar with the library you mentioned, but many of them will work. Typically, you need to pass the data and its length, the signature and the public key being verified. Since the signatures in bitcoin transactions usually have a sighash byte stuck on the end of them, you'll need to remove that byte before passing it to the function you use to verify.
If you serialize all of the bytes above into one message, convert it to binary and apply a double sha256 to it, I bet you can verify it with the public key included in the previous output's script.
0100
which means one byte that equals to zero. Not 100% it's what's needed.00
.