1. A method of securely transferring information between execution environments, the method comprising: receiving, at a crypto engine, original plaintext from a first execution environment; obtaining a first cryptographic key by the crypto engine, the first cryptographic key being retained in memory such that the first cryptographic key is associated with the first execution environment and a second execution environment that is not the first execution environment, each of the first execution environment and the second execution environment being a virtual machine configured to process information; encrypting the original plaintext by the crypto engine using the first cryptographic key to produce encrypted information, and storing the encrypted information in an intermediate storage location; obtaining, at the crypto engine, the encrypted information from the intermediate storage location; decrypting the encrypted information by the crypto engine using the first cryptographic key to produce reconstituted plaintext; and making the reconstituted plaintext available to the second execution environment by the crypto engine.