Patent ID: 8954753
Filing Date: 2015-02-10
Classification: G06F

Abstract:
1. A computer program product to allocate blocks of memory in a memory device having a plurality of blocks, the computer program product comprising a computer readable storage device having computer readable program code including an application and an operating system embodied therein that executes to communicate with processor registers and the memory device and perform operations, the operations comprising: executing at least one unencrypted memory allocation function coded in the application to request allocation of unencrypted blocks in the memory device; executing an encrypted memory allocation function coded in the application to request allocation of encrypted blocks in the memory device; executing the operating system to generate an encryption key to encrypt the encrypted blocks allocated for the memory allocation function; storing the generated encryption key, wherein blocks allocated to the application include encrypted and unencrypted blocks; executing at least one unencrypted Input/Output (I/O) request function coded in the application indicating an unencrypted I/O operation to perform against the unencrypted blocks in the memory device; executing at least one encrypted I/O request function coded in the application indicating an encrypted I/O operation to perform against the encrypted blocks in the memory device; and executing the operating system to use the stored encryption key generated to encrypt the encrypted blocks allocated in response to the encrypted memory allocation function to encrypt or decrypt data in the encrypted blocks to perform the encrypted I/O operation in response to processing the at least one encrypted I/O request function, wherein the unencrypted and encrypted memory allocation functions and unencrypted and encrypted I/O request functions comprise different functions in a library of functions available to the application.