Latest update.
This commit is contained in:
@@ -17,59 +17,16 @@ One of the requirements for the FIPS module is self testing. An optional callbac
|
||||
mechanism is available to return information to the user using
|
||||
L<OSSL_SELF_TEST_set_callback(3)>.
|
||||
|
||||
The parameters passed to the callback are described in L<OSSL_SELF_TEST_new(3)>
|
||||
|
||||
The OPENSSL FIPS module uses the following mechanism to provide information
|
||||
about the self tests as they run.
|
||||
This is useful for debugging if a self test is failing.
|
||||
The callback also allows forcing any self test to fail, in order to check that
|
||||
it operates correctly on failure.
|
||||
|
||||
The 'args' parameter of B<OSSL_CALLBACK> contains the B<OPENSSL_CTX> associated
|
||||
with the provider that is triggering the self test. This may be useful if
|
||||
multiple fips providers are present.
|
||||
|
||||
The OSSL_PARAM names used are:
|
||||
|
||||
=over 4
|
||||
|
||||
=item "st-phase" (B<OSSL_PROV_PARAM_SELF_TEST_PHASE>) <UTF8 string>
|
||||
|
||||
Each self test calls the callback 3 times with the following string values
|
||||
for the phase.
|
||||
|
||||
=over 4
|
||||
|
||||
=item "Start" (B<OSSL_SELF_TEST_PHASE_START>)
|
||||
|
||||
This is the initial phase before the self test has run.
|
||||
This is used for informational purposes only.
|
||||
The value returned by the callback is ignored.
|
||||
|
||||
=item "Corrupt" (B<OSSL_SELF_TEST_PHASE_CORRUPT>)
|
||||
|
||||
The corrupt phase is run after the self test has calculated its known value.
|
||||
The callback may be used to force the self test to fail by returning a value
|
||||
of 0 from the callback during this phase.
|
||||
Returning any other value from the callback causes the self test to run normally.
|
||||
|
||||
=item "Pass" (B<OSSL_SELF_TEST_PHASE_PASS>)
|
||||
|
||||
=item "Fail" (B<OSSL_SELF_TEST_PHASE_FAIL>)
|
||||
|
||||
The final phase runs after the self test is complete and indicates if a self
|
||||
test passed or failed. This is used for informational purposes only.
|
||||
The value returned by the callback is ignored.
|
||||
"Fail" should normally only be returned if any self test was forced to fail
|
||||
during the "Corrupt" phase (or if there was an error such as the integrity
|
||||
check of the module failed).
|
||||
|
||||
Note that all self tests run even if a self test failure occurs.
|
||||
|
||||
=back
|
||||
|
||||
=item "st-type" (B<OSSL_PROV_PARAM_SELF_TEST_TYPE>) <UTF8 string>
|
||||
|
||||
Used as a category to identify the type of self test being run.
|
||||
It includes the following string values:
|
||||
The FIPS module passes the following type(s) to OSSL_SELF_TEST_onbegin().
|
||||
|
||||
=over 4
|
||||
|
||||
@@ -126,10 +83,8 @@ All other self test categories are run once at installation time, except for the
|
||||
There is only one instance of the "Module_Integrity" and "Install_Integrity"
|
||||
self tests. All other self tests may have multiple instances.
|
||||
|
||||
=item "st-desc" (B<OSSL_PROV_PARAM_SELF_TEST_DESC>) <UTF8 string>
|
||||
|
||||
Used as a sub category to identify an individual self test.
|
||||
The following description strings are used.
|
||||
The FIPS module passes the following descriptions(s) to OSSL_SELF_TEST_onbegin().
|
||||
|
||||
=over 4
|
||||
|
||||
@@ -187,8 +142,6 @@ DRBG tests used with the "DRBG" type.
|
||||
|
||||
=back
|
||||
|
||||
=back
|
||||
|
||||
=head1 EXAMPLES
|
||||
|
||||
A simple self test callback is shown below for illustrative purposes.
|
||||
@@ -241,6 +194,7 @@ A simple self test callback is shown below for illustrative purposes.
|
||||
L<openssl-fipsinstall(1)>,
|
||||
L<fips_config(5)>,
|
||||
L<OSSL_SELF_TEST_set_callback(3)>,
|
||||
L<OSSL_SELF_TEST_new(3)>,
|
||||
L<OSSL_PARAM(3)>,
|
||||
L<openssl-core.h(7)>
|
||||
|
||||
@@ -250,7 +204,7 @@ The type and functions described here were added in OpenSSL 3.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2019-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License 2.0 (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
|
||||
Reference in New Issue
Block a user