add original openssl 3.1.7 source code after uncompressing and applying patches from vxworks7. (#3)

Reviewed-on: http://13.234.246.121:3000/Neominds/ossl35vx69/pulls/3
Reviewed-by: Jayesh Babu <jayesh@neominds.in>
Co-authored-by: siddhant <siddhant.singh@neominds.in>
Co-committed-by: siddhant <siddhant.singh@neominds.in>
This commit is contained in:
2026-07-30 18:08:59 +05:30
committed by neelimap
parent d04860d55a
commit 368226261b
4780 changed files with 1420924 additions and 0 deletions
@@ -0,0 +1,116 @@
/*
* Copyright (c) 2014, 2016, 2018-2022, 2024 Wind River Systems, Inc.
*
* The right to copy, distribute, modify or otherwise make use
* of this software may be licensed only pursuant to the terms
* of an applicable Wind River license agreement.
*/
#include <stdlib.h>
#include <string.h>
#include <semLib.h>
#include <taskLib.h>
#include <openssl/crypto.h>
#include <openssl/err.h>
#include <openssl/rand.h>
#include <openssl/evp.h>
#ifndef OPENSSL_NO_ENGINE
#include <openssl/engine.h>
#endif
#include <vxWorks.h>
#include "ipcrypto.h"
#include "ipcrypto_util.h"
#include "ipcrypto_config.h"
#ifdef _WRS_CONFIG_OPENSSL_FIPSMODULE
size_t ipcrypto_get_root_stack_size(void);
#endif
int ipcrypto_configure(void);
typedef struct Ipcrypto_data_st
{
mutex_t *crypto_locks;
}Ipcrypto_data;
Ipcrypto_data ipcrypto = {0};
CONF *ipcrypto_config = NULL;
int in_FIPS_mode=0;
extern int ipcrypto_init_internal(SEM_ID semId);
#ifdef _WRS_KERNEL
#ifdef IPCRYPTO_USE_TEST
int
ipcrypto_cmd_memory(int argc, char **argv)
{
#ifdef CRYPTO_MDEBUG
BIO *local_bio_out;
(void)argc;
(void)argv;
MemCheck_off();
local_bio_out = BIO_new_fp(ip_stdout, BIO_NOCLOSE);
MemCheck_on();
CRYPTO_mem_leaks(local_bio_out);
(void)BIO_flush(local_bio_out);
(void) BIO_free(local_bio_out);
#else
(void)argc;
(void)argv;
#endif
return 0;
}
#endif /* IPCRYPTO_USE_TEST */
#endif
#ifdef _WRS_KERNEL
/*******************************************************************************
*
* crypto_init - INCLUDE_IPCRYPTO init rtn
*/
int ipcrypto_init(void)
{
#ifdef _WRS_CONFIG_OPENSSL_FIPSMODULE
/* When the openssl the FIPS 140-2 module is included in the build, the FIPS 140-2 module
* init routines (that are called by the openssl init routines) call RAND_add which
* take a double as an argument. Hence the init routines must be called from a task
* with the VX_FP_TASK option set. */
SEM_ID semId;
TASK_ID taskId;
semId = semCCreate(SEM_Q_PRIORITY, 0);
if (!semId)
return ERROR;
taskId = taskSpawn("tOpensslInit",
0,
VX_FP_TASK,
(size_t)ipcrypto_get_root_stack_size(),
(FUNCPTR)ipcrypto_init_internal,
(_Vx_usr_arg_t)semId, 2, 3, 4, 5, 6, 7, 8, 9, 10);
if (taskId != TASK_ID_NULL)
semTake(semId, WAIT_FOREVER); /* Wait for init task to complete */
semDelete(semId);
if (taskId == TASK_ID_NULL)
return ERROR;
return OK;
#else
(void)ipcrypto_configure();
return ipcrypto_init_internal(SEM_ID_NULL);
#endif
}
#endif