1. A method for establishing a secure communications channel between a first entity and a second entity, comprising: (a) receiving a first message from the first entity, wherein the first message includes a first set of security parameters; (b) transmitting a second message to the first entity, wherein the second message includes a second set of security parameters; (c) receiving a negotiation key from the first entity in response to the second message; (d) issuing a function call to a cryptographic processing module, wherein the function call includes the first set of security parameters, the second set of security parameters, and the negotiation key, wherein the function call causes the cryptographic processing module to generate a master key and a set of server session keys; (e) receiving the set of server session keys from the cryptographic processing module; and (f) engaging in secure communications with the first entity using the server session keys.