Skip to content

CryptoLib: Testing and Validation

szemerick edited this page Nov 24, 2021 · 16 revisions

Unit Tests

TC_APPLY_SECURITY


HAPPY_PATH

This is the nominal test case. Optimal inputs are given, and OS_SUCCESS is expected from the final output of the TC_APPLY_SECURITY function

NO_CRYPTO_INIT

Testing to verify that OS_ERROR is returned when the Crypto_Init() function is not called before attempting to process any other inputs

BAD_SPACE_CRAFT_ID

Validates that proper response is given (OS_ERROR) when invalid space craft ID is passed as one of the parameters of a data input

BAD_VIRTUAL_CHANNEL_ID

Validates that proper response is given (OS_ERROR) when invalid virtual channel ID is passed as one of the parameters of a data input

ENCRYPTION_TEST

Makes use of the Python3 Cryptodome module to verify that TC_APPLY_SECURITY properly utilizes LibGCrypt to produce the same results as an external third party software. This external Python program is internalized

VALIDATION_TEST

WIP: Making use if NIST vectors with known outputs to verify that TC_APPLY_SECURITY generates the output that is expected via known output tests through the NIST standard, and referenced from the following page and document: https://csrc.nist.rip/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-spec.pdf

Test Vector 1: Section B AES Test Vectors (Test Case 13): Standard 256-bit Key, and empty plain-text data, with zeroed IV

Test Vector 2: Section B AES Test Vectors (Test Case 14): Standard 256-bit Key, Zeroed Plain Text, and Zeroed IV

NULL_BUFFER

Verifies the proper OS_ERROR response when an invalid or NULL buffer is passed to the TC_APPLY_SECURITY. This should be verified and checked by external users to be sure this already does not happen, but it tested here to be sure it is handled in this location as well.

Clone this wiki locally