forked from wolfSSL/wolfssl
Changes to support IAR with position independent code (ROPI). Updated example wolfSSL IAR project to use "ropi" (Position indipendance for code and read-only data).
This commit is contained in:
@ -343,7 +343,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPosIndRopi</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPosIndRwpi</name>
|
||||
|
@ -3124,7 +3124,7 @@ int wolfSSL_want_write(WOLFSSL* ssl)
|
||||
|
||||
char* wolfSSL_ERR_error_string(unsigned long errNumber, char* data)
|
||||
{
|
||||
static const char* const msg = "Please supply a buffer for error string";
|
||||
static wcchar msg = "Please supply a buffer for error string";
|
||||
|
||||
WOLFSSL_ENTER("ERR_error_string");
|
||||
if (data) {
|
||||
|
@ -2309,8 +2309,6 @@ static void wc_AesDecrypt(Aes* aes, const byte* inBlock, byte* outBlock)
|
||||
#endif
|
||||
|
||||
#ifdef NEED_AES_TABLES
|
||||
(void)temp;
|
||||
|
||||
switch (keylen) {
|
||||
#if defined(AES_MAX_KEY_SIZE) && AES_MAX_KEY_SIZE >= 128 && \
|
||||
defined(WOLFSSL_AES_128)
|
||||
@ -2436,6 +2434,7 @@ static void wc_AesDecrypt(Aes* aes, const byte* inBlock, byte* outBlock)
|
||||
#else
|
||||
(void)dir;
|
||||
#endif /* HAVE_AES_DECRYPT */
|
||||
(void)temp;
|
||||
#endif /* NEED_AES_TABLES */
|
||||
|
||||
#if defined(WOLFSSL_SCE) && !defined(WOLFSSL_SCE_NO_AES)
|
||||
|
@ -9794,51 +9794,51 @@ void wc_FreeDer(DerBuffer** pDer)
|
||||
/* Max X509 header length indicates the max length + 2 ('\n', '\0') */
|
||||
#define MAX_X509_HEADER_SZ (37 + 2)
|
||||
|
||||
const char* const BEGIN_CERT = "-----BEGIN CERTIFICATE-----";
|
||||
const char* const END_CERT = "-----END CERTIFICATE-----";
|
||||
wcchar BEGIN_CERT = "-----BEGIN CERTIFICATE-----";
|
||||
wcchar END_CERT = "-----END CERTIFICATE-----";
|
||||
#ifdef WOLFSSL_CERT_REQ
|
||||
const char* const BEGIN_CERT_REQ = "-----BEGIN CERTIFICATE REQUEST-----";
|
||||
const char* const END_CERT_REQ = "-----END CERTIFICATE REQUEST-----";
|
||||
wcchar BEGIN_CERT_REQ = "-----BEGIN CERTIFICATE REQUEST-----";
|
||||
wcchar END_CERT_REQ = "-----END CERTIFICATE REQUEST-----";
|
||||
#endif
|
||||
#ifndef NO_DH
|
||||
const char* const BEGIN_DH_PARAM = "-----BEGIN DH PARAMETERS-----";
|
||||
const char* const END_DH_PARAM = "-----END DH PARAMETERS-----";
|
||||
wcchar BEGIN_DH_PARAM = "-----BEGIN DH PARAMETERS-----";
|
||||
wcchar END_DH_PARAM = "-----END DH PARAMETERS-----";
|
||||
#endif
|
||||
#ifndef NO_DSA
|
||||
const char* const BEGIN_DSA_PARAM = "-----BEGIN DSA PARAMETERS-----";
|
||||
const char* const END_DSA_PARAM = "-----END DSA PARAMETERS-----";
|
||||
wcchar BEGIN_DSA_PARAM = "-----BEGIN DSA PARAMETERS-----";
|
||||
wcchar END_DSA_PARAM = "-----END DSA PARAMETERS-----";
|
||||
#endif
|
||||
const char* const BEGIN_X509_CRL = "-----BEGIN X509 CRL-----";
|
||||
const char* const END_X509_CRL = "-----END X509 CRL-----";
|
||||
const char* const BEGIN_RSA_PRIV = "-----BEGIN RSA PRIVATE KEY-----";
|
||||
const char* const END_RSA_PRIV = "-----END RSA PRIVATE KEY-----";
|
||||
const char* const BEGIN_PRIV_KEY = "-----BEGIN PRIVATE KEY-----";
|
||||
const char* const END_PRIV_KEY = "-----END PRIVATE KEY-----";
|
||||
const char* const BEGIN_ENC_PRIV_KEY = "-----BEGIN ENCRYPTED PRIVATE KEY-----";
|
||||
const char* const END_ENC_PRIV_KEY = "-----END ENCRYPTED PRIVATE KEY-----";
|
||||
wcchar BEGIN_X509_CRL = "-----BEGIN X509 CRL-----";
|
||||
wcchar END_X509_CRL = "-----END X509 CRL-----";
|
||||
wcchar BEGIN_RSA_PRIV = "-----BEGIN RSA PRIVATE KEY-----";
|
||||
wcchar END_RSA_PRIV = "-----END RSA PRIVATE KEY-----";
|
||||
wcchar BEGIN_PRIV_KEY = "-----BEGIN PRIVATE KEY-----";
|
||||
wcchar END_PRIV_KEY = "-----END PRIVATE KEY-----";
|
||||
wcchar BEGIN_ENC_PRIV_KEY = "-----BEGIN ENCRYPTED PRIVATE KEY-----";
|
||||
wcchar END_ENC_PRIV_KEY = "-----END ENCRYPTED PRIVATE KEY-----";
|
||||
#ifdef HAVE_ECC
|
||||
const char* const BEGIN_EC_PRIV = "-----BEGIN EC PRIVATE KEY-----";
|
||||
const char* const END_EC_PRIV = "-----END EC PRIVATE KEY-----";
|
||||
wcchar BEGIN_EC_PRIV = "-----BEGIN EC PRIVATE KEY-----";
|
||||
wcchar END_EC_PRIV = "-----END EC PRIVATE KEY-----";
|
||||
#endif
|
||||
#if defined(HAVE_ECC) || defined(HAVE_ED25519) || defined(HAVE_ED448) || \
|
||||
!defined(NO_DSA)
|
||||
const char* const BEGIN_DSA_PRIV = "-----BEGIN DSA PRIVATE KEY-----";
|
||||
const char* const END_DSA_PRIV = "-----END DSA PRIVATE KEY-----";
|
||||
wcchar BEGIN_DSA_PRIV = "-----BEGIN DSA PRIVATE KEY-----";
|
||||
wcchar END_DSA_PRIV = "-----END DSA PRIVATE KEY-----";
|
||||
#endif
|
||||
#ifdef OPENSSL_EXTRA
|
||||
const char BEGIN_PRIV_KEY_PREFIX[] = "-----BEGIN";
|
||||
const char PRIV_KEY_SUFFIX[] = "PRIVATE KEY-----";
|
||||
const char END_PRIV_KEY_PREFIX[] = "-----END";
|
||||
#endif
|
||||
const char* const BEGIN_PUB_KEY = "-----BEGIN PUBLIC KEY-----";
|
||||
const char* const END_PUB_KEY = "-----END PUBLIC KEY-----";
|
||||
wcchar BEGIN_PUB_KEY = "-----BEGIN PUBLIC KEY-----";
|
||||
wcchar END_PUB_KEY = "-----END PUBLIC KEY-----";
|
||||
#if defined(HAVE_ED25519) || defined(HAVE_ED448)
|
||||
const char* const BEGIN_EDDSA_PRIV = "-----BEGIN EDDSA PRIVATE KEY-----";
|
||||
const char* const END_EDDSA_PRIV = "-----END EDDSA PRIVATE KEY-----";
|
||||
wcchar BEGIN_EDDSA_PRIV = "-----BEGIN EDDSA PRIVATE KEY-----";
|
||||
wcchar END_EDDSA_PRIV = "-----END EDDSA PRIVATE KEY-----";
|
||||
#endif
|
||||
#ifdef HAVE_CRL
|
||||
const char *const BEGIN_CRL = "-----BEGIN X509 CRL-----";
|
||||
const char* const END_CRL = "-----END X509 CRL-----";
|
||||
wcchar END_CRL = "-----END X509 CRL-----";
|
||||
#endif
|
||||
|
||||
|
||||
@ -9953,22 +9953,22 @@ int wc_PemGetHeaderFooter(int type, const char** header, const char** footer)
|
||||
|
||||
#ifdef WOLFSSL_ENCRYPTED_KEYS
|
||||
|
||||
static const char* const kProcTypeHeader = "Proc-Type";
|
||||
static const char* const kDecInfoHeader = "DEK-Info";
|
||||
static wcchar kProcTypeHeader = "Proc-Type";
|
||||
static wcchar kDecInfoHeader = "DEK-Info";
|
||||
|
||||
#ifdef WOLFSSL_PEM_TO_DER
|
||||
#ifndef NO_DES3
|
||||
static const char* const kEncTypeDes = "DES-CBC";
|
||||
static const char* const kEncTypeDes3 = "DES-EDE3-CBC";
|
||||
static wcchar kEncTypeDes = "DES-CBC";
|
||||
static wcchar kEncTypeDes3 = "DES-EDE3-CBC";
|
||||
#endif
|
||||
#if !defined(NO_AES) && defined(HAVE_AES_CBC) && defined(WOLFSSL_AES_128)
|
||||
static const char* const kEncTypeAesCbc128 = "AES-128-CBC";
|
||||
static wcchar kEncTypeAesCbc128 = "AES-128-CBC";
|
||||
#endif
|
||||
#if !defined(NO_AES) && defined(HAVE_AES_CBC) && defined(WOLFSSL_AES_192)
|
||||
static const char* const kEncTypeAesCbc192 = "AES-192-CBC";
|
||||
static wcchar kEncTypeAesCbc192 = "AES-192-CBC";
|
||||
#endif
|
||||
#if !defined(NO_AES) && defined(HAVE_AES_CBC) && defined(WOLFSSL_AES_256)
|
||||
static const char* const kEncTypeAesCbc256 = "AES-256-CBC";
|
||||
static wcchar kEncTypeAesCbc256 = "AES-256-CBC";
|
||||
#endif
|
||||
|
||||
int wc_EncryptedInfoGet(EncryptedInfo* info, const char* cipherInfo)
|
||||
|
@ -529,9 +529,6 @@ int fp_mul_comba(fp_int *A, fp_int *B, fp_int *C)
|
||||
fp_int *tmp;
|
||||
#endif
|
||||
|
||||
/* Variables used but not seen by cppcheck. */
|
||||
(void)c0; (void)c1; (void)c2;
|
||||
|
||||
IF_HAVE_INTEL_MULX(ret = fp_mul_comba_mulx(A, B, C), return ret) ;
|
||||
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
@ -587,6 +584,9 @@ int fp_mul_comba(fp_int *A, fp_int *B, fp_int *C)
|
||||
dst->sign = A->sign ^ B->sign;
|
||||
fp_clamp(dst);
|
||||
fp_copy(dst, C);
|
||||
|
||||
/* Variables used but not seen by cppcheck. */
|
||||
(void)c0; (void)c1; (void)c2;
|
||||
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
XFREE(tmp, NULL, DYNAMIC_TYPE_BIGINT);
|
||||
@ -2624,12 +2624,6 @@ int fp_sqr_comba(fp_int *A, fp_int *B)
|
||||
fp_int *tmp;
|
||||
#endif
|
||||
|
||||
/* Variables used but not seen by cppcheck. */
|
||||
(void)c0; (void)c1; (void)c2;
|
||||
#ifdef TFM_ISO
|
||||
(void)tt;
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
tmp = (fp_int*)XMALLOC(sizeof(fp_int), NULL, DYNAMIC_TYPE_BIGINT);
|
||||
if (tmp == NULL)
|
||||
@ -2705,6 +2699,12 @@ int fp_sqr_comba(fp_int *A, fp_int *B)
|
||||
fp_copy(dst, B);
|
||||
}
|
||||
|
||||
/* Variables used but not seen by cppcheck. */
|
||||
(void)c0; (void)c1; (void)c2;
|
||||
#ifdef TFM_ISO
|
||||
(void)tt;
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
XFREE(tmp, NULL, DYNAMIC_TYPE_BIGINT);
|
||||
#endif
|
||||
@ -4704,7 +4704,7 @@ int mp_add_d(fp_int *a, fp_digit b, fp_int *c)
|
||||
defined(DEBUG_WOLFSSL) || defined(OPENSSL_EXTRA) || defined(WC_MP_TO_RADIX)
|
||||
|
||||
/* chars used in radix conversions */
|
||||
static const char* const fp_s_rmap = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
static wcchar fp_s_rmap = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"abcdefghijklmnopqrstuvwxyz+/";
|
||||
#endif
|
||||
|
||||
|
@ -4499,10 +4499,20 @@ WOLFSSL_LOCAL word32 LowResTimer(void);
|
||||
WOLFSSL_LOCAL int CopyDecodedToX509(WOLFSSL_X509*, DecodedCert*);
|
||||
#endif
|
||||
|
||||
#ifndef MAX_CIPHER_NAME
|
||||
#define MAX_CIPHER_NAME 50
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_NAMES_STATIC
|
||||
typedef char cipher_name[MAX_CIPHER_NAME];
|
||||
#else
|
||||
typedef const char* cipher_name;
|
||||
#endif
|
||||
|
||||
typedef struct CipherSuiteInfo {
|
||||
const char* name;
|
||||
cipher_name name;
|
||||
#ifndef NO_ERROR_STRINGS
|
||||
const char* name_iana;
|
||||
cipher_name name_iana;
|
||||
#endif
|
||||
byte cipherSuite0;
|
||||
byte cipherSuite;
|
||||
|
@ -44,10 +44,16 @@
|
||||
|
||||
#define CURVE25519_KEYSIZE 32
|
||||
|
||||
#ifdef WOLFSSL_NAMES_STATIC
|
||||
typedef char curve25519_str[12];
|
||||
#else
|
||||
typedef const char* curve25519_str;
|
||||
#endif
|
||||
|
||||
/* curve25519 set type */
|
||||
typedef struct {
|
||||
int size; /* The size of the curve in octets */
|
||||
const char* name; /* name of this curve */
|
||||
int size; /* The size of the curve in octets */
|
||||
curve25519_str name; /* name of this curve */
|
||||
} curve25519_set_type;
|
||||
|
||||
|
||||
|
@ -2173,6 +2173,13 @@ extern void uITRON4_free(void *p) ;
|
||||
#define NO_SESSION_CACHE
|
||||
#endif
|
||||
|
||||
/* Use static ECC structs for Position Independant Code (PIC) */
|
||||
#if defined(__IAR_SYSTEMS_ICC__) && defined(__ROPI__)
|
||||
#define WOLFSSL_ECC_CURVE_STATIC
|
||||
#define WOLFSSL_NAMES_STATIC
|
||||
#define WOLFSSL_NO_CONSTCHARCONST
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
|
@ -71,6 +71,14 @@
|
||||
#endif
|
||||
|
||||
|
||||
/* constant pointer to a constant char */
|
||||
#ifdef WOLFSSL_NO_CONSTCHARCONST
|
||||
typedef const char* wcchar;
|
||||
#else
|
||||
typedef const char* const wcchar;
|
||||
#endif
|
||||
|
||||
|
||||
/* try to set SIZEOF_LONG or SIZEOF_LONG_LONG if user didn't */
|
||||
#if defined(_MSC_VER) || defined(HAVE_LIMITS_H)
|
||||
#if !defined(SIZEOF_LONG_LONG) && !defined(SIZEOF_LONG)
|
||||
|
Reference in New Issue
Block a user