original files of m241
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
/* 02comp_ipnet_crypto.cdf - IPCRYPTO configuration file */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Wind River Systems, Inc.
|
||||
*
|
||||
* The right to copy, distribute or otherwise make use of this software
|
||||
* may be licensed only pursuant to the terms of an applicable Wind River
|
||||
* license agreement. No license to Wind River intellectual property rights
|
||||
* is granted herein. All rights not licensed by Wind River are reserved
|
||||
* by Wind River.
|
||||
*/
|
||||
|
||||
/*
|
||||
modification history
|
||||
--------------------
|
||||
01c,18sep07,spw Remove space
|
||||
01b,10sep07,mze re-added modules back into INCLUDE_IPCRYPTO
|
||||
01a.16aug07,mze removed MODULES in INCLUDE_IPCRYPTO
|
||||
*/
|
||||
|
||||
|
||||
Folder FOLDER_CRYPTO
|
||||
{
|
||||
NAME CRYPTO Components
|
||||
SYNOPSIS CRYPTO Components
|
||||
DEFAULTS INCLUDE_IPCRYPTO
|
||||
}
|
||||
|
||||
Component INCLUDE_IPCRYPTO_USE_CMDS
|
||||
{
|
||||
NAME CRYPTO Commands
|
||||
_CHILDREN FOLDER_CRYPTO
|
||||
SYNOPSIS Crypto Commands
|
||||
REQUIRES INCLUDE_IPCRYPTO
|
||||
}
|
||||
|
||||
Component INCLUDE_IPCRYPTO_USE_TEST_CMDS
|
||||
{
|
||||
NAME CRYPTO Test Commands
|
||||
_CHILDREN FOLDER_CRYPTO
|
||||
SYNOPSIS Crypto Test Commands
|
||||
REQUIRES INCLUDE_IPCRYPTO
|
||||
}
|
||||
|
||||
Component INCLUDE_IPCRYPTO {
|
||||
NAME CRYPTO
|
||||
SYNOPSIS Crypto Library
|
||||
_CHILDREN FOLDER_CRYPTO
|
||||
CONFIGLETTES ipcrypto_config.c
|
||||
CFG_PARAMS OPENSSL_CONF \
|
||||
OPENSSL_HOME
|
||||
MODULES ipcrypto_aescmac.o \
|
||||
ipcrypto_aeskeywrap.o \
|
||||
ipcrypto.o \
|
||||
ipcrypto_crc32.o \
|
||||
ipcrypto_bubble_babble.o \
|
||||
ipcrypto_cmd_cmp.o
|
||||
}
|
||||
Parameter OPENSSL_CONF
|
||||
{
|
||||
NAME OPENSSL_CONF
|
||||
SYNOPSIS OpenSSL configuration files
|
||||
TYPE string
|
||||
DEFAULT IPCOM_FILE_ROOT "openssl/openssl.cnf"
|
||||
}
|
||||
|
||||
Parameter OPENSSL_HOME
|
||||
{
|
||||
NAME OPENSSL_HOME
|
||||
SYNOPSIS OpenSSL Home Directory
|
||||
TYPE string
|
||||
DEFAULT IPCOM_FILE_ROOT "openssl"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
# Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: common.vxconfig,v $ $Revision: 1.15 $
|
||||
# $Source: /home/interpeak/CVSRoot/ipcrypto/config/common.vxconfig,v $
|
||||
# $Author: myakan $
|
||||
# $State: Exp $ $Locker: $
|
||||
#
|
||||
# INTERPEAK_COPYRIGHT_STRING
|
||||
|
||||
#hidden option that enables IPCRYPTO
|
||||
config SUPPORTS_CRYPTO
|
||||
bool
|
||||
default y
|
||||
@@ -0,0 +1,911 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* INTERPEAK CONFIGURATION SOURCE FILE
|
||||
*
|
||||
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipcrypto_config.c,v $ $Revision: 1.28.10.5 $
|
||||
* $Source: /home/interpeak/CVSRoot/ipcrypto/config/ipcrypto_config.c,v $
|
||||
* $Author: yli10 $
|
||||
* $State: Exp $ $Locker: $
|
||||
*
|
||||
* INTERPEAK_COPYRIGHT_STRING
|
||||
* Design and implementation by Lennart Bang <lob@interpeak.se>
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 1 DESCRIPTION
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 2 INCLUDE FILES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
#include <ipcom_config.h>
|
||||
#include "ipcrypto_config.h"
|
||||
|
||||
#include <ipcom_type.h>
|
||||
#include <ipcom_cstyle.h>
|
||||
#include <ipcom_err.h>
|
||||
#include <ipcom_sysvar.h>
|
||||
#include <ipcom_shell.h>
|
||||
#include <ipcom_os.h>
|
||||
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 3 DEFINES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
#define SHELL_ADD_CMD(cmd, usage, desc, hook) \
|
||||
ipcom_shell_add_cmd(cmd, usage, desc, hook, IPCOM_PRIORITY_MIN, IPCOM_PROC_STACK_MAX*2)
|
||||
|
||||
#if defined(_WRS_CONFIG_COMPONENT_IPCRYPTO_USE_FIPS_140_2) && !defined(OPENSSL_FIPS)
|
||||
#define OPENSSL_FIPS
|
||||
#endif
|
||||
|
||||
#ifdef PRJ_BUILD
|
||||
|
||||
#ifdef IPCRYPTO_USE_TEST
|
||||
#undef IPCRYPTO_USE_TEST
|
||||
#endif
|
||||
#ifdef INCLUDE_IPCRYPTO_USE_TEST_CMDS
|
||||
#define IPCRYPTO_USE_TEST
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_KEY_DB_EXAMPLE_KEYS
|
||||
#undef IPCRYPTO_USE_KEY_DB_EXAMPLE_KEYS
|
||||
#endif
|
||||
#ifdef INCLUDE_IPCRYPTO_USE_KEY_DB_EXAMPLE_KEYS
|
||||
#define IPCRYPTO_USE_KEY_DB_EXAMPLE_KEYS
|
||||
#endif
|
||||
|
||||
#endif /* PRJ_BUILD */
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* IPCRYPTO_USE_*_CMD
|
||||
*===========================================================================
|
||||
* Set the defines below to include the correspondig openssl shell command
|
||||
* applications.
|
||||
*/
|
||||
|
||||
#if defined(IPCRYPTO_USE_APPS) && !defined(PRJ_BUILD) || defined(INCLUDE_IPCRYPTO_USE_CMDS)
|
||||
#define IPCRYPTO_USE_VERIFY_CMD
|
||||
#define IPCRYPTO_USE_ASN1PARSE_CMD
|
||||
#define IPCRYPTO_USE_REQ_CMD
|
||||
#define IPCRYPTO_USE_DGST_CMD
|
||||
#define IPCRYPTO_USE_DH_CMD
|
||||
#define IPCRYPTO_USE_DHPARAM_CMD
|
||||
#define IPCRYPTO_USE_GENDH_CMD
|
||||
#define IPCRYPTO_USE_ENC_CMD
|
||||
#define IPCRYPTO_USE_PASSWD_CMD
|
||||
#define IPCRYPTO_USE_CA_CMD
|
||||
#define IPCRYPTO_USE_CRL_CMD
|
||||
#define IPCRYPTO_USE_RSA_CMD
|
||||
#define IPCRYPTO_USE_RSAUTL_CMD
|
||||
#define IPCRYPTO_USE_GENRSA_CMD
|
||||
#define IPCRYPTO_USE_DSA_CMD
|
||||
#define IPCRYPTO_USE_DSAPARAM_CMD
|
||||
#define IPCRYPTO_USE_GENDSA_CMD
|
||||
#define IPCRYPTO_USE_X509_CMD
|
||||
#define IPCRYPTO_USE_PKCS7_CMD
|
||||
#define IPCRYPTO_USE_CRL2P7_CMD
|
||||
#define IPCRYPTO_USE_NSEQ_CMD
|
||||
#define IPCRYPTO_USE_PKCS8_CMD
|
||||
#define IPCRYPTO_USE_SPKAC_CMD
|
||||
#define IPCRYPTO_USE_SMIME_CMD
|
||||
#define IPCRYPTO_USE_RAND_CMD
|
||||
#define IPCRYPTO_USE_VERSION_CMD
|
||||
#define IPCRYPTO_USE_ENGINE_CMD
|
||||
#define IPCRYPTO_USE_SPEED_CMD
|
||||
#ifdef IPSSL
|
||||
#define IPCRYPTO_USE_OCSP_CMD
|
||||
#endif
|
||||
|
||||
#endif /* IPCRYPTO_USE_APPS */
|
||||
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 4 TYPES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 5 EXTERN PROTOTYPES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* apps
|
||||
*===========================================================================
|
||||
*/
|
||||
|
||||
IP_GLOBAL void ipcrypto_key_db_install_example_keys(void);
|
||||
|
||||
extern void ipcrypto_cmds_startup(void);
|
||||
|
||||
extern int verify_main(int argc, char ** argv);
|
||||
extern int asn1parse_main(int argc, char ** argv);
|
||||
extern int req_main(int argc,char *argv[]);
|
||||
extern int dgst_main(int argc,char *argv[]);
|
||||
extern int dh_main(int argc,char *argv[]);
|
||||
extern int dhparam_main(int argc,char *argv[]);
|
||||
extern int enc_main(int argc,char *argv[]);
|
||||
extern int passwd_main(int argc,char *argv[]);
|
||||
extern int gendh_main(int argc,char *argv[]);
|
||||
extern int ca_main(int argc,char *argv[]);
|
||||
extern int crl_main(int argc,char *argv[]);
|
||||
extern int rsa_main(int argc,char *argv[]);
|
||||
extern int rsautl_main(int argc,char *argv[]);
|
||||
extern int dsa_main(int argc,char *argv[]);
|
||||
extern int dsaparam_main(int argc,char *argv[]);
|
||||
extern int x509_main(int argc,char *argv[]);
|
||||
extern int genrsa_main(int argc,char *argv[]);
|
||||
extern int gendsa_main(int argc,char *argv[]);
|
||||
extern int speed_main(int argc,char *argv[]);
|
||||
extern int version_main(int argc,char *argv[]);
|
||||
extern int pkcs7_main(int argc,char *argv[]);
|
||||
extern int crl2pkcs7_main(int argc,char *argv[]);
|
||||
extern int nseq_main(int argc,char *argv[]);
|
||||
extern int pkcs12_main(int argc,char *argv[]);
|
||||
extern int pkcs8_main(int argc,char *argv[]);
|
||||
extern int spkac_main(int argc,char *argv[]);
|
||||
extern int smime_main(int argc,char *argv[]);
|
||||
extern int rand_main(int argc,char *argv[]);
|
||||
extern int engine_main(int argc,char *argv[]);
|
||||
extern int ocsp_main(int argc,char *argv[]);
|
||||
|
||||
|
||||
extern int ipcrypto_cmd_cmp(int argc, char **argv);
|
||||
extern int ipcrypto_cmd_memory(int argc, char **argv);
|
||||
extern int ipcrypto_cmd_fips_ctrl(int argc, char **argv);
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* test
|
||||
*===========================================================================
|
||||
*/
|
||||
extern int bftest(int argc, char **argv);
|
||||
extern int bntest(int argc, char **argv);
|
||||
extern int divtest(int argc, char **argv);
|
||||
extern int exptest(int argc, char **argv);
|
||||
extern int casttest(int argc, char **argv);
|
||||
extern int destest(int argc, char **argv);
|
||||
extern int dhtest(int argc, char **argv);
|
||||
extern int dsatest(int argc, char **argv);
|
||||
extern int ectest(int argc, char **argv);
|
||||
extern int ecdhtest(int argc, char **argv);
|
||||
extern int ecdsatest(int argc, char **argv);
|
||||
extern int enginetest(int argc, char **argv);
|
||||
extern int hmactest(int argc, char **argv);
|
||||
extern int evp_test(int argc, char **argv);
|
||||
extern int hmactest(int argc, char **argv);
|
||||
extern int md2test(int argc, char **argv);
|
||||
extern int md4test(int argc, char **argv);
|
||||
extern int md5test(int argc, char **argv);
|
||||
extern int mdc2test(int argc, char **argv);
|
||||
extern int randtest(int argc, char **argv);
|
||||
extern int rc2test(int argc, char **argv);
|
||||
extern int rc4test(int argc, char **argv);
|
||||
extern int rc5test(int argc, char **argv);
|
||||
extern int rmdtest(int argc, char **argv);
|
||||
extern int rsa_test(int argc, char **argv);
|
||||
extern int sha1test(int argc, char **argv);
|
||||
extern int shatest(int argc, char **argv);
|
||||
extern int sha512test(int argc, char **argv);
|
||||
extern int tabtest(int argc, char **argv);
|
||||
extern int ipcrypto_cmd_aescmac_test(int argc, char **argv);
|
||||
extern int ipcrypto_cmd_aeskeywrap_test(int argc, char **argv);
|
||||
extern int aesgcmtest_main(int argc, char **argv);
|
||||
extern int aes_ccm_test_main(int argc,char *argv[]);
|
||||
extern int constant_time_test(int argc, char *argv[]);
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 6 LOCAL PROTOTYPES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
#if IPCOM_USE_SHELL != IPCOM_SHELL_NONE
|
||||
|
||||
#ifdef IPCRYPTO_USE_VERIFY_CMD
|
||||
IP_STATIC int ipcrypto_verify_main(int argc, char ** argv);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_ASN1PARSE_CMD
|
||||
IP_STATIC int ipcrypto_asn1parse_main(int argc, char ** argv);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_REQ_CMD
|
||||
IP_STATIC int ipcrypto_req_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_DGST_CMD
|
||||
IP_STATIC int ipcrypto_dgst_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_DH_CMD
|
||||
IP_STATIC int ipcrypto_dh_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_DHPARAM_CMD
|
||||
IP_STATIC int ipcrypto_dhparam_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_ENC_CMD
|
||||
IP_STATIC int ipcrypto_enc_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_PASSWD_CMD
|
||||
IP_STATIC int ipcrypto_passwd_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_GENDH_CMD
|
||||
IP_STATIC int ipcrypto_gendh_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_CA_CMD
|
||||
IP_STATIC int ipcrypto_ca_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_CRL_CMD
|
||||
IP_STATIC int ipcrypto_crl_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_RSA_CMD
|
||||
IP_STATIC int ipcrypto_rsa_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_RSAUTL_CMD
|
||||
IP_STATIC int ipcrypto_rsautl_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_DSA_CMD
|
||||
IP_STATIC int ipcrypto_dsa_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_DSAPARAM_CMD
|
||||
IP_STATIC int ipcrypto_dsaparam_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_X509_CMD
|
||||
IP_STATIC int ipcrypto_x509_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_GENRSA_CMD
|
||||
IP_STATIC int ipcrypto_genrsa_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_GENDSA_CMD
|
||||
IP_STATIC int ipcrypto_gendsa_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_SPEED_CMD
|
||||
IP_STATIC int ipcrypto_speed_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_VERSION_CMD
|
||||
IP_STATIC int ipcrypto_version_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_PKCS7_CMD
|
||||
IP_STATIC int ipcrypto_pkcs7_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_CRL2PKCS7_CMD
|
||||
IP_STATIC int ipcrypto_crl2pkcs7_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_NSEQ_CMD
|
||||
IP_STATIC int ipcrypto_nseq_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_PKCS12_CMD
|
||||
IP_STATIC int ipcrypto_pkcs12_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_PKCS8_CMD
|
||||
IP_STATIC int ipcrypto_pkcs8_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_SPKAC_CMD
|
||||
IP_STATIC int ipcrypto_spkac_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_SMIME_CMD
|
||||
IP_STATIC int ipcrypto_smime_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_RAND_CMD
|
||||
IP_STATIC int ipcrypto_rand_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_ENGINE_CMD
|
||||
IP_STATIC int ipcrypto_engine_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_OCSP_CMD
|
||||
IP_STATIC int ipcrypto_ocsp_main(int argc,char *argv[]);
|
||||
#endif
|
||||
|
||||
#endif /* IPCOM_USE_SHELL != IPCOM_SHELL_NONE */
|
||||
|
||||
|
||||
IP_PUBLIC Ip_err ipcrypto_configure(void);
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 7 DATA
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* SYSVAR CONFIGURATION
|
||||
*===========================================================================
|
||||
*/
|
||||
|
||||
IP_STATIC IP_CONST Ipcom_sysvar ipcrypto_conf_sysvar[] =
|
||||
{
|
||||
IP_SYSVAR("OPENSSL_CONF", IPCOM_FILE_ROOT "openssl/openssl.cnf", OPENSSL_CONF),
|
||||
IP_SYSVAR("HOME", IPCOM_FILE_ROOT "openssl", OPENSSL_HOME),
|
||||
{ IP_NULL, IP_NULL }
|
||||
};
|
||||
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
/* When running ipcrypto in FIPS 140-2 mode, a fingerprint (hash) is calculated
|
||||
* of the FIPS module implementation. This fingerprint is compared to an expected
|
||||
* value (ipcrypto_fips_signature). If the value matches, the system is allowed
|
||||
* to enter FIPS 140-2 mode. Initializing ipcrypto_fips_signature to all 0xEE
|
||||
* will not enable FIPS 140-2 mode. After you have booted your image you can
|
||||
* use the shell command 'fips_ctrl hash' to calculate the fips_signature.
|
||||
* Thereafter update ipcrypto_fips_signature below, rebuild and reboot and
|
||||
* ipcrypto will start in FIPS 140-2 mode. */
|
||||
unsigned char ipcrypto_fips_signature[20] =
|
||||
{ 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
|
||||
0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE };
|
||||
#endif
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 8 STATIC FUNCTIONS
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#if IPCOM_USE_SHELL != IPCOM_SHELL_NONE
|
||||
/*
|
||||
*===========================================================================
|
||||
* SHELL COMMANDS
|
||||
*===========================================================================
|
||||
*/
|
||||
|
||||
#ifdef IPCRYPTO_USE_VERIFY_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_verify_main(int argc, char ** argv)
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return verify_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_ASN1PARSE_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_asn1parse_main(int argc, char ** argv)
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return asn1parse_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_REQ_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_req_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return req_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_DGST_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_dgst_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return dgst_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_DH_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_dh_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return dh_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_DHPARAM_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_dhparam_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return dhparam_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_ENC_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_enc_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return enc_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_PASSWD_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_passwd_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return passwd_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_GENDH_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_gendh_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return gendh_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_CA_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_ca_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return ca_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_CRL_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_crl_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return crl_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_RSA_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_rsa_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return rsa_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_RSAUTL_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_rsautl_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return rsautl_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef OPENSSL_NO_DSA
|
||||
#ifdef IPCRYPTO_USE_DSA_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_dsa_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return dsa_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_GENDSA_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_gendsa_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return gendsa_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_DSAPARAM_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_dsaparam_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return dsaparam_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
#endif /* OPENSSL_NO_DSA */
|
||||
|
||||
#ifdef IPCRYPTO_USE_X509_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_x509_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return x509_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_GENRSA_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_genrsa_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return genrsa_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_SPEED_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_speed_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return speed_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_VERSION_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_version_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return version_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_PKCS7_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_pkcs7_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return pkcs7_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_CRL2PKCS7_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_crl2pkcs7_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return crl2pkcs7_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_NSEQ_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_nseq_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return nseq_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_PKCS12_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_pkcs12_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return pkcs12_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_PKCS8_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_pkcs8_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return pkcs8_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_SPKAC_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_spkac_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return spkac_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_SMIME_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_smime_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return smime_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_RAND_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_rand_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return rand_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_ENGINE_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_engine_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return engine_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_OCSP_CMD
|
||||
IP_STATIC int
|
||||
ipcrypto_ocsp_main(int argc,char *argv[])
|
||||
{
|
||||
ipcrypto_cmds_startup();
|
||||
return ocsp_main(argc, argv);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* IPCOM_USE_SHELL != IPCOM_SHELL_NONE */
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 9 GLOBAL FUNCTIONS
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 10 PUBLIC FUNCTIONS
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* ipcrypto_configure
|
||||
*===========================================================================
|
||||
*/
|
||||
IP_PUBLIC Ip_err
|
||||
ipcrypto_configure(void)
|
||||
{
|
||||
/* Initialize IPCRYPTO system variables. */
|
||||
(void)ipcom_sysvar_setv(ipcrypto_conf_sysvar, IPCOM_SYSVAR_FLAG_OVERWRITE);
|
||||
|
||||
#if IPCOM_USE_SHELL != IPCOM_SHELL_NONE
|
||||
#ifdef IPCRYPTO_USE_VERIFY_CMD
|
||||
SHELL_ADD_CMD("verify",
|
||||
"verify [-verbose] [-CApath path] [-CAfile file] [-purpose purpose] cert1 cert2 ...",
|
||||
"X.509 Certificate Verification", ipcrypto_verify_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_ASN1PARSE_CMD
|
||||
SHELL_ADD_CMD("asn1parse", "asn1parse [options]",
|
||||
"Parse an ASN.1 sequence", ipcrypto_asn1parse_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_REQ_CMD
|
||||
SHELL_ADD_CMD("req", "req [options]",
|
||||
"X.509 Certificate Signing Request (CSR) Management", ipcrypto_req_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_DGST_CMD
|
||||
SHELL_ADD_CMD("dgst", "dgst [options] [file ...]", "Message Digest Calculation", ipcrypto_dgst_main);
|
||||
#endif
|
||||
|
||||
#ifndef OPENSSL_NO_DH
|
||||
#ifdef IPCRYPTO_USE_DH_CMD
|
||||
SHELL_ADD_CMD("dh", "dh [options]",
|
||||
"Diffie-Hellman Parameter Management. Obsoleted by dhparam", ipcrypto_dh_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_DHPARAM_CMD
|
||||
SHELL_ADD_CMD("dhparam", "dhparam [options] [numbits]",
|
||||
"Generation and Management of Diffie-Hellman Parameters", ipcrypto_dhparam_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_GENDH_CMD
|
||||
SHELL_ADD_CMD("gendh", "x", "Generation of Diffie-Hellman Parameters. Obsoleted by dhparam", ipcrypto_gendh_main);
|
||||
#endif
|
||||
#endif /* OPENSSL_NO_DH */
|
||||
|
||||
#ifdef IPCRYPTO_USE_ENC_CMD
|
||||
SHELL_ADD_CMD("enc", "enc [options]", "Encoding with Ciphers", ipcrypto_enc_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_PASSWD_CMD
|
||||
SHELL_ADD_CMD("passwd", "passwd [options] [passwords]", "Generation of hashed passwords", ipcrypto_passwd_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_CA_CMD
|
||||
SHELL_ADD_CMD("ca", "ca args", "Certificate Authority (CA) Management", ipcrypto_ca_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_CRL_CMD
|
||||
SHELL_ADD_CMD("crl", "crl args", "Certificate Revocation List (CRL) Management", ipcrypto_crl_main);
|
||||
#endif
|
||||
|
||||
#ifndef OPENSSL_NO_RSA
|
||||
#ifdef IPCRYPTO_USE_RSA_CMD
|
||||
SHELL_ADD_CMD("rsa", "rsa [options]", "RSA Data Management", ipcrypto_rsa_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_RSAUTL_CMD
|
||||
SHELL_ADD_CMD("rsautl", "rsautl [options]",
|
||||
"RSA utility for signing, verification, encryption, and decryption", ipcrypto_rsautl_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_GENRSA_CMD
|
||||
SHELL_ADD_CMD("genrsa", "genrsa [args] [numbits]", "Generation of RSA keys", ipcrypto_genrsa_main);
|
||||
#endif
|
||||
#endif /* OPENSSL_NO_RSA */
|
||||
|
||||
#ifndef OPENSSL_NO_DSA
|
||||
#ifdef IPCRYPTO_USE_DSA_CMD
|
||||
SHELL_ADD_CMD("dsa", "dsa [options]", "DSA key processing", ipcrypto_dsa_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_DSAPARAM_CMD
|
||||
SHELL_ADD_CMD("dsaparam", "dsaparam [options]", "DSA parameter manipulation and generation", ipcrypto_dsaparam_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_GENDSA_CMD
|
||||
SHELL_ADD_CMD("gendsa", "gendsa [args] dsaparam-file",
|
||||
"Generation of DSA Parameters", ipcrypto_gendsa_main);
|
||||
#endif
|
||||
#endif /* OPENSSL_NO_DSA */
|
||||
|
||||
#ifdef IPCRYPTO_USE_X509_CMD
|
||||
SHELL_ADD_CMD("x509", "x509 [options]", "Certificate display and signing utility", ipcrypto_x509_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_SPEED_CMD
|
||||
SHELL_ADD_CMD("speed", "speed [options]", "Test encryption performance", ipcrypto_speed_main);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_PKCS7_CMD
|
||||
SHELL_ADD_CMD("pkcs7", "pkcs7 [options]", "PKCS#7 Data Management", ipcrypto_pkcs7_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_CRL2PKCS7_CMD
|
||||
SHELL_ADD_CMD("crl2p7", "crl2p7 [options]", "CRL to PKCS#7 Conversion", ipcrypto_crl2pkcs7_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_NSEQ_CMD
|
||||
SHELL_ADD_CMD("nseq", "nseq [options]", "Create or examine a netscape certificate sequence", ipcrypto_nseq_main);
|
||||
#endif
|
||||
#if defined(IPCRYPTO_USE_PKCS12_CMD) &&!defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_SHA1)
|
||||
SHELL_ADD_CMD("pkcs12", "pkcs12 [options]", "PKCS#12 file utility", ipcrypto_pkcs12_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_PKCS8_CMD
|
||||
SHELL_ADD_CMD("pkcs8", "pkcs8 [options]", "PKCS#8 format private key conversion tool", ipcrypto_pkcs8_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_SPKAC_CMD
|
||||
SHELL_ADD_CMD("spkac", "spkac [options]", "SPKAC printing and generating utility", ipcrypto_spkac_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_SMIME_CMD
|
||||
SHELL_ADD_CMD("smime", "smime [options]", "S/MIME mail processing", ipcrypto_smime_main);
|
||||
#endif
|
||||
#ifdef IPCRYPTO_USE_RAND_CMD
|
||||
SHELL_ADD_CMD("rand", "rand [options]", "Generate pseudo-random bytes", ipcrypto_rand_main);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_VERSION_CMD
|
||||
SHELL_ADD_CMD("ipcrypto_ver", "ipcrypto_ver", "Show IPCRYPTO version", ipcrypto_version_main);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_ENGINE_CMD
|
||||
SHELL_ADD_CMD("engine", "engine", "Hardware Crypto Support", ipcrypto_engine_main);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_OCSP_CMD
|
||||
SHELL_ADD_CMD("ocsp", "ocsp", "ocsp - Online Certificate Status Protocol utility", ipcrypto_ocsp_main);
|
||||
#endif
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
SHELL_ADD_CMD("fips_ctrl", "fips_ctrl", "FIPS control command", ipcrypto_cmd_fips_ctrl);
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_USE_TEST
|
||||
SHELL_ADD_CMD("cmp", "cmp", "cmp", ipcrypto_cmd_cmp);
|
||||
SHELL_ADD_CMD("sslmem", "sslmem", "sslmem", ipcrypto_cmd_memory);
|
||||
|
||||
/* general test/ progs. */
|
||||
SHELL_ADD_CMD("bntest", "bntest", "Big number test utility.", bntest);
|
||||
SHELL_ADD_CMD("exptest", "exptest", "Big number test utility.", exptest);
|
||||
#ifndef OPENSSL_NO_EC
|
||||
SHELL_ADD_CMD("ectest", "ectest", "ectest test utility.", ectest);
|
||||
SHELL_ADD_CMD("ecdhtest", "ecdhtest", "ecdhtest test utility.", ecdhtest);
|
||||
SHELL_ADD_CMD("ecdsatest", "ecdsatest", "ecdsatest test utility.", ecdsatest);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
SHELL_ADD_CMD("enginetest", "enginetest", "engine test utility.", enginetest);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_MD2
|
||||
SHELL_ADD_CMD("md2test", "md2test", "md2test test utility.", md2test);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_MD4
|
||||
SHELL_ADD_CMD("md4test", "md4test", "md4test test utility.", md4test);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_MD5
|
||||
SHELL_ADD_CMD("md5test", "md5test", "md5test test utility.", md5test);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_HMAC
|
||||
SHELL_ADD_CMD("hmactest", "hmactest", "hmactest test utility.", hmactest);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RC2
|
||||
SHELL_ADD_CMD("rc2test", "rc2test", "RC2 test utility.", rc2test);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RC4
|
||||
SHELL_ADD_CMD("rc4test", "rc4test", "RC4 test utility.", rc4test);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_DES
|
||||
SHELL_ADD_CMD("destest", "destest", "destest test utility.", destest);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_SHA
|
||||
#ifndef OPENSSL_FIPS
|
||||
SHELL_ADD_CMD("shatest", "shatest", "shatest test utility.", shatest);
|
||||
SHELL_ADD_CMD("sha512test", "sha512test", "sha512 test utility.", sha512test);
|
||||
#endif
|
||||
SHELL_ADD_CMD("sha1test", "sha1test", "sha1test test utility.", sha1test);
|
||||
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_MDC2
|
||||
SHELL_ADD_CMD("mdc2test", "mdc2test", "mdc2test test utility.", mdc2test);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_RIPEMD
|
||||
SHELL_ADD_CMD("rmdtest", "rmdtest", "rmdtest test utility.", rmdtest);
|
||||
#endif
|
||||
SHELL_ADD_CMD("randtest", "randtest", "randtest test utility.", randtest);
|
||||
#ifndef OPENSSL_NO_DH
|
||||
SHELL_ADD_CMD("dhtest", "dhtest", "dhtest test utility.", dhtest);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_CAST
|
||||
SHELL_ADD_CMD("casttest", "casttest", "casttest test utility.", casttest);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_BF
|
||||
SHELL_ADD_CMD("bftest", "bftest", "bftest test utility.", bftest);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_DSA
|
||||
SHELL_ADD_CMD("dsatest", "dsatest", "dsatest test utility.", dsatest);
|
||||
#endif
|
||||
SHELL_ADD_CMD("exptest", "exptest", "exptest test utility.", exptest);
|
||||
#ifndef OPENSSL_NO_RSA
|
||||
SHELL_ADD_CMD("rsa_test", "rsa_test", "rsa_test test utility.", rsa_test);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_EVP
|
||||
SHELL_ADD_CMD("evp_test", "evp_test", "evp_test test utility.", evp_test);
|
||||
#endif
|
||||
|
||||
SHELL_ADD_CMD("tabtest", "tabtest", "X509 test utility.", tabtest);
|
||||
SHELL_ADD_CMD("cmactest", "cmactest", "AES-CMAC test utility.",ipcrypto_cmd_aescmac_test);
|
||||
SHELL_ADD_CMD("aeskeywraptest", "aeskeywraptest", "AES-Keywrap test utility.",ipcrypto_cmd_aeskeywrap_test);
|
||||
/* Openssl-1.0.1 have AES GCM and CCM support out of the box. For the time being we leave the WR
|
||||
* modifications/additions for these algorithms out. We need to decide if we shall continue the
|
||||
* support for the WR variants or if we shall rely on the std openssl variants only */
|
||||
#ifndef IPCRYPTO_OPENSSL_1_0_2
|
||||
SHELL_ADD_CMD("aesgcmtest", "aesgcmtest", "aesgcmtest", aesgcmtest_main);
|
||||
SHELL_ADD_CMD("aes_ccm_test", "aes_ccm_test", "aes_ccm_test", aes_ccm_test_main);
|
||||
#endif
|
||||
SHELL_ADD_CMD("constant_time_test", "constant_time_test", "constant_time_test test utility.", constant_time_test);
|
||||
|
||||
#endif /* IPCRYPTO_USE_TEST */
|
||||
|
||||
#endif /* IPCOM_USE_SHELL != IPCOM_SHELL_NONE */
|
||||
|
||||
#ifdef IPCRYPTO_USE_KEY_DB_EXAMPLE_KEYS
|
||||
ipcrypto_key_db_install_example_keys();
|
||||
#endif
|
||||
|
||||
|
||||
/* No configuration to enter */
|
||||
return IPCOM_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* END OF FILE
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* INTERPEAK CONFIGURATION HEADER FILE
|
||||
*
|
||||
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipcrypto_config.h,v $ $Revision: 1.37.10.2 $
|
||||
* $Source: /home/interpeak/CVSRoot/ipcrypto/config/ipcrypto_config.h,v $
|
||||
* $Author: jli7 $ $Date: 2017-08-23 07:57:49 $
|
||||
* $State: Exp $ $Locker: $
|
||||
*
|
||||
* Copyright Interpeak AB 2000-2003 <www.interpeak.se>. All rights reserved.
|
||||
* Design and implementation by Roger Boden <roger@interpeak.se>
|
||||
******************************************************************************
|
||||
*/
|
||||
#ifndef IPCRYPTO_CONFIG_H
|
||||
#define IPCRYPTO_CONFIG_H
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 1 DESCRIPTION
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 2 INCLUDE FILES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 3 DEFINES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* IPCRYPTO_SYSLOG_PRIORITY
|
||||
*===========================================================================
|
||||
* Default syslog priority.
|
||||
*/
|
||||
#ifdef IP_DEBUG
|
||||
#define IPCRYPTO_SYSLOG_PRIORITY IPCOM_LOG_DEBUG /* (see ipcom_syslog.h) */
|
||||
#else
|
||||
#define IPCRYPTO_SYSLOG_PRIORITY IPCOM_LOG_WARNING
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef IP_SIZE
|
||||
#define IPCRYPTO_MINIMUM_FOOTPRINT
|
||||
#endif
|
||||
|
||||
#ifdef IPCRYPTO_MINIMUM_FOOTPRINT
|
||||
|
||||
/* Hash algorithms */
|
||||
#define OPENSSL_NO_MD2
|
||||
#define OPENSSL_NO_MD4
|
||||
#define OPENSSL_NO_RIPEMD
|
||||
#define OPENSSL_NO_RIPEMD160
|
||||
#define OPENSSL_NO_RMD160
|
||||
|
||||
/* Symmetrical algorithms */
|
||||
/*#define OPENSSL_NO_AES*/
|
||||
#define OPENSSL_NO_BF
|
||||
#define OPENSSL_NO_CAST
|
||||
#define OPENSSL_NO_CHAIN_VERIFY
|
||||
#define OPENSSL_NO_DESCBCM
|
||||
#define OPENSSL_NO_RC4
|
||||
#define OPENSSL_NO_RC2
|
||||
|
||||
/* Asymmetrical algorithms */
|
||||
/* These algorithms are needed by IPIKE, IPSSH, IPSSL, IPWEBS */
|
||||
/* #define OPENSSL_NO_DH */
|
||||
/* #define OPENSSL_NO_DSA */
|
||||
/* ipwebs and ipsslproxy require RSA */
|
||||
/* #define OPENSSL_NO_RSA */
|
||||
|
||||
|
||||
#define OPENSSL_NO_KRB5
|
||||
/* #define OPENSSL_NO_OCSP */
|
||||
|
||||
#endif
|
||||
|
||||
/* The following algorithms have an unclear patent situation, hence we exclude them */
|
||||
#define OPENSSL_NO_MDC2
|
||||
#ifndef IPCRYPTO_OPENSSL_1_0_2
|
||||
#define OPENSSL_NO_EC
|
||||
#define OPENSSL_NO_ECDH
|
||||
#define OPENSSL_NO_ECDSA
|
||||
#endif
|
||||
#define OPENSSL_NO_IDEA
|
||||
|
||||
#ifdef OPENSSL_FIPS
|
||||
#define OPENSSL_NO_MD2
|
||||
/*#define OPENSSL_NO_MD4*/
|
||||
#define OPENSSL_NO_RIPEMD
|
||||
#define OPENSSL_NO_RIPEMD160
|
||||
#define OPENSSL_NO_RMD160
|
||||
|
||||
#define OPENSSL_NO_BF
|
||||
#define OPENSSL_NO_CAST
|
||||
#define OPENSSL_NO_RC4
|
||||
#define OPENSSL_NO_RC2
|
||||
#endif
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* OPENSSL_NO_S
|
||||
*===========================================================================
|
||||
*/
|
||||
#ifdef IPSSL
|
||||
#include <ipssl_config.h>
|
||||
#else
|
||||
#define OPENSSL_NO_SSL2
|
||||
#define OPENSSL_NO_SSL3
|
||||
#define OPENSSL_NO_TLS
|
||||
#define OPENSSL_NO_TLS1
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* IPCRYPTO_DEFAULT_CONFIG_FILE
|
||||
*===========================================================================
|
||||
*/
|
||||
#define IPCRYPTO_DEFAULT_CONFIG_FILE "/ram/openssl.cnf"
|
||||
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* IPCRYPTO_USE_APPS
|
||||
*===========================================================================
|
||||
* Define to include openssl shell command applications.
|
||||
*/
|
||||
#if !defined(IP_PORT_ITRON) && !defined(IP_PORT_WIN32) && !defined(IPCRYPTO_MINIMUM_FOOTPRINT)
|
||||
#define IPCRYPTO_USE_APPS
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* IPCRYPTO_USE_TEST
|
||||
*===========================================================================
|
||||
* Define to include openssl shell command test tools.
|
||||
#if !defined(IP_PORT_ITRON) && !defined(IPCRYPTO_MINIMUM_FOOTPRINT)
|
||||
#endif
|
||||
*/
|
||||
#define IPCRYPTO_USE_TEST
|
||||
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* IPCRYPTO_USE_KEY_DB_EXAMPLE_KEYS
|
||||
*===========================================================================
|
||||
* Define to install example DSA and RSA keys in the key db.
|
||||
*/
|
||||
#ifdef IPCOM_USE_KEY_DB
|
||||
#define IPCRYPTO_USE_KEY_DB_EXAMPLE_KEYS
|
||||
#endif
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 4 TYPES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 5 FUNCTIONS
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* END OF FILE
|
||||
****************************************************************************
|
||||
*/
|
||||
@@ -0,0 +1,227 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* INTERPEAK CONFIGURATION SOURCE FILE
|
||||
*
|
||||
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipcrypto_key_db_example_keys.c,v $ $Revision: 1.5.16.1 $
|
||||
* $Source: /home/interpeak/CVSRoot/ipcrypto/config/ipcrypto_key_db_example_keys.c,v $
|
||||
* $Author: svc-cmnet $
|
||||
* $State: Exp $ $Locker: $
|
||||
*
|
||||
* INTERPEAK_COPYRIGHT_STRING
|
||||
* Design and implementation by Roger Boden <roger.boden@windriver.com>
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 1 DESCRIPTION
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 2 INCLUDE FILES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
#define IPCOM_USE_CLIB_PROTO
|
||||
#include <ipcom_config.h>
|
||||
#include "ipcrypto_config.h"
|
||||
|
||||
#include <ipcom_clib.h>
|
||||
#include <ipcom_type.h>
|
||||
#include <ipcom_cstyle.h>
|
||||
#include <ipcom_err.h>
|
||||
#include <ipcom_sysvar.h>
|
||||
#include <ipcom_shell.h>
|
||||
#include <ipcom_syslog.h>
|
||||
#include <ipcom_os.h>
|
||||
#include <ipcom_file.h>
|
||||
#include <ipcom_key_db.h>
|
||||
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/pem.h>
|
||||
|
||||
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 3 DEFINES
|
||||
****************************************************************************
|
||||
*/
|
||||
#define IPCOM_SYSLOG_PRIORITY IPCRYPTO_SYSLOG_PRIORITY
|
||||
#define IPCOM_SYSLOG_FACILITY IPCOM_LOG_IPCRYPTO
|
||||
|
||||
#define IPCRYPTO_KEY_DB_EXAMPLE_DSA_KEY \
|
||||
"-----BEGIN DSA PRIVATE KEY-----\n" \
|
||||
"MIH5AgEAAkEA/UNXOgmhyXWRcOBZLun6hspiuS/Q/N/Ku0stYrD5kQr7vTcNrCNZ\n" \
|
||||
"DYDnCVFfrC6/xyBQGP0fhUBpRUc7eoJpMwIVAOLUu3B5ClDwieTcsYqmu517ABBX\n" \
|
||||
"AkEAgTfPLQcVxAiqkTowSvA/tVyXwCPovs3nBBK8S9nFW+ZzGm9oR2Rccrbfuln0\n" \
|
||||
"AkaoUVmacGBxvD+z9qhhHgiNjQJAeBvdcIgYEly7EUl0bb1KxTGe97hxdM31vhJn\n" \
|
||||
"zGkgrzlyEhf2+d1V756A0mArKvnkq1MKlaFj4vxnqqGVypRfngIVAN/UwBqwgIP2\n" \
|
||||
"IOnHijeFIH2NQF7G\n" \
|
||||
"-----END DSA PRIVATE KEY-----\n"
|
||||
|
||||
#define IPCRYPTO_KEY_DB_EXAMPLE_RSA_KEY \
|
||||
"-----BEGIN RSA PRIVATE KEY-----\n" \
|
||||
"MIICXQIBAAKBgQCgdPfA8zN8csXArrNTdhCeIO4fUCw00rR0lVLp/xxihv0svIzG\n" \
|
||||
"iLvpl7s59mDs61O+xfArReY5edihGOVv9Gu9M5Sd1cnQOG1gLInI//5xX/EIdkb6\n" \
|
||||
"daQnsA3ABvXi4fb1qc94hFamaDr01x7x7epvuKleCQ3uQrkKyxN2xvoz1wIDAQAB\n" \
|
||||
"AoGAY8ATfYozibw4H877gHk3X3aNUj4fHT+YG5nxD7MezEmq/rLAuXOrjk5bgG8g\n" \
|
||||
"Vmj9iO24ns43j6el+pBlojHK/7nmd9TcCg8ONpVj2V+JKkY2guGftKOnH+ZpENAQ\n" \
|
||||
"ZS2wrcschvIblpz9etrWqNDFlaQDELr4iS/GE2rtA50RbHECQQDTddxeipxyZErV\n" \
|
||||
"0ebey93+oSmY1KCdPX6Frhh6PLn2HUFMk5TntOX5ZlnGJ9AhVocdZ6JOp2SBxvw/\n" \
|
||||
"P3+8u/NlAkEAwkDzr/MQ+BACjcIu8T0ruEUYB+tHym2ZvH7M1BuwYRNAZfdGCBzw\n" \
|
||||
"uU0fhOxNMjdZ1i2vOU44XlzrCdiS2zYciwJBAI+YgcVRq1ui746zs2uoVWAMYQr/\n" \
|
||||
"mPIuSDTPPKAFjOKsiyNNNNkD5wetkVkWwCdjcu1s6rMuyPm3/qOUo1Gu8GECQQDA\n" \
|
||||
"q8HI0/MRyHdv+Zmr5zt1Avsp56EGVB03TCGHhIs2Te0C9fc9Vs8hTDCmG+cZlrMB\n" \
|
||||
"b8CruzzHw6vQ0UIgMZSvAkBYSA9oFV7GuKuIL884yve03iCuuPIDRizNtwZWg0gC\n" \
|
||||
"MiAyDEnduD/fo8BV5eBpvEGSmlcYPoxS6heNh/bPRl5l\n" \
|
||||
"-----END RSA PRIVATE KEY-----\n"
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 4 TYPES
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 5 EXTERN PROTOTYPES
|
||||
****************************************************************************
|
||||
*/
|
||||
extern const char* ipcom_key_db_file_root;
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 6 LOCAL PROTOTYPES
|
||||
****************************************************************************
|
||||
*/
|
||||
IP_GLOBAL void ipcrypto_key_db_install_example_keys(void);
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 7 DATA
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 8 STATIC FUNCTIONS
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* ipcrypto_key_db_install_example_key
|
||||
*===========================================================================
|
||||
* Description:
|
||||
* Parameters:
|
||||
* Returns:
|
||||
*
|
||||
*/
|
||||
IP_STATIC void
|
||||
ipcrypto_key_db_install_example_key(const char* key_id, const char* key)
|
||||
{
|
||||
Ip_size_t len = ipcom_strlen(key);
|
||||
IP_FILE* fp;
|
||||
char* path = IP_NULL;
|
||||
const char* tmp_filename = "tmp_default";
|
||||
EVP_PKEY* pkey = IP_NULL;
|
||||
Ip_bool success = IP_FALSE;
|
||||
|
||||
path = ipcom_malloc(ipcom_strlen(ipcom_key_db_file_root)+ipcom_strlen(tmp_filename)+2);
|
||||
if (!path)
|
||||
return;
|
||||
ipcom_strcpy(path, ipcom_key_db_file_root);
|
||||
if (path[ipcom_strlen(path)-1] != '/')
|
||||
ipcom_strcat(path, "/");
|
||||
ipcom_strcat(path, tmp_filename);
|
||||
|
||||
fp = ipcom_fopen(path, "w+");
|
||||
if (!fp)
|
||||
{
|
||||
IPCOM_LOG1(ERR, "ipcrypto_key_db_install_example_key :: failed to create file: %s", path);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (ipcom_fwrite(key, 1, len, fp) != (Ip_size_t)len)
|
||||
{
|
||||
IPCOM_LOG1(ERR, "ipcrypto_key_db_install_example_key :: failed to write to file: %s", path);
|
||||
goto cleanup;
|
||||
}
|
||||
if (ipcom_fseek(fp, 0, IP_SEEK_SET)<0)
|
||||
{
|
||||
IPCOM_LOG1(ERR, "ipcrypto_key_db_install_example_key :: lseek failed: errno=%d", ipcom_errno);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
pkey = PEM_read_PrivateKey(fp, IP_NULL, IP_NULL, IP_NULL);
|
||||
if (!pkey)
|
||||
{
|
||||
IPCOM_LOG1(ERR, "ipcrypto_key_db_install_example_key :: failed to read key from file: %s", path);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (ipcom_key_db_pkey_import(key_id, pkey) != IPCOM_SUCCESS)
|
||||
goto cleanup;
|
||||
|
||||
success = IP_TRUE;
|
||||
|
||||
cleanup:
|
||||
if (fp)
|
||||
(void)ipcom_fclose(fp);
|
||||
if (path)
|
||||
{
|
||||
(void)ipcom_unlink(path);
|
||||
ipcom_free(path);
|
||||
}
|
||||
if (pkey)
|
||||
EVP_PKEY_free(pkey);
|
||||
|
||||
if (success)
|
||||
IPCOM_LOG1(INFO, "Key Database :: created example key: id=%s", key_id);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 9 GLOBAL FUNCTIONS
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
*===========================================================================
|
||||
* ipcrypto_key_db_install_example_keys
|
||||
*===========================================================================
|
||||
* Description:
|
||||
* Parameters:
|
||||
* Returns:
|
||||
*
|
||||
*/
|
||||
IP_GLOBAL void
|
||||
ipcrypto_key_db_install_example_keys(void)
|
||||
{
|
||||
#ifndef OPENSSL_NO_RSA
|
||||
ipcrypto_key_db_install_example_key("default_rsa", IPCRYPTO_KEY_DB_EXAMPLE_RSA_KEY);
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_DSA
|
||||
ipcrypto_key_db_install_example_key("default_dsa", IPCRYPTO_KEY_DB_EXAMPLE_DSA_KEY);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* 10 PUBLIC FUNCTIONS
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
****************************************************************************
|
||||
* END OF FILE
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user