You cannot tell anything related to FIPS 140 by looking at a key or by looking at a file. FIPS 140 doesn't say anything about the choice of encryption algorithm, other than requiring that all every encryption algorithm must be “approved security function” (as defined in the glossary) and there must be at least 1.

FIPS 140 is all about the module, i.e. the software or hardware component that performs the encryption and decryption. The standard sets security requirements for how keys are stored, how access to keys is controlled and so on.

If you have an encrypted file, you cannot tell whether it was encrypted by a FIPS 140-compliant module or not: an encrypted file looks like any other encrypted file produced from the same plaintext with the same key no matter who or what performed the encryption. If you have a key, you cannot tell whether that key is used in a FIPS 140-compliant module or not; although if you can access the key outside the module, it's likely that either the module isn't compliant — because it shouldn't let keys escape — or an authorized operator misused the module and let the key leak. There is only a way to be sure that a key or encrypted file did not come from a FIPS 140-compliant module, which is if the key or algorithm is not one of the approved security functions (as defined in other standards).

FIPS 140 compliance for encrypted files
I am running postgresql 9.3.4. I have a table with 3 fields:

id   name  addr
---  ----  ----
1    n1    ad1
2    n2    ad2
...


I need to move the data to a new table with fields like:

id   data
---  ----
1    {'name': 'n1', 'addr': 'ad1'}
2    {'name': 'n2', 'addr': 'ad2'}
...


row_to_json is not the solution for me as SELECT t.id, row_to_json(t) as data FROM (select id, name, addr from myt) t adds id to the result as well. Is there a way to choose the fields I need (name &amp; addr) in my data field?
