> On Feb 24, 2015, at 9:42 PM, jone...@teksavvy.com wrote: > > On Tue, 24 Feb 2015 16:16:17 +0000 > "Dr. Stephen Henson" <st...@openssl.org> wrote: > >> On Tue, Feb 24, 2015, jonetsu wrote: > >>> Hello, >>> >>> To grasp how FIPS methods are called, and following one method >>> as an example, HMAC_Update() in hmac.c, we can see that if FIPS >>> mode is active then FIPS_hmac_update() will be called. This is >>> fine although searching the sources for the physical definiton of >>> FIPS_hmac_update() does not yield any results. How does the >>> symbolic links function, what ends up being executed in this case >>> and through which path ? >> >> Function names get changed through fips/fipssyms.h in the FIPS module >> source. > > Yes, for instance there is: > > #define HMAC_Update FIPS_hmac_update > > My question is about not having found FIPS_hmac_update. If it is > called, then where is it ? May sound like a simple question, although > grep did not return any actual method.
You’ll find it in the FIPS Object Module. But in the source for the FIPS Object Module, it’s called HMAC_Update. You just need to read the table backwards. If you want to understand why, think about it a moment. The module is mostly just a specific, tested, version of OpenSSL’s libcrypto (with extra fluff added, and some stuff removed*). It was pretty simple** to just keep the source identical (with appropriate #ifdef to control adding in the fluff and removing other things), and then rename all the symbols in the result to avoid duplicate symbols. It may make it a little harder to follow after the fact, but it’s really not that hard — HMAC_Update() in your FIPS-capable libcrypto will invoke the renamed HMAC_Update() in the FIPS Object Module when operating in FIPS mode. Steve Marquess: Is the document (which IIRC, you published back before the first validation) on how/why the FIPS Object Module was coded still available somewhere? If so, that’d probably be a good starting point for people who post questions like this. It’s certainly not something that’s easy to figure out if one doesn’t already have an idea of what’s going on. :) TOM * That’s probably not the best way to put it, it’s certainly not precise. :) ** Says a guy who in no way contributed to that effort. :) > _______________________________________________ > openssl-users mailing list > To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users _______________________________________________ openssl-users mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users