Secure Programming operates on two levels. The “Admin” level corresponds to the developer or owner of the software, while the “User” level corresponds to a contract manufacturer (CM) or other personnel authorized to program devices. Security-sensitive tasks are only performed at the Admin level. Using the Softlog GUI, the software owner initializes the programmer with a unique password, ID number and secure buffer prior to shipping it to the CM. The owner can update the programmer remotely by sending encrypted files to the CM.