Page MenuHome GnuPG
Feed Advanced Search

Mar 21 2023

werner assigned T6388: libgcrypt: gpgrt-config not found in $PREFIX if there are no less-preferred options found via $CC to gniibe.

@gniibe: Would you mind to look at this?

Mar 21 2023, 3:24 PM · gpgrt, patch, libgcrypt, Bug Report
gniibe claimed T6417: FIPS service indicator regarding the public key algorithm flags and objects.
Mar 21 2023, 11:25 AM · libgcrypt, FIPS

Mar 20 2023

Jakuje created T6417: FIPS service indicator regarding the public key algorithm flags and objects.
Mar 20 2023, 3:41 PM · libgcrypt, FIPS

Mar 8 2023

gniibe moved T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt from Backlog to Next on the FIPS board.
Mar 8 2023, 2:39 AM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS
gniibe changed the status of T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt from Open to Testing.

Thank you.
Applied to both (master and 1.10).

Mar 8 2023, 2:39 AM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS
gniibe changed the status of T6397: PCT failures inconsistency in regards to the FIPS error state from Open to Testing.
Mar 8 2023, 1:49 AM · libgcrypt, FIPS, Bug Report
gniibe changed the status of T6396: the gcry_pk_hash_sign/verify operates in FIPS non-operational mode from Open to Testing.
Mar 8 2023, 1:48 AM · libgcrypt, FIPS, Bug Report
gniibe changed the status of T6394: FIPS requires running PCT tests unconditionally from Open to Testing.
Mar 8 2023, 1:48 AM · FIPS, libgcrypt, Bug Report
gniibe changed the status of T6393: DRBG with SHA384 is no longer allowed in FIPS mode (and looks like impossible to enable anyway) from Open to Testing.
Mar 8 2023, 1:48 AM · FIPS, libgcrypt, Bug Report
gniibe moved T6397: PCT failures inconsistency in regards to the FIPS error state from Next to Ready for release on the FIPS board.
Mar 8 2023, 1:47 AM · libgcrypt, FIPS, Bug Report
gniibe moved T6396: the gcry_pk_hash_sign/verify operates in FIPS non-operational mode from Next to Ready for release on the FIPS board.
Mar 8 2023, 1:47 AM · libgcrypt, FIPS, Bug Report
gniibe moved T6394: FIPS requires running PCT tests unconditionally from Next to Ready for release on the FIPS board.
Mar 8 2023, 1:47 AM · FIPS, libgcrypt, Bug Report
gniibe moved T6393: DRBG with SHA384 is no longer allowed in FIPS mode (and looks like impossible to enable anyway) from Next to Ready for release on the FIPS board.
Mar 8 2023, 1:47 AM · FIPS, libgcrypt, Bug Report

Mar 7 2023

gniibe moved T6393: DRBG with SHA384 is no longer allowed in FIPS mode (and looks like impossible to enable anyway) from Backlog to Next on the FIPS board.
Mar 7 2023, 7:34 AM · FIPS, libgcrypt, Bug Report
gniibe claimed T6393: DRBG with SHA384 is no longer allowed in FIPS mode (and looks like impossible to enable anyway).

Applied your patch (from gitlab) to both (master and 1.10).

Mar 7 2023, 7:34 AM · FIPS, libgcrypt, Bug Report
gniibe moved T6396: the gcry_pk_hash_sign/verify operates in FIPS non-operational mode from Backlog to Next on the FIPS board.
Mar 7 2023, 7:12 AM · libgcrypt, FIPS, Bug Report
gniibe claimed T6396: the gcry_pk_hash_sign/verify operates in FIPS non-operational mode.

Applied to both (1.10 and master).

Mar 7 2023, 7:11 AM · libgcrypt, FIPS, Bug Report
gniibe added a comment to T6393: DRBG with SHA384 is no longer allowed in FIPS mode (and looks like impossible to enable anyway).

You are right, there is no way to use DRBG with SHA384 by libgcrypt.

Mar 7 2023, 3:53 AM · FIPS, libgcrypt, Bug Report
gniibe moved T6397: PCT failures inconsistency in regards to the FIPS error state from Backlog to Next on the FIPS board.
Mar 7 2023, 3:43 AM · libgcrypt, FIPS, Bug Report
gniibe moved T6394: FIPS requires running PCT tests unconditionally from Backlog to Next on the FIPS board.
Mar 7 2023, 3:43 AM · FIPS, libgcrypt, Bug Report
gniibe claimed T6397: PCT failures inconsistency in regards to the FIPS error state.

Applied to both (1.10 and master).

Mar 7 2023, 3:42 AM · libgcrypt, FIPS, Bug Report
gniibe claimed T6394: FIPS requires running PCT tests unconditionally.

Applied to both (of 1.10 and master).

Mar 7 2023, 3:42 AM · FIPS, libgcrypt, Bug Report

Mar 6 2023

tobhe added a comment to T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt.

Right, thanks for the review! Updated patches below.

Mar 6 2023, 5:11 PM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS
Jakuje added a comment to T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt.

Actually, the same issue is in the mac case, which I missed on first couple of reviews:

-  enum gcry_mac_algos alg = va_arg (arg_ptr, enum gcry_cipher_algos);
+  enum gcry_mac_algos alg = va_arg (arg_ptr, enum gcry_mac_algos);
Mar 6 2023, 5:01 PM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS
Jakuje added a comment to T6394: FIPS requires running PCT tests unconditionally.

We discussed this further with the lab and there are more problematic flags that we need to "cut" and we can not do that always in the code as for example the RFC6979 (deterministic ECDSA signatures) are not allowed in the current version of the FIPS documents, but it is used in the selftests (which is weirdly enough allowed) so we just need to mark it unapproved. Lets discuss this further tomorrow.

Mar 6 2023, 4:49 PM · FIPS, libgcrypt, Bug Report
Jakuje added a comment to T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt.

Going through the code once more, there is one typo to be fixed:

+_gcry_fips_indicator_md (va_list arg_ptr)
+{
+  enum gcry_md_algos alg = va_arg (arg_ptr, enum gcry_cipher_algos);

should say

+_gcry_fips_indicator_md (va_list arg_ptr)
+{
+  enum gcry_md_algos alg = va_arg (arg_ptr, enum gcry_md_algos);

otherwise ack.

Mar 6 2023, 4:46 PM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS

Mar 2 2023

werner triaged T6394: FIPS requires running PCT tests unconditionally as Normal priority.

Agreed

Mar 2 2023, 11:46 AM · FIPS, libgcrypt, Bug Report
werner triaged T6393: DRBG with SHA384 is no longer allowed in FIPS mode (and looks like impossible to enable anyway) as Normal priority.
Mar 2 2023, 11:44 AM · FIPS, libgcrypt, Bug Report
werner added a comment to T6397: PCT failures inconsistency in regards to the FIPS error state.

I think the patch is okay.

Mar 2 2023, 11:41 AM · libgcrypt, FIPS, Bug Report
Jakuje created T6397: PCT failures inconsistency in regards to the FIPS error state.
Mar 2 2023, 9:46 AM · libgcrypt, FIPS, Bug Report

Mar 1 2023

Jakuje created T6396: the gcry_pk_hash_sign/verify operates in FIPS non-operational mode.
Mar 1 2023, 9:07 PM · libgcrypt, FIPS, Bug Report
Jakuje added a comment to T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt.

We came to the same conclusion -- the SHAKE digests are not usable for sign/verify operations the way how it is implemented now. But it would be more clear if we would have explicit allow-list.

Mar 1 2023, 7:57 PM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS
Jakuje created T6394: FIPS requires running PCT tests unconditionally.
Mar 1 2023, 3:57 PM · FIPS, libgcrypt, Bug Report
Jakuje created T6393: DRBG with SHA384 is no longer allowed in FIPS mode (and looks like impossible to enable anyway).
Mar 1 2023, 3:36 PM · FIPS, libgcrypt, Bug Report
tobhe added a comment to T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt.

After consulting with our certs lab and studying the code I think SHAKE should not be a problem for now. All of the _gcry_digest_spec_shakeXXX seem to neither have an mdlen nor a read() function. pk_sign and pk_verify seem to both call md_read() which should fail because of the missing read function, kdf checks _gcry_md_get_algo_dlen() which should also disallow SHAKE.

Mar 1 2023, 12:55 PM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS

Feb 27 2023

tobhe added a comment to T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt.

Good catch. A similar problem might arise with SHA384 according to section D.R which states

Feb 27 2023, 3:15 PM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS
neverpanic added a comment to T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt.

One potential pitfall here is that SHAKE-128 and SHAKE-256 must not be available for use in signature operations. That's because https://csrc.nist.gov/CSRC/media/Projects/cryptographic-module-validation-program/documents/fips%20140-3/FIPS%20140-3%20IG.pdf section C.C disallows the use of SHAKE in higher-level algorithms:

Feb 27 2023, 3:01 PM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS
neverpanic added a comment to T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt.

These look good to me.

Feb 27 2023, 1:45 PM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS
tobhe added a comment to T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt.

Right, we have received the same feedback from our cert lab but I haven't found time to update the bug yet. Here are the updated patches:

Feb 27 2023, 12:19 PM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS
neverpanic added a comment to T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt.

This marks GCRY_MD_CRC32, GCRY_MD_CRC24_RFC2440 and GCRY_MD_CRC32_RFC1510 as approved.

Feb 27 2023, 11:44 AM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS

Feb 24 2023

acollier created T6388: libgcrypt: gpgrt-config not found in $PREFIX if there are no less-preferred options found via $CC .
Feb 24 2023, 12:21 PM · gpgrt, patch, libgcrypt, Bug Report
werner triaged T6384: libgcrypt link error if cipher chacha20 is not included as Normal priority.

Thanks

Feb 24 2023, 9:05 AM · patch, libgcrypt, Bug Report

Feb 23 2023

acollier added a comment to T6384: libgcrypt link error if cipher chacha20 is not included.

Feb 23 2023, 7:07 PM · patch, libgcrypt, Bug Report
acollier created T6384: libgcrypt link error if cipher chacha20 is not included.
Feb 23 2023, 6:59 PM · patch, libgcrypt, Bug Report

Feb 16 2023

werner triaged T6376: FIPS 140-3: add explicit indicators for md and mac to unblock MD5 in apt as Low priority.
Feb 16 2023, 11:43 AM · libgcrypt, Feature Request, Ubuntu, Debian, FIPS

Jan 24 2023

werner closed T6283: could the newer jq255 Elliptic Curve be interesting to implement? as Wontfix.

Well, I do not yet see a use case for this. The current rush towards PQC makes it unlikely that newer curves will get in widespread use. Iff we have a large application which requires this curves, we can reconsider,

Jan 24 2023, 9:53 AM · libgcrypt, Feature Request

Jan 19 2023

werner removed a project from T5556: Use of offsetof is better for allocation of flexible array: gnupg (gpg23).
Jan 19 2023, 4:49 PM · gnupg24, gpgme, libgcrypt
werner removed a project from T5964: gnupg should use the KDFs implemented in libgcrypt: gnupg (gpg23).
Jan 19 2023, 4:47 PM · gnupg26, FIPS, libgcrypt, Feature Request
werner closed T6349: need to add the judgment of invalid handles in _gcry_md_ctl? as Wontfix.

Sorry, but we can't check all parameters. Why only check that one and not the others or invalid values for ctx. You may do such checks in an interactive environment but not for a general library.

Jan 19 2023, 9:27 AM · libgcrypt

Jan 18 2023

zhengxiaoxiaoGithub added a comment to T6349: need to add the judgment of invalid handles in _gcry_md_ctl?.

Jan 18 2023, 11:10 AM · libgcrypt
zhengxiaoxiaoGithub created T6349: need to add the judgment of invalid handles in _gcry_md_ctl?.
Jan 18 2023, 11:09 AM · libgcrypt

Jan 8 2023

werner added a comment to T5818: Release Libgcrypt 1.8.10.

See T6340 in case of build problems.

Jan 8 2023, 2:02 PM · Release Info, libgcrypt

Jan 5 2023

werner closed T5818: Release Libgcrypt 1.8.10 as Resolved.
Jan 5 2023, 5:05 PM · Release Info, libgcrypt
werner triaged T6335: Release Libgcrypt 1.8.11 as Low priority.
Jan 5 2023, 4:54 PM · libgcrypt, Release Info

Dec 16 2022

werner removed a project from T6311: A core dump occurs in the _gcry_mpi_normalize function: Bug Report.
Dec 16 2022, 9:23 AM · libgcrypt
werner closed T6311: A core dump occurs in the _gcry_mpi_normalize function as Resolved.
Dec 16 2022, 9:23 AM · libgcrypt
zhengxiaoxiaoGithub added a comment to T6311: A core dump occurs in the _gcry_mpi_normalize function.

Thank you for your reply! I'll modify my testcase

Dec 16 2022, 7:55 AM · libgcrypt
gniibe added a comment to T6311: A core dump occurs in the _gcry_mpi_normalize function.

I figured out the situation.

Dec 16 2022, 4:18 AM · libgcrypt
gniibe added a comment to T6311: A core dump occurs in the _gcry_mpi_normalize function.

Ah, I found that we have very bad example use case in tests/t-mpi-point.c. This should be fixed at first.

Dec 16 2022, 3:52 AM · libgcrypt
gniibe added a comment to T6311: A core dump occurs in the _gcry_mpi_normalize function.
Dec 16 2022, 3:09 AM · libgcrypt
gniibe claimed T6311: A core dump occurs in the _gcry_mpi_normalize function.

Thank you for your report. IIUC, it is called unexpected way, like invalid/wrong KEYPARMS. Possibly, KEYPARMS == NULL, or something like that.

Dec 16 2022, 2:56 AM · libgcrypt

Dec 15 2022

zhengxiaoxiaoGithub added a comment to T6311: A core dump occurs in the _gcry_mpi_normalize function.

When I look at the stack information, I find that because E->p is not assigned in the function mpi_ec_get_elliptic_curve(), this produces a null pointer,but it didn't get to the branch : if (errc) goto leave;

Dec 15 2022, 10:21 AM · libgcrypt
werner added a comment to T6311: A core dump occurs in the _gcry_mpi_normalize function.

If you pass NULL to that function, the calling code is wrong. No need for an explicit check in nomralize - check should be done in the public API (if at all).

Dec 15 2022, 9:46 AM · libgcrypt
zhengxiaoxiaoGithub added a comment to T6311: A core dump occurs in the _gcry_mpi_normalize function.

I tried to fix the segmentation fault, so I added a null pointer check at the end to protect it.

Dec 15 2022, 8:46 AM · libgcrypt

Dec 14 2022

zhengxiaoxiaoGithub created T6311: A core dump occurs in the _gcry_mpi_normalize function.
Dec 14 2022, 2:11 PM · libgcrypt

Dec 12 2022

gniibe changed the status of T6257: Without gpg-error-config installed (libgpg-error-1.46) libgcrypt-1.10.1 does not configure from Open to Testing.
Dec 12 2022, 9:29 AM · MacOS, libgcrypt, gpgrt

Nov 29 2022

pmgdeb added a comment to T6291: FIPS: dirmngr CRL hash uses MD5.

Sure, but this will need adaption in FIPS mode as it fails with:

Nov 29 2022, 2:55 PM · libgcrypt, gnupg (gpg23), Bug Report
pmgdeb added a comment to T6291: FIPS: dirmngr CRL hash uses MD5.

Patch using SHA1 instead of MD5.

Nov 29 2022, 2:50 PM · libgcrypt, gnupg (gpg23), Bug Report
werner closed T6291: FIPS: dirmngr CRL hash uses MD5 as Wontfix.

There are other uses of MD5 and thus we can't disable it. For example gpgsm also lists the MD5 fingerprint of certificates because they are still in use at some places.

Nov 29 2022, 2:50 PM · libgcrypt, gnupg (gpg23), Bug Report
pmgdeb created T6291: FIPS: dirmngr CRL hash uses MD5.
Nov 29 2022, 2:13 PM · libgcrypt, gnupg (gpg23), Bug Report
ikloecker added a comment to T6271: The old FSF address in libgcrypt source code.

Well, the modern way, recommended by the FSFE, for license notices in source files is SPDX instead of verbose license notices. https://reuse.software/

Nov 29 2022, 9:09 AM · Documentation, libgcrypt, Bug Report
gniibe added a comment to T6271: The old FSF address in libgcrypt source code.

Modern way for license notice seems use of URL: https://www.gnu.org/prep/maintain/maintain.html#License-Notices-for-Code
https://www.gnu.org/licenses/gpl-howto.html

Nov 29 2022, 2:46 AM · Documentation, libgcrypt, Bug Report

Nov 22 2022

werner added projects to T6283: could the newer jq255 Elliptic Curve be interesting to implement?: Feature Request, libgcrypt.
Nov 22 2022, 1:18 PM · libgcrypt, Feature Request
sergi added a member for libgcrypt: sergi.
Nov 22 2022, 11:57 AM

Nov 18 2022

gniibe moved T6127: FIPS 140-3 final review comments from Next to Ready for release on the FIPS board.
Nov 18 2022, 2:07 AM · FIPS, libgcrypt, Bug Report
gniibe reopened T5512: Implement service indicators as "Testing".

I put rCc34c9e70055e: fips: Mark AES key wrapping as approved. under this task, so that it can be referred in the release note.

Nov 18 2022, 2:06 AM · Feature Request, FIPS, libgcrypt
gniibe added a comment to T6039: FIPS: Allow salt=NULL (or shorter salt) for HKDF.

Let me describe the changes recorded in this task.

Nov 18 2022, 2:02 AM · backport, libgcrypt, FIPS

Nov 10 2022

werner triaged T6271: The old FSF address in libgcrypt source code as Low priority.

Thanks. There should also be SPDX indentifiers everywhere.

Nov 10 2022, 12:25 PM · Documentation, libgcrypt, Bug Report
Jakuje created T6271: The old FSF address in libgcrypt source code.
Nov 10 2022, 11:57 AM · Documentation, libgcrypt, Bug Report

Nov 7 2022

gniibe changed the status of T6217: sha3: wrong results for large inputs from Open to Testing.
Nov 7 2022, 7:14 AM · libgcrypt, FIPS, Bug Report

Nov 2 2022

gniibe moved T5964: gnupg should use the KDFs implemented in libgcrypt from Next to Ready for release on the FIPS board.
Nov 2 2022, 9:36 AM · gnupg26, FIPS, libgcrypt, Feature Request
gniibe moved T6217: sha3: wrong results for large inputs from Next to Ready for release on the FIPS board.
Nov 2 2022, 9:36 AM · libgcrypt, FIPS, Bug Report
gniibe moved T6217: sha3: wrong results for large inputs from Backlog to Next on the FIPS board.
Nov 2 2022, 9:36 AM · libgcrypt, FIPS, Bug Report

Oct 28 2022

jukivili updated the task description for T4460: libgcrypt performance TODOs.
Oct 28 2022, 6:29 PM · libgcrypt
jukivili added a comment to T4485: Add AEAD mode AES-GCM-SIV to libgcrypt (RFC 8452).

Yep. Closed now.

Oct 28 2022, 5:10 PM · Feature Request, libgcrypt
jukivili closed T4485: Add AEAD mode AES-GCM-SIV to libgcrypt (RFC 8452), a subtask of T4486: Add AEAD mode AES-SIV to libgcrypt (RFC 5297), as Resolved.
Oct 28 2022, 5:10 PM · Feature Request, libgcrypt
jukivili closed T4485: Add AEAD mode AES-GCM-SIV to libgcrypt (RFC 8452) as Resolved.
Oct 28 2022, 5:10 PM · Feature Request, libgcrypt
werner added a comment to T4485: Add AEAD mode AES-GCM-SIV to libgcrypt (RFC 8452).

@jukivili: This has been released with 1.10.0 - shall we close this bug?

Oct 28 2022, 3:42 PM · Feature Request, libgcrypt

Oct 27 2022

jukivili closed T6242: libgcrypt: optimize ECB? (as it may be used to estimate library crypto performance) as Resolved.
Oct 27 2022, 5:07 AM · libgcrypt, Feature Request

Oct 24 2022

werner triaged T6242: libgcrypt: optimize ECB? (as it may be used to estimate library crypto performance) as Low priority.

Go ahead if you want to do that.

Oct 24 2022, 7:19 AM · libgcrypt, Feature Request
debohman added a comment to T6257: Without gpg-error-config installed (libgpg-error-1.46) libgcrypt-1.10.1 does not configure.

Thank you. I am glad that it is already resolved.

Oct 24 2022, 6:40 AM · MacOS, libgcrypt, gpgrt
gniibe triaged T6257: Without gpg-error-config installed (libgpg-error-1.46) libgcrypt-1.10.1 does not configure as Normal priority.
Oct 24 2022, 6:37 AM · MacOS, libgcrypt, gpgrt
gniibe added a comment to T6257: Without gpg-error-config installed (libgpg-error-1.46) libgcrypt-1.10.1 does not configure.

Will this be in the next release of libgcrypt?

Oct 24 2022, 6:17 AM · MacOS, libgcrypt, gpgrt
debohman added a comment to T6257: Without gpg-error-config installed (libgpg-error-1.46) libgcrypt-1.10.1 does not configure.

Okay. So, I removed gpg-error-config, updated libgcrypt/m4/gpg-error.m4, and then rebuilt configure. And, gcrypt configures and builds.

Oct 24 2022, 5:33 AM · MacOS, libgcrypt, gpgrt
gniibe added a comment to T6257: Without gpg-error-config installed (libgpg-error-1.46) libgcrypt-1.10.1 does not configure.

Thank you for the information.

Oct 24 2022, 5:06 AM · MacOS, libgcrypt, gpgrt
debohman added a comment to T6257: Without gpg-error-config installed (libgpg-error-1.46) libgcrypt-1.10.1 does not configure.

Actually, it looks as if libgpg-error-1.46 already has that fix.

Oct 24 2022, 5:03 AM · MacOS, libgcrypt, gpgrt
gniibe added a comment to T6257: Without gpg-error-config installed (libgpg-error-1.46) libgcrypt-1.10.1 does not configure.

Thank you for your quick reply.

Oct 24 2022, 4:51 AM · MacOS, libgcrypt, gpgrt
debohman added a comment to T6257: Without gpg-error-config installed (libgpg-error-1.46) libgcrypt-1.10.1 does not configure.

Yes, it is on macOS.

Oct 24 2022, 4:41 AM · MacOS, libgcrypt, gpgrt
gniibe claimed T6257: Without gpg-error-config installed (libgpg-error-1.46) libgcrypt-1.10.1 does not configure.

From the information in gpg-error.pc, I think it's on macOS.

Oct 24 2022, 4:35 AM · MacOS, libgcrypt, gpgrt

Oct 20 2022

Jakuje added a comment to T6039: FIPS: Allow salt=NULL (or shorter salt) for HKDF.

In regards to this issue, we were also notified that the MD API using gcry_md_setkey() can be used to calculate HMACs and it does not have the needed input key length limitation. From the discussion here I read that we would like to keep the internal usage still available so my proposal would be to to add similar check as in gcry_mac_setkey() into the above function. Together with the revert, it is available in the following merge request:

Oct 20 2022, 6:33 PM · backport, libgcrypt, FIPS