Classify each externally invoked service before describing the module as operating in an . The decisive questions are whether the service uses an approved or allowed security function or process in an approved manner, whether it needs an , and whether the Cryptographic Module Validation Program (CMVP) lists the same service and indicator. This workflow is for module vendors, product security teams, validation teams, and procurement reviewers; the Cryptographic and Security Testing (CST) laboratory tests and evaluates the module, and CMVP determines validation acceptance.
1
Section 1
Start with a service-by-service inventory
Do not start from a product feature list or a broad statement that the module is in FIPS mode. CMVP Implementation Guidance 2.4.C treats a service as an externally operator-invoked operation or function, and it explains that a service may map to one API call, a group of API calls, or different behavior based on input parameters.
The first workflow step is to list every callable service that can affect cryptographic behavior, including encryption, decryption, signature generation, verification, key establishment, random bit generation, authentication, on-demand self-tests, zeroisation paths, status output, and any service that exposes both approved and non-approved behavior.
Name the service as the operator sees it, not only the internal function name.
Record the algorithm, security function, process, key or critical security parameter (CSP) use, and input parameters that determine whether the service is approved.
Separate services that perform approved security functions from services that only show version, status, or other non-security information.
Keep the service names aligned with the module so reviewers can compare the implementation, evidence pack, and certificate materials.
Establishes that FIPS 140-3 requirements cover cryptographic module specification, interfaces, roles, services, authentication, self-tests, and lifecycle assurance.
roles, services, and authentication
2
Section 2
Classify each service before writing the indicator rule
For each service, decide which CMVP bucket it belongs in. Approved security services use approved or allowed security functions in an approved manner. Some services may run in the even though they do not use a security function, or because a non-approved algorithm is present only with . Services that use non-approved and not-allowed security functions are not available for use in the approved mode.
This classification is not the same as saying the entire product is approved. FIPS 140-3 requires modules conforming to the standard to employ approved security functions, while the CMVP guidance requires the to show approved and non-approved services and the indicators that apply.
Examples make the branches concrete. Showing module version or status is a Group 2 service and does not need an unless another approved service uses it. Proprietary obfuscation can fit the no-security-claimed branch only when the data is treated as unprotected plaintext and the remaining FIPS requirements are met. A password-based key derivation function (PBKDF) service cannot be indicated as approved if the PBKDF implementation lacks required CAVP evidence or self-tests.
Classify the service using the five IG 2.4.C groups: approved security service; specified service with no security function; non-approved algorithm with ; non-approved and not-allowed security service; or non-security action that may run in either mode.
For allowed no-security-claimed use, document why the non-approved algorithm is not being used to meet FIPS 140-3 security requirements.
Do not treat a non-approved security function as a no-security-claimed algorithm. A function that relies on a non-approved algorithm to support a security claim cannot run in the ; the no-security-claimed path is limited to an algorithm whose use is not security relevant and satisfies IG 2.4.A.
Do not use an approved algorithm name by itself as proof that the service is approved; the service context, CAVP evidence, self-tests, and limits matter.
Defines non-approved security functions and explains when non-approved algorithms may be listed as allowed in the approved mode with no security claimed.
Provides the service categories used to separate approved security services, non-security services, allowed no-security-claimed services, and non-approved services.
The indicator must let the operator determine whether an approved security service is in use. CMVP guidance gives return codes, log messages, status output, and global or shared indicators as examples, but it does not prescribe one design. A global indicator works only when it still identifies approved service use unambiguously.
A description can explain how to interpret an indicator, but the description alone does not satisfy the indicator requirement. If approved and non-approved security services can run concurrently, or if different inputs can change whether a service is approved, a broad global indicator is not enough unless it still unambiguously identifies the approved security service.
For each approved security service, record the indicator value or condition, status interface, timing, and operator action needed to retrieve or recognize it.
Use per-service indicators when the same module can perform approved and non-approved security services at the same time.
Avoid identical indicator values for approved and non-approved cryptographic services because that prevents unambiguous differentiation.
Write the interpretation next to the implemented indicator, not as a substitute for the implemented indicator.
Supports linking the indicator workflow to cryptographic module interfaces and operational state requirements.
cryptographic module interfaces
4
Section 4
Workflow table for approved and non-approved services
Keep one row per service so procurement, lab, engineering, and audit reviewers can see the decision without reading the entire .
Row fields: service name; operator-facing entry point; algorithm or process used; approved, allowed, no-security-claimed, or non-approved classification; CAVP certificate or evidence reference where applicable; key or CSP sharing result; indicator value and interface; location; reviewer decision.
The module engineer owns the implemented service and indicator, the cryptography owner verifies the algorithm and key or CSP treatment, and the owner keeps the published service rows aligned. The row outcome should say approved security service, allowed in without an indicator, allowed with and plaintext treatment, unavailable in approved mode, or held for CST laboratory review.
Decision outcomes: approved security service with indicator; allowed in with ; non-security service with no indicator needed; not available in approved mode; unresolved pending lab or CMVP review.
Put services that use the same algorithm but different parameters in separate rows when approval depends on parameter choice.
Mark non-approved algorithms that obfuscate CSPs as plaintext-treatment evidence unless an approved protection method covers the CSP.
Record any key or CSP sharing between approved and non-approved algorithms as a blocking issue unless the CMVP guidance expressly supports the path.
Keep unresolved rows out of public FIPS claims until the indicator, , and validation evidence line up.
Grounds the workflow in FIPS 140-3 module-level design and implementation requirements rather than product marketing claims.
secure design and implementation
5
Section 5
Evidence checks before relying on the approved-mode result
Before relying on the result, compare the service row against the , selected CAVP capabilities, applicable self-tests, operational environment, and any enforced configuration that prevents non-approved use. An approved algorithm does not make every use approved: the service context, parameter choices, security strength, key handling, and any usage restriction still apply.
The operator also has a role: CMVP guidance says the operator may need to retrieve, recognize, and act on the service indicator. For customer-facing or procurement evidence, show how a human operator, calling application, client process, or another module can obtain the indicator in the deployed configuration.
Verify the final contains the complete approved and non-approved service lists and describes each applicable indicator, as required by IG 2.4.C.
Check that CAVP certificate evidence and required self-tests support the approved implementation claimed for the service.
Confirm module configuration prevents non-approved service use where a global approved-service indicator depends on that configuration.
Document how the deployed operator retrieves the indicator, especially for APIs, status interfaces, logs, and concurrent service execution.
Public NIST search interface for checking algorithm validation certificates that support approved security service evidence.
6
Section 6
Mistakes that break approved and non-approved mode evidence
Most failures come from collapsing service-level evidence into a single product-level statement. The safer pattern is to say exactly which service is approved, which indicator proves it, which row explains it, and which non-approved behavior is blocked, allowed with , or outside the .
Be especially careful with services that can change approval status based on parameters, service combinations, concurrent execution, or operator-controlled use outside the module. Those cases need clearer indicators and interpretation than modules that only expose approved services.
Do not call a module service approved merely because one underlying algorithm appears on a validation certificate.
Do not rely on a FIPS 140-2-style global mode light when the module can run approved and non-approved security services concurrently.
Do not list a non-approved algorithm as allowed in unless its purpose is not security relevant and its key or CSP use satisfies the CMVP guidance.
Do not use the to explain away an ambiguous indicator; the implemented indicator must let the operator distinguish the approved security service.
Grounds the main failure modes for this workflow: ambiguous indicators, unsupported no-security-claimed use, missing CAVP or self-test support, and overbroad global indicators.
Grounds the service inventory step by explaining that services are externally invoked functions and may not match API functions one-to-one.
Provides the service categories used to separate approved security services, non-security services, allowed no-security-claimed services, and non-approved services.
Grounds the indicator design rules, including per-service indicators, acceptable indicator forms, and limits on global module-level indicators.
Show 2 more
Supports row-level service indicators and Security Policy documentation for approved and non-approved services.
Grounds evidence checks for Security Policy indicator descriptions, CAVP support, self-tests, and operator responsibility for using the indicator.
Primary official source for non-approved security functions, allowed no-security-claimed use, approved security service indicators, and Security Policy evidence.
Grounds the main failure modes for this workflow: ambiguous indicators, unsupported no-security-claimed use, missing CAVP or self-test support, and overbroad global indicators.
Defines non-approved security functions and explains when non-approved algorithms may be listed as allowed in the approved mode with no security claimed.
Supports the workflow fields for non-approved algorithm purpose, no-security-claimed treatment, plaintext CSP handling, and key or CSP sharing limits.