Approaches, techniques, and mechanisms are disclosed for provisioning programmable devices in a secure manner. The secure programming system can individually encrypt a target payload of data and code and then program the information into each individual one of the programmable devices targeted for a specific job. The secure programming system can create a customized payload package that can only be decrypted by a particular system or device having the correct security keys.