Files
m241Neelima/components/ip_net2-6.9/ipcrypto/config/ipcrypto_config.c
T
2026-07-30 11:19:44 +05:30

912 lines
27 KiB
C

/*
******************************************************************************
* 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
****************************************************************************
*/