[illumos-Developer] webrev: removal of closed kcfd
    Garrett D'Amore 
    garrett at nexenta.com
       
    Mon Sep  6 20:25:44 PDT 2010
    
    
  
On Mon, 2010-09-06 at 19:40 -0400, Richard Lowe wrote:
> Garrett D'Amore wrote:
> > http://mexico.purplecow.org/gdamore/webrev/nokcfd/
> 
> general:
> 
>   - Is there any worth in leaving FIPS support sufficient to lock out
>     non-FIPS algorithms and modes, run the self-tests, and just not do
>     module verification?  I appreciate that's not compliant, but is it
>     useful?
> 
>     You and I had discussed this offline, and mostly thought "No", since
>     the value of FIPS is solely the certification.
Right.  Generally, any new effort to redo FIPS would need to consider
many many issues, and might wind up taking a substantially different
path depending on what their goals are (what FIPS level, what crypto
boundary, etc.)
I think it would be very bad to offer any kind of "pseudo" FIPS, since
it clearly would not even fit the most basic design tenets of FIPS 140-2
without some kind of verified cryptographic infrastructure.  Without
module verification, quasi FIPS support is utterly pointless, IMO.
>   - Is the FIPS removal a simple backout of its introduction (and
>     subsequent).  Or done some other way?
It was done the "hard way", since I was also removing the module signing
at the same time, and there were shared bits.
> 
>     (I'm looking for an indication it's suitably complete)
In fact, I left some of the fips stuff (the "self-test" algorithm
support) in, because they are likely to be useful to future efforts.
However, I'm willing to remove that if other folks want to see the
currently-not-used code removed.
> 
>   - Did you test that priocntl, pbind, etc, function on your process?
Good question.  Answer: No.  In fact, I haven't really tested the
process logic at all.  All I've done is verify that the lwps are present
in PS. :-)  I still need to test the actual kernel crypto code.  I would
very much welcome concrete testing suggestions or help.
> 
> usr/src/cmd/cmd-crypto/cryptoadm/cryptoadm.c:1211,1212:
> 
>       nit: Self evident.
Go back and reread the comment.  It says "used to" .. as in, not any
more.
> 
> usr/src/cmd/cmd-crypto/cryptoadm/cryptoadm.h:40
> 
>       Should no longer be necessary
Accepted.
> 
> usr/src/uts/common/crypto/core/kcf.c:95
> 
>       Because we can do this at this point, with your changes, rather
>       than when kcfd shows us the door as before, right?
Right.
> 
> usr/src/uts/common/crypto/core/kcf_sched.c:206
> 
>       nit: A period is one ., an ellipsis is three.  You can't have
>       two.
Accept.  Its a period now.
> 
> usr/src/uts/common/crypto/core/kcf_sched.c:1027
> 
>       cv_reltimedwait() should never return 0, only -1 on timeout,
>       and > 0 when signalled (cv_signal), no?
Yes.  I left the explicit case for 0 in case someone decides that
signaling kcfpoold is a good idea, and to illustrate that I thought
about it.  Technically I can remove the 0 case if someone is offended by
it.
> 
> usr/src/uts/common/crypto/core/kcf_sched.c:1395,1396
> 
>       nit: process names don't agree, "kcfpool" v. "kcfpoold"
I fixed the comment.  Its kcfpoold.
> 
> usr/src/uts/common/sys/crypto/sched_impl.h:379
> 
>       "... also protects the three fileds above"
> 
>       This is probably not true, as you deleted 5 fields preceding
>       this comment, if it is still true, please fix the spelling of
>       fields.
Accept.  It doesn't protect any fields, so I removed the incorrect
statement.
> 
> usr/src/uts/common/sys/crypto/spi.h:48
> usr/src/uts/common/sys/crypto/spi.h:493,500
> usr/src/uts/common/sys/crypto/spi.h:536,548
> usr/src/uts/common/sys/crypto/spi.h:566
> 
>       co_fips140_ops is useless, after your changes.  Can it be safely
>       removed, given that the API is versioned?  Or does it make more
>       sense to leave CRYPTO_SPI_VERSION_4, so the API versioning
>       continues to line up.
I prefer the latter.  It will make future merges less painful, if they
ever occur, and I hate the idea of a mixup even being *possible* with
someone mixing current V4 code against some future V4 or later.
> 
>       Either way, I think you should remove the implementations of this
>       entry point from the VERSION_4 providers, since the code will
>       never be called.
This goes to the question about dead code.  I think I'm coming to agree
with you on this, although it will be seriously annoying if ever anyone
tries to reinstate these.
I'm going to submit a new webrev soon, nightly found a few lint
complaints, and I gutted the crypto support from nightly as well.
Stay tuned.
	-- Garrett
> 
> -- Rich
    
    
More information about the Developer
mailing list