Abstract: A software cryptography library management program allows a user to provide a software cryptography library via a graphical user interface. A cryptography toolbox program displays to the user a plurality of cryptographic operation modules in a cryptography toolbox view such that each of the cryptographic operation modules is a graphical shape representation of an operation that performs one or more of application programming interfaces from the provided software cryptography library. A cryptography design program allows the user to place cryptographic operation modules in a drawing area to form a cryptosystem. The user sends a command to a simulation engine to simulate the cryptosystem using the application programming interfaces. The user may send a different command to a code generation engine to generate code from the cryptosystem using the application programming interfaces.