Re: Need help on self test post failure - programmatically load FIPS provider
Matt Caswell <[email protected]>
| Newsgroups | gmane.comp.encryption.openssl.user |
|---|---|
| Message-ID | <[email protected]> |
What do you get by loading the provider via the "openssl list" command, i.e. what is the output from: $ openssl list --providers -provider fips -provider base Matt On 24/05/2024 15:48, murugesh pitchaiah wrote: > Thanks Neil for your response. Please find more details below. > > Yes we run fipsinstall and then edit the fipsmodule.conf file to remove > the 'activate=1' line. Then try to programmatically load FIPS provider. > Here are the details steps. > Once the device boots up , The device has fipsmoudle.cnfpresent in > /usr/lib/ssl-3 which does not have install_mac and insatll_status. We > have edited openssl.cnf file as mentioned below: > > |.include /usr/local/ssl/fipsmodule.cnf| > > |[openssl_init]| > > |providers = provider_sect| > > | > | > > |[provider_sect]| > > |fips = fips_sect| > > |base = base_sect| > > | > | > > |[base_sect]| > > |activate = 1| > > We executed below command to install which also > generates/updates fipsmodule.cnf file > > openssl fipsinstall -module /usr/lib/ossl-modules/fips.so -out > /usr/lib/ssl-3/fipsmodule.cnf > > The above command successfully executed and updated install-status to > fipsmodule.cnf file. The resultant fipsmodule.cnf file is as follows: > > [fips_sect] > > activate = 1 > > install-version = 1 > > conditional-errors = 1 > > security-checks = 1 > > module-mac = > 5E:4A:02:9F:6E:26:2F:FE:FD:4D:45:6A:7E:D1:18:18:59:9C:04:56:50:6C:59:FC:3B:2F:BE:39:D4:79:08:E3 > > install-mac = > 41:9C:38:C2:8F:59:09:43:2C:AA:2F:58:36:2D:D9:04:F9:6C:56:8B:09:E0:18:3A:2E:D6:CC:69:05:04:E1:11 > > install-status = INSTALL_SELF_TEST_KATS_RUN > > Then we removed the line "activate = 1" from fipsmodule.cnf file. After > this we triggered the programatically load fips code, which caused the > error: > > >/*80D1CD65667F0000:error:1C8000D4:Provider > routines:SELF_TEST_post:invalid / > > >/state:../openssl-3.0.9/providers/fips/self_test.c:262:* / > > >/*80D1CD65667F0000:error:1C8000D8:Provider / > > >/routines:OSSL_provider_init_int:self test post / > > >/failure:../openssl-3.0.9/providers/fips/fipsprov.c:707:* / > > >/*80D1CD65667F0000:error:078C0105:common libcrypto / > > >/routines:provider_init:init / > > >/fail:../openssl-3.0.9/crypto/provider_core.c:932:name=fips* / > > >/*Error loading FIPS provider.*/ > > > Please share if we are missing something. Thanks in advance. > > > Regards, > > Murugesh > > > > On Fri, May 24, 2024 at 6:55 PM Neil Horman <[email protected] > <mailto:[email protected]>> wrote: > > I assume that, after building the openssl library you ran openssl > fipsinstall? i.e. you're not just using a previously generated > fipsmodule.cnf file? The above errors initially seem like self > tests failed on the fips provider load, suggesting that the > module-mac or install-mac is incorrect in your config > 'Neil > > On Fri, May 24, 2024 at 2:05 AM murugesh pitchaiah > <[email protected] <mailto:[email protected]>> > wrote: > > Hi, > > Need your help on using openssl fips provider > programmatically with openssl 3.0.9. > > Error seen: > > *80D1CD65667F0000:error:1C8000D4:Provider > routines:SELF_TEST_post:invalid > state:../openssl-3.0.9/providers/fips/self_test.c:262:* > *80D1CD65667F0000:error:1C8000D8:Provider > routines:OSSL_provider_init_int:self test post > failure:../openssl-3.0.9/providers/fips/fipsprov.c:707:* > *80D1CD65667F0000:error:078C0105:common libcrypto > routines:provider_init:init > fail:../openssl-3.0.9/crypto/provider_core.c:932:name=fips* > *Error loading FIPS provider.* > > * > * > Steps: > > Followed the steps @ > https://www.openssl.org/docs/man3.0/man7/fips_module.html > <https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.openssl.org%2Fdocs%2Fman3.0%2Fman7%2Ffips_module.html&data=05%7C02%7Cmpitchaiah%40extremenetworks.com%7Caf52a4e39993457c861108dc7bb5aaa9%7Cfc8c2bf6914d4c1fb35246a9adb87030%7C0%7C0%7C638521267407330615%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=w2QJpyWjNlvURzzptRoMSWDUkPSwgmttzBDysV5B4Cs%3D&reserved=0> > > #include <openssl/provider.h> > > int main(void) > > { > > OSSL_PROVIDER *fips; > > OSSL_PROVIDER *base; > > fips = OSSL_PROVIDER_load(NULL, "fips"); > > if (fips == NULL) { > > printf("Failed to load FIPS provider\n"); > > exit(EXIT_FAILURE); > > } > > base = OSSL_PROVIDER_load(NULL, "base"); > > if (base == NULL) { > > OSSL_PROVIDER_unload(fips); > > printf("Failed to load base provider\n"); > > exit(EXIT_FAILURE); > > } > > /* Rest of application */ > > OSSL_PROVIDER_unload(base); > > OSSL_PROVIDER_unload(fips); > > exit(EXIT_SUCCESS); > > } > > > More info: > > > /usr/bin # openssl version -d > > OPENSSLDIR: "/usr/lib/ssl-3" > > /exos/bin # openssl version -a > > OpenSSL 3.0.9 30 May 2023 (Library: OpenSSL 3.0.9 30 May 2023) > > built on: Tue May 30 12:31:57 2023 UTC > > platform: linux-x86_64 > > options: bn(64,64) > > compiler: x86_64-poky-linux-gcc -m64 > -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat > -Wformat-security -Werror=format-security > --sysroot=recipe-sysroot -O2 -pipe -g > -feliminate-unused-debug-types -fmacro-prefix-map= > -fdebug-prefix-map= > -fdebug-prefix-map= > -fdebug-prefix-map= -DOPENSSL_USE_NODELETE -DL_ENDIAN > -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG > > OPENSSLDIR: "/usr/lib/ssl-3" > > ENGINESDIR: "/usr/lib/engines-3" > > MODULESDIR: "/usr/lib/ossl-modules" > > Seeding source: os-specific > > CPUINFO: N/A > > > Attached the openssl and fips conf. > > > Could you guys please check and share what is missing here? Any > help would be appreciated. > > > Thanks, > > Murugesh > >