Patent ID: 8316431

Claim:
A method of performing IPsec processing of a packet, the method comprising: a first determining step of determining, from a received portion of the packet, if required information has been received to enable said IPsec processing to be commenced; a first obtaining step of obtaining, based upon said required information, data from a Security Association Database (SAD) based on the received portion of the packet, before the entire packet has been received, the data obtained in a pre-defined data structure; a second determining step of determining if the received portion of the packet is equal to a size of an allocated memory; a first configuring step of configuring a cryptographic algorithmic unit based on the obtained data, said cryptographic algorithmic unit comprising a plurality of modules, said first configuring step comprising: i) a selecting step of selecting at least one of the plurality of modules based on the obtained data to set a data path within the cryptographic algorithmic unit; ii) a first receiving step of receiving at least one cryptographic key from a cryptographic algorithmic unit controller to set the selected module to a correct mode; and iii) a second receiving step of receiving the received portion of the packet for IPsec processing; a second configuring step of configuring an IPsec processing unit for IPsec processing of said packet depending upon the obtained data, and upon the at least one cryptographic key received from the cryptographic algorithmic unit controller before the entire packet has been received, if the received portion of the packet is equal to the size of the allocated memory; and a commencing step of commencing, before the entire packet has been received, IPsec processing of said packet in the configured IPsec processing unit based on the obtained data, wherein said IPsec processing comprises executing at least one of the following functions: (a) Encapsulating Protocol (ESP); (b) Authentication Header (AH); (c) IP Compression (IPcomp); and (d) Internet Key Exchange (IKE).