Hello Joy, thanks for your answers. I'll cut out the ones that are resolved now from my POV.
Joy Latten [2016-04-06 19:48 -0000]: > crypto in regular openssl when in fips mode. The openssl-fips module is not > only bigger than this patch, but is separate and a bit more complex. > Since it is separate, it would almost be akin to maintaining 2 versions of > openssl. One advantage though is that it is maintained upstream. :-) > Again before I got here, Canonical consulted with external security > consultants who recommended we pursue the method that redhat and suse did. Yeah, that's a shame, though I realize this decision is not up to you or me. If we have funding for maintaining this patch both in Xenial (which should be fairly easy as we'll only backport security fixes) and, more importantly, in newer releases which will get newer upstream openssl releases and thus require heavy porting and testing, then so be it. > > crypto/dsa/dsa.h: > > # define DSA_F_DSAPARAMS_PRINT_FP 101 > > +# define DSA_F_DSA_BUILTIN_KEYGEN 127 > > +# define DSA_F_DSA_BUILTIN_PARAMGEN 128 > > # define DSA_F_DSA_BUILTIN_PARAMGEN2 126 > > > > Patches like this are utterly dangerous. As soon as a new upstream > > version defines their own new constant further down, the FIPS patch will > > most likely still apply, but silently introduce a conflict as two > > different constants now have the same value. > > > > Yes! What you have stated is true in general. Fortunately in the case you > pointed to above, this should not be a problem. Those are error codes. When > adding new error codes in openssl, is standard practice that you run "make > errors" which in turn creates all those defines for errors. That is how the > above happened. This doesn't help at all, though. If upstream does a new release and calls "make errors", then releases a tarball with that, our patch just gets statically applied on top of that and thus will *not* adjust the error codes for potential conflicts again. So with that you'd get two constants with the same value. OTOH, if our package build would call "make errors" again, this would mean that (1) we'd have an ABI break (as existing reverse dependencies that use these error codes all need to be rebuilt for the new value, as it's a macro in a public header file), and (2) the patch should not contain this autogenerated part in the first place. > > There is some pointless whitespace change in e. g. crypto/evp/c_alld.c > > which further blow up the patch. > > > > Sorry about that, I thought I had caught all the whitespaces. I can > correct that. Just for avoidance of doubt: Please only clean this up if it's in the Canonical-modified portion of the patch. If that comes from RedHat/SUSE patches, it's magnitudes better and easier for long-term maintenance to import them unmodified (as much as possible) and accept some pointless noise, rather than heavily editing those. That's why I deem it very important to (1) clearly document where these patches originate, and (2) split them up into "taken as-is from https://opensuse.org/whereever" and a separate "canonical modifications to the FIPS patch". > Please see above. I can break into smaller patches for easier > reviewing and bundle with some logic. But in terms of maintenance, > I honestly don't know if it will matter. It is just messy to me, > regardless. Sorry, I have spent some time thinking about it. I can > separate out such that everything under crypto/fips is in one patch, > and all else in another. But they won't be independent of each other > in regards to successfully applying and building. No no, please don't break them apart in arbitrary ways like this. The point is to break them apart by origin, e. g. "taken from the upstream FIPS branch", "taken from RedHat", "Canonical origin". This will make it tremendously easier to review (as the patches which have existed for 10 years in other distros only need a shallow review), maintain (as it's much simpler to update those patches from their original sources when rebasing to a newer upstream version), and understand (as it's clear what the actual Ubuntu delta is towards upstream, RH, and SUSE). Thanks, Martin ** Changed in: openssl (Ubuntu) Status: New => Incomplete -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1553309 Title: [FFe]: Include FIPS 140-2 into openssl package To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/1553309/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs