The openssl contains incomplete fips patches. In light that the fips is incomplete and will not be completed in the main archive and they are impacting customers, they should be withdrawn. See lp bugs 1593953, 1591797, 1594748, 1588524, 1613658. Removal of these fips patches will remove these fips-related issues.
2. Problem in 1593953
EC key generation allows user to generate keys using EC curves that the EC sign and verify
do not support when OPENSSL_FIPS is defined.
Testcase taken from lp #1593953
openssl ecparam -genkey -name Oakley-EC2N-4
will fail when OPENSSL_FIPS is defined since it causes a fips key-pair consistency check to be done.
Otherwise, without OPENSSL_FIPS defined, the check is not done.
3. Problem reported in 1588524
Error code being skipped...
Testcase taken from lp #1588524
#include <openssl/err.h>
#include <openssl/ssl.h>
int main() {
int rc;
unsigned long fips_err;
SSL_library_init();
SSL_load_error_strings();
ERR_load_crypto_strings();
OpenSSL_add_all_algorithms();
rc = FIPS_mode_set(1);
fips_err = ERR_peek_last_error();
// FIPS_mode_set will return 0 on failure, which is expected if
// the FIPS module is not compiled. In this case, we should then
// be able to get the error code
// CRYPTO_R_FIPS_MODE_NOT_SUPPORTED (0xf06d065)
// https://wiki.openssl.org/index.php/FIPS_mode_set%28%29
printf("%d %lu\n", rc, fips_err);
ERR_print_errors_fp(stdout);
ERR_free_strings();
return 0;
}
Should report an error message.
[ Regression potential ]
Removing the fips patches should decrease regression potential of openssl in the main archive.
The openssl contains incomplete fips patches. In light that the fips is incomplete and will not be completed in the main archive and they are impacting customers, they should be withdrawn. See lp bugs 1593953, 1591797, 1594748, 1588524, 1613658. Removal of these fips patches will remove these fips-related issues.
[Test case] /rt.openssl. org/Ticket/ Display. html?id= 4559
1. Problem in 1594748
Note: this problem was reported in upstream openssl and testcase posted there also.
https:/
CRYPTO_ set_mem_ functions( ) always returns 0 because library initialization within fips code already calls CRYPTO_malloc() and disables it.
This testcase should cause openssl to abort, but instead it returns a context.
#include <stdio.h> set_mem_ functions( my_alloc, my_realloc, my_free); init(); client_ method( ); new(method) ;
#include <stdlib.h>
#include <openssl/ssl.h>
void * my_alloc(size_t n) { abort(); }
void my_free(void *p) { abort(); }
void * my_realloc(void *p, size_t n) { abort(); }
int main(int argc, const char **argv)
{
const SSL_METHOD *method;
SSL_CTX *ctx;
CRYPTO_
SSL_library_
method = SSLv23_
ctx = SSL_CTX_
printf("Got ctx %p\n", ctx);
return 0;
}
2. Problem in 1593953
EC key generation allows user to generate keys using EC curves that the EC sign and verify
do not support when OPENSSL_FIPS is defined.
Testcase taken from lp #1593953
openssl ecparam -genkey -name Oakley-EC2N-4
will fail when OPENSSL_FIPS is defined since it causes a fips key-pair consistency check to be done.
Otherwise, without OPENSSL_FIPS defined, the check is not done.
3. Problem reported in 1588524
Error code being skipped...
Testcase taken from lp #1588524
#include <openssl/err.h>
#include <openssl/ssl.h>
int main() { library_ init(); load_error_ strings( ); load_crypto_ strings( ); add_all_ algorithms( ); last_error( );
int rc;
unsigned long fips_err;
SSL_
SSL_
ERR_
OpenSSL_
rc = FIPS_mode_set(1);
fips_err = ERR_peek_
// FIPS_mode_set will return 0 on failure, which is expected if R_FIPS_ MODE_NOT_ SUPPORTED (0xf06d065) /wiki.openssl. org/index. php/FIPS_ mode_set% 28%29 print_errors_ fp(stdout) ;
// the FIPS module is not compiled. In this case, we should then
// be able to get the error code
// CRYPTO_
// https:/
printf("%d %lu\n", rc, fips_err);
ERR_
ERR_ free_strings( );
return 0;
}
Should report an error message.
[ Regression potential ]
Removing the fips patches should decrease regression potential of openssl in the main archive.