Subject: [cicm] Unprotected-side APIs

From: "Novikov, Lev" <[email-masked]>
Date: Fri, 17 Jun 2011 15:13:41 -0400

As I previously mentioned, CICM does not define any APIs that simply
move data into / out of the crypto. After several discussions, I believe
there may be a need for additions to the API to support such operations.

Here are the issues:

  * Currently, CICM does not define a mechanism for the unprotected side
    to pump data into / out of the module.

  * Moreover, there is no mechanism to provide non-payload data (e.g.,
    supply an IV on the decrypt side).

  * Currently, there is no way to associate any given traffic on the
    unprotected side with a channel on the protected side.

Here are some ways we can start to address these issues.

1. CICM has a notion of a Module Event (similar to a callback or
   interrupt) which is activated under certain conditions.
   See: http://tools.ietf.org/html/draft-lanz-cicm-mm-00#section-9

2. We can define a set of events that are relevant to the unprotected
   side of a module. For example, it can be notified of the creation of
   a new channel on the protected side.
   ** What other events would need to be defined?

3. We would also have to define appropriate administrative functions for
   the unprotected side to perform such as supply an IV, provide
   header-bypass information, move data into/out of the crypto.
   ** What other administrative functions would need to be defined?

** What are other issues that need to be considered?

NOTE
  I recognize that these APIs may not be appropriate for each and every
  environment, but I am interested in feedback for those where it would
  apply.

Thanks,
Lev