mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +02:00
Merge pull request #7824 from anhu/maxq10xx_update
Update to the maxq10xx support
This commit is contained in:
@ -1028,7 +1028,7 @@ static int _ffc_pairwise_consistency_test(DhKey* key,
|
|||||||
if (n < 5)
|
if (n < 5)
|
||||||
return 0;
|
return 0;
|
||||||
else
|
else
|
||||||
return (word32)(2.4 * XPOW((double)n, 1.0/3.0) *
|
return (word32)((double)2.4 * XPOW((double)n, 1.0/3.0) *
|
||||||
XPOW(XLOG((double)n), 2.0/3.0) - 5);
|
XPOW(XLOG((double)n), 2.0/3.0) - 5);
|
||||||
}
|
}
|
||||||
#endif /* WOLFSSL_DH_CONST*/
|
#endif /* WOLFSSL_DH_CONST*/
|
||||||
|
@ -41,7 +41,11 @@
|
|||||||
#include <wolfssl/wolfcrypt/cryptocb.h>
|
#include <wolfssl/wolfcrypt/cryptocb.h>
|
||||||
#include <wolfssl/wolfcrypt/error-crypt.h>
|
#include <wolfssl/wolfcrypt/error-crypt.h>
|
||||||
#include <wolfssl/wolfcrypt/logging.h>
|
#include <wolfssl/wolfcrypt/logging.h>
|
||||||
|
#ifdef USS_API
|
||||||
|
#include <MXQ_API.h>
|
||||||
|
#else
|
||||||
#include <wolfssl/wolfcrypt/port/maxim/MXQ_API.h>
|
#include <wolfssl/wolfcrypt/port/maxim/MXQ_API.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef WOLFSSL_HAVE_ECC_KEY_GET_PRIV
|
#ifndef WOLFSSL_HAVE_ECC_KEY_GET_PRIV
|
||||||
/* FIPS build has replaced ecc.h. */
|
/* FIPS build has replaced ecc.h. */
|
||||||
@ -72,9 +76,17 @@ void dbg_dumphex(const char *identifier, const uint8_t* pdata, uint32_t plen);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define PUBKEY_IMPORT_OBJID 0x1000
|
#define PUBKEY_IMPORT_OBJID 0x1000
|
||||||
|
|
||||||
|
#if defined (TEST_SETUP)
|
||||||
|
#define ROOT_CA_CERT_OBJ_ID 0x1006
|
||||||
|
#define DEVICE_CERT_OBJ_ID 0x1005
|
||||||
|
#define DEVICE_KEY_PAIR_OBJ_ID 0x1007
|
||||||
|
#else
|
||||||
#define ROOT_CA_CERT_OBJ_ID 0x1003
|
#define ROOT_CA_CERT_OBJ_ID 0x1003
|
||||||
#define DEVICE_CERT_OBJ_ID 0x1002
|
#define DEVICE_CERT_OBJ_ID 0x1002
|
||||||
#define DEVICE_KEY_PAIR_OBJ_ID 0x1004
|
#define DEVICE_KEY_PAIR_OBJ_ID 0x1004
|
||||||
|
#endif
|
||||||
|
|
||||||
#define PSK_OBJ_ID 0x1236
|
#define PSK_OBJ_ID 0x1236
|
||||||
#define K_CHUNKSIZE 2032
|
#define K_CHUNKSIZE 2032
|
||||||
#define K_CIPHER_BLOCKSIZE 16
|
#define K_CIPHER_BLOCKSIZE 16
|
||||||
@ -120,7 +132,7 @@ static int tls13_server_key_len = -1;
|
|||||||
|
|
||||||
/* Please define MAXQ10XX_PRODUCTION_KEY in your build scripts once you have a
|
/* Please define MAXQ10XX_PRODUCTION_KEY in your build scripts once you have a
|
||||||
* production key. */
|
* production key. */
|
||||||
#if defined(MAXQ10XX_PRODUCTION_KEY) || !defined(DEBUG_WOLFSSL)
|
#if defined(MAXQ10XX_PRODUCTION_KEY)
|
||||||
#include "maxq10xx_key.h"
|
#include "maxq10xx_key.h"
|
||||||
#else
|
#else
|
||||||
/* TEST KEY. This must be changed for production environments!! */
|
/* TEST KEY. This must be changed for production environments!! */
|
||||||
@ -568,12 +580,14 @@ static int aes_set_key(Aes* aes, const byte* userKey, word32 keylen)
|
|||||||
return BAD_FUNC_ARG;
|
return BAD_FUNC_ARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(MAXQ10XX_MUTEX)
|
||||||
rc = maxq_CryptHwMutexTryLock();
|
rc = maxq_CryptHwMutexTryLock();
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
WOLFSSL_ERROR_MSG("MAXQ: aes_set_key() lock could not be acquired");
|
WOLFSSL_ERROR_MSG("MAXQ: aes_set_key() lock could not be acquired");
|
||||||
rc = NOT_COMPILED_IN;
|
rc = NOT_COMPILED_IN;
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (aes->maxq_ctx.key_obj_id) {
|
if (aes->maxq_ctx.key_obj_id) {
|
||||||
wc_MAXQ10XX_AesFree(aes);
|
wc_MAXQ10XX_AesFree(aes);
|
||||||
@ -694,12 +708,14 @@ static int ecc_set_key(ecc_key* key, const byte* userKey, word32 keycomplen)
|
|||||||
objtype = MXQ_OBJTYPE_KEYPAIR;
|
objtype = MXQ_OBJTYPE_KEYPAIR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(MAXQ10XX_MUTEX)
|
||||||
rc = maxq_CryptHwMutexTryLock();
|
rc = maxq_CryptHwMutexTryLock();
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
WOLFSSL_ERROR_MSG("MAXQ: ecc_set_key() lock could not be acquired");
|
WOLFSSL_ERROR_MSG("MAXQ: ecc_set_key() lock could not be acquired");
|
||||||
rc = NOT_COMPILED_IN;
|
rc = NOT_COMPILED_IN;
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (key->maxq_ctx.key_obj_id) {
|
if (key->maxq_ctx.key_obj_id) {
|
||||||
wc_MAXQ10XX_EccFree(key);
|
wc_MAXQ10XX_EccFree(key);
|
||||||
@ -1074,24 +1090,20 @@ static int maxq10xx_ecc_verify_local(
|
|||||||
#endif /* MAXQ_ECC */
|
#endif /* MAXQ_ECC */
|
||||||
|
|
||||||
#ifdef MAXQ_RNG
|
#ifdef MAXQ_RNG
|
||||||
static int maxq10xx_random(byte* output, unsigned short sz)
|
int maxq10xx_random(byte* output, unsigned short sz)
|
||||||
{
|
{
|
||||||
#if defined(WOLFSSL_MAXQ108X)
|
|
||||||
if (!tls13active) {
|
|
||||||
return NOT_COMPILED_IN;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (output == NULL) {
|
if (output == NULL) {
|
||||||
return BUFFER_E;
|
return BUFFER_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(MAXQ10XX_MUTEX)
|
||||||
int ret = maxq_CryptHwMutexTryLock();
|
int ret = maxq_CryptHwMutexTryLock();
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
WOLFSSL_ERROR_MSG("MAXQ: maxq10xx_random() lock could not be acquired");
|
WOLFSSL_ERROR_MSG("MAXQ: maxq10xx_random() lock could not be acquired");
|
||||||
ret = NOT_COMPILED_IN;
|
ret = NOT_COMPILED_IN;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (MXQ_Get_Random_Ext(output, sz, 0)) {
|
if (MXQ_Get_Random_Ext(output, sz, 0)) {
|
||||||
WOLFSSL_ERROR_MSG("MAXQ: MXQ_Get_Random_Ext() failed");
|
WOLFSSL_ERROR_MSG("MAXQ: MXQ_Get_Random_Ext() failed");
|
||||||
@ -1222,6 +1234,7 @@ static int do_sha256(wc_CryptoInfo* info)
|
|||||||
return WC_HW_E;
|
return WC_HW_E;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(MAXQ10XX_MUTEX)
|
||||||
if (info->hash.sha256->maxq_ctx.hash_running == 0) {
|
if (info->hash.sha256->maxq_ctx.hash_running == 0) {
|
||||||
rc = maxq_CryptHwMutexTryLock();
|
rc = maxq_CryptHwMutexTryLock();
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
@ -1229,6 +1242,7 @@ static int do_sha256(wc_CryptoInfo* info)
|
|||||||
return CRYPTOCB_UNAVAILABLE;
|
return CRYPTOCB_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (info->hash.in != NULL) {
|
if (info->hash.in != NULL) {
|
||||||
/* wc_Sha256Update */
|
/* wc_Sha256Update */
|
||||||
@ -1981,12 +1995,14 @@ int maxq10xx_port_init(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(MAXQ10XX_MUTEX)
|
||||||
ret = maxq_CryptHwMutexTryLock();
|
ret = maxq_CryptHwMutexTryLock();
|
||||||
if (ret) {
|
if (ret) {
|
||||||
WOLFSSL_ERROR_MSG("MAXQ: maxq10xx_port_init() -> device is busy "
|
WOLFSSL_ERROR_MSG("MAXQ: maxq10xx_port_init() -> device is busy "
|
||||||
"(switching to soft mode)");
|
"(switching to soft mode)");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
mxq_rc = MXQ_Module_Init();
|
mxq_rc = MXQ_Module_Init();
|
||||||
if (mxq_rc) {
|
if (mxq_rc) {
|
||||||
@ -3290,7 +3306,7 @@ static int maxq10xx_perform_tls13_record_processing(WOLFSSL* ssl,
|
|||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
mxq_err_t mxq_rc;
|
mxq_err_t mxq_rc;
|
||||||
mxq_u2 key_id;
|
mxq_u2 key_id = 0xFFFF;
|
||||||
|
|
||||||
if (!tls13active) {
|
if (!tls13active) {
|
||||||
return NOT_COMPILED_IN;
|
return NOT_COMPILED_IN;
|
||||||
|
@ -96,6 +96,7 @@ WOLFSSL_LOCAL void wc_MAXQ10XX_Sha256Copy(wc_Sha256* sha256);
|
|||||||
WOLFSSL_LOCAL void wc_MAXQ10XX_Sha256Free(wc_Sha256* sha256);
|
WOLFSSL_LOCAL void wc_MAXQ10XX_Sha256Free(wc_Sha256* sha256);
|
||||||
WOLFSSL_LOCAL int wc_MAXQ10XX_EccSetKey(ecc_key* key, word32 keysize);
|
WOLFSSL_LOCAL int wc_MAXQ10XX_EccSetKey(ecc_key* key, word32 keysize);
|
||||||
WOLFSSL_LOCAL void wc_MAXQ10XX_EccFree(ecc_key* key);
|
WOLFSSL_LOCAL void wc_MAXQ10XX_EccFree(ecc_key* key);
|
||||||
|
WOLFSSL_LOCAL int maxq10xx_random(byte* output, unsigned short sz);
|
||||||
#endif /* WOLFSSL_MAXQ10XX_CRYPTO */
|
#endif /* WOLFSSL_MAXQ10XX_CRYPTO */
|
||||||
|
|
||||||
#ifdef HAVE_PK_CALLBACKS
|
#ifdef HAVE_PK_CALLBACKS
|
||||||
|
Reference in New Issue
Block a user