On Friday, October 10, 2014 8:51:12 AM UTC-4, Robert Hutchings wrote:
I guess I am having trouble visualizing what a programmer would do with that boxcar...
Boxcar is simply a Guardian writeread to TCP/IP bridge process. An application sends a writeread to the boxcar process, the boxcar process communicates with Atalla HSM via TCP/IP and returns a reply to the application. Think of it like any other Guardian I/O process. request in / response back. Boxcar is of course multi-threaded and can handle may concurrent requests, although in my testing I've found the limit of the current HSMs is about 14 concurrent requests. Beyond that, queuing occurs in boxcar process transparent to the application.
If you're going to be communicating with the HSM, you need to understand the command reference manual I referred to earlier. The command reference manual documents the format of all commands to and responses from the HSM.
This is where it gets complicated. The HSM supports many types of keys: master keys, working keys, communication keys, etc. In addition the HSM supports many types of encryption/decryption that I also mentioned earlier. The combinations of all these keys and encryption modes gets very confusing. You as the programmer have to know what command to send to the HSM under what keys. Once you know that, the command reference will give you the format of the command and the format of the response. At that point, it's a simple writeread from the application to the boxcar process with the properly formatted request.
Of course, if you're dealing with a high availability environment, you need to consider rerouting to an alternate boxcar processes should an HSM fail. It does happen.