Looks straight-forward to me.  +1.

    - Garrett

Darren J Moffat wrote:
> Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
> This information is Copyright 2009 Sun Microsystems
> 1. Introduction
>    1.1 Project/Component Working Name:
>        Kernel Cryptographic Framework support for FIPS 140-2
>    1.2 Name of Document Author/Supplier:
>        Anthony Scarpino
>
>
> Technical Description
>
>    The Interface taxonomy is Consolidation Private.
>    The Release taxonomy is Patch/Micro
>
>    Diff-marked draft manpages, cspi design, and header files are included
>    in the case directory.
>
> Background
>
>    Among the many requirement FIPS 140-2 documents, one is that of
>    each algorithm modules in the boundary to perform a POST (Power-On
>    Self Tests) when an algorithm modules loads.  A FIPS 140 boundary is 
> defined
>    as a set of binaries that will be verified before crypto operations are
>    allowed from any binary in the boundaries.
>
>    Another requirement is that the API, which FIPS 140 support is provided
>    through, cannot operate until the boundary has been verified by approved
>    FIPS 140 means.
>
>    In the Kernel Cryptographic Framework, a providers (or algorithm module) 
>    registers with the kcf kernel module when it loads using the existing 
>    Service Provider Interface (SPI).  This allows the Cryptographic 
>    Framework to know what functions the provider supports, among many other
>    things, before the provider is allowed to operate.
>
>    Simply by defining a POST function does not the make the module
>    FIPS 140-compliant.  This is just one piece of the validation process with
>    which involves a lab that specializes in FIPS 140 validations.
>
>
> Proposal
>
>     For POST support, extending the existing SPI so algorithm modules
>     can register an entry point for a POST function, it allows kcf to
>     orchestrate the running of POST for each of the algorithm modules
>     when the framework is configured in FIPS 140-2 mode.
>
>     This case would add another structure to the crypto_ops(9s),
>     crypto_fips140_ops(9s) and increment the SPI version to 4.
>     The algorithms modules that support FIPS 140 will be modified to use
>     the version 4 SPI entry point (spi.h).  crypto_fips140_ops will contain
>     one entry point:
>
>       void (*fips140_post)(int *);
>
>
>     With regard to preventing operations on FIPS 140 boundary modules until
>     the boundary has been verified.  In nearly all the cases modifying
>     existing code can support this operation, but random is the exception.
>     The kcf random API requires two new functions that will delay
>     operations until the boundary can be verified.  The existing random
>     functions must remain untouched because some consumers of those
>     functions cannot operate properly immediately without random data.
>     All consumers using random, desiring to operate under FIPS 140-2
>     compliance, must use the new APIs.  This case does not change the
>     RNG or PRNG at all.
>
>     The new functions are:
>
>     int random_get_bytes_fips140(uint8_t *ptr, size_t len);
>     int random_get_pseudo_bytes_fips140(uint8_t *ptr, size_t len);
>
>
> Compatibility
>
>        The SPI interface was introduced by PSARC 2001/553. The have
>        been incremented by PSARC 2005/576 and PSARC/2007/092.
>        The kernel kcf module will remain backwards compatible with
>        version 1, 2, and 3 providers.
>
> Bug/RFE Number(s): 6870299
>
> Exported Interfaces:
>
> +--------------------------------+---------------------------+--------------+
> |   Interface                    |  Classification           | Comments     |
> +--------------------------------+---------------------------+--------------+
> |   impl.h                       |  Consolidation            | include file |
> |                                |  Private                  |                
>     |
> |                                |                           |                
>     |
> |   spi.h                        |  Consolidation            | include file |
> |                                |  Private                  |                
>     |
> |                                |                           |                
>     |
> |   ioctladmin.h                 |  Project Private          | include file |
> |                                |                           |                
>     |
> |   sched_impl.h                 |  Project Private          | include file |
> |                                |                           |                
>     |
> |   random.h                     |  Contracted Consolidation | include file |
> |                                |  Private                  |              |
> |                                |                           |                
>     |
> +--------------------------------+---------------------------+--------------+
>
>
> 6. Resources and Schedule
>     6.4. Steering Committee requested information
>       6.4.1. Consolidation C-team Name:
>               ON
>     6.5. ARC review type: FastTrack
>     6.6. ARC Exposure: open
>
>   


Reply via email to