Computer Security Resource Center

Computer Security Resource Center

Computer Security
Resource Center

Cryptographic Algorithm Validation Program

Project Overview

The NIST Cryptographic Algorithm Validation Program (CAVP) provides validation testing of FIPS-approved and NIST-recommended cryptographic algorithms and their individual components. Cryptographic algorithm validation is a prerequisite of cryptographic module validation.

Vendors may use any of the NVLAP-accredited Cryptographic and Security Testing (CST) Laboratories to test algorithm implementations.

An algorithm implementation successfully tested by a lab and validated by NIST is added to an appropriate validation list, which identifies the vendor, implementation, operational environment, validation date and algorithm details.


Currently, CAVP tests the following cryptographic algorithms. Follow the links to algorithm specificationsvalidation testing requirementsvalidation lists and test vectors.

Block Ciphers 

AESTriple DESSkipjack (decryption only)
Tests for ECB, CBC, CFB and OFB modes.

Block Cipher Modes 


Digital Signatures


Key Derivation Functions


Key Management


Message Authentication

HMAC (FIPS 198-1)

Random Number Generation


Secure Hashing


Component Testing

ECC-CDH (SP 800-56A),
ECDSA Signature (FIPS 186-4),
KDF (SP800-135),
RSA PKCS1-v1.5 RSASP1 (FIPS 186-4),
RSADP Decryption (SP 800-56B; PKCS#1 v2.1)

Other algorithm testing has been retired: DESMACSkipjack (encryption only), and ANSI X9.17,RNG.

CAVP Management Manual

Last update: 06-24-2009

The CAVP Management Manual provides effective guidance for the CAVP Validation Authorities, CST laboratories, and vendors who participate in the program. It outlines the management activities and specific responsibilities of the various participating groups; however, it does not include any cryptographic standards. The manual may also interest consumers who acquire validated cryptographic modules and validated cryptographic algorithm implementations.


Last update: 01-01-16

The CAVP FAQ addresses many questions raised by the testing laboratories; it includes a section of general questions and sections for most of the tested algorithms. The FAQ addresses:

  • interpretations of algorithm specifications;
  • programmatic questions about the CAVP;
  • the Cryptographic Algorithm Validation System (CAVS) tool; and
  • information required during validation.

The FAQ is primarily intended for use by the testing labs. Vendors may also find the information useful when submitting their algorithms for testing.

Relationship of Algorithm Validation to FIPS 140-2 Module Validation

A cryptographic module validated to FIPS 140-2 shall implement at least one Approved security function used in an Approved mode of operation. For an algorithm implementation to be listed on a cryptographic module validation certificate as an Approved security function, the algorithm implementation must meet all the requirements of FIPS 140-2 and must successfully complete the cryptographic algorithm validation process. A product or implementation does not meet the FIPS 140-2 applicability requirements by simply implementing an Approved security function and acquiring validations for each of the implemented algorithms. For more information, see the Cryptographic Module Validation Program

Interim Process for Gaining Access to the ACVP

Below is the process for Interim process for gaining access to the Automated Cryptographic Validation Program (ACVP).

  1. Company/Lab completes an application for accreditation under the new HB 150-17, Annex G (Automated Cryptographic Validation Testing (ACVT)) with NVLAP including payment.
  2. Company/Lab has submitted at least one validated algorithm through the legacy lab process.
  3. Company/Lab signs a standard NIST Non-Disclosure Agreement with NIST.

  1. The company/lab notifies the CAVP Manager and supplies that date and lab number of the application.
  2. If the company/lab is already authorized to access the ACVP demo server proceed to step 8. If no, proceed to step 6.
  3. CAVP issues a set of credentials for the demo ACVP server and gives them to the company/lab.
  4. The company/lab performs on the demo server at least one successful validation of each algorithm they intend to validate on the production server and informs CAVP Manager. The company/lab provides the numbers of corresponding test sessions as evidence.  In addition, the company/lab must follow all guidance in HB 150-17 Annex G including logging.
  5. The CAVP Manager issues a set of credentials for the company/lab for accessing the ACVP production server.
  6. When HB 150-17 is officially published on the NVLAP site, CAVP schedules a coordination meeting with NVLAP to determine the status of all open applications under the ACVT scope. CAVP and NVLAP revisit this procedure and amend it as appropriate.
  7. The interim process will end on 12/31/2019 and algorithms are valid for one year after that date (12/31/2020) under the ACVT scope.  On 12/31/2020 CAVP will perform an audit of its validation database to check provisional certificates are now with accredited labs. If any of these companies have not attained an accredited lab status at that time, their certificates are revoked and their access to the production server is disabled.  If during this process a company/lab fails NVLAP accreditation, all of their interim algorithm validations will be revoked.

Note: When the new NIST Handbook 150-17 is published all labs are grandfathered in for ACVP. Although, they will still need to demonstrate their ability to work with the demo server and acquire credentials.

The CAVP was established in July 1995 by NIST and the Government of Canada's Communications Security Establishment (CSE). CSD's Security Testing, Validation, and Measurement Group (STVMG) manages the validation testing of cryptographic modules and their underlying cryptographic algorithms through the CAVP and CMVP.

Created October 05, 2016, Updated September 13, 2019