I want to implement a client-side wallet where the transaction is generated and signed on the browser, and sent to the server which is running a geth node. Apparently ethereumjs-tx does what I want for the client side, but it needs the private key for signing.

Therefore, I want to ask the user to supply their UTC key file and their password on the browser, and then, -I guess- I need to derive their private key with these two pieces of information. But I have no idea how to do that.

I found helpeth that extracts the private key from a UTC file, but can I use this in browser JavaScript? Or are there other solutions for this?