As you may know, ST also produces his own debugger/programmer called ST-Link. It supports JTAG and SWD interfaces. You can purchase an ST-Link USB adapter, but there is a better option if you are into STM32 microcontrollers, and probably own one of ST32 Discovery boards. Since I have STM32VLDiscovery nearby, this is how to program another STM32F103RBT6 board using only four wires. On discovery board, locate CN3 jumpers and disconnect them as they connect discovery board to a debugger.