Patent ID: 7373504

Claim:
A method for performing a cryptographic function comprising: calling into an encryption framework to perform the cryptographic function, wherein calling into the encryption framework comprises sending a request to perform the cryptographic function from a kernel consumer; and processing the request and returning the result to the kernel consumer, wherein processing the request comprises determining whether the request is synchronous or asynchronous, and determining which cryptographic provider to use to perform the cryptographic function, wherein processing the request comprises: performing the cryptographic function in a kernel consumer context when the request is synchronous; queuing the request when the request is asynchronous and the kernel consumer indicated to queue the request; queuing the request when the request is asynchronous and the kernel consumer indicated not to queue the request, and the request needs to be queued; performing the cryptographic function and returning the result to the kernel consumer after a period of time when the request was queued; and performing the cryptographic function and returning the result to the request to the kernel consumer when the request is asynchronous, the kernel consumer indicated not to queue the request, and the request does not need to be queued.