The correct answer is Congress.
In the US Constitution, Congress is given the power to declare war under Article 1, Section 8, Clause 11. This is why presidents, such as FDR after Pearl harbor, ask Congress for their permission to go to war. If Congress decides not to declare war, the only thing the president can do is send troops into a specific country/region for 90 days. If after that 90 days Congress has not declared war, then the troops must return home.