diff --git a/ide/IAR-EWARM/Projects/lib/wolfSSH-Lib.ewp b/ide/IAR-EWARM/Projects/lib/wolfSSH-Lib.ewp index c47eac1..62ac251 100644 --- a/ide/IAR-EWARM/Projects/lib/wolfSSH-Lib.ewp +++ b/ide/IAR-EWARM/Projects/lib/wolfSSH-Lib.ewp @@ -1,1971 +1,2152 @@ - - + - 2 - - Debug - - ARM - - 1 - - General - 3 - - 24 - 1 + 3 + + Debug + + ARM + 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - 0 - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 18 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 24 - 1 + + General + 3 + + 31 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 36 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 23 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - 0 - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 18 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - config - - $PROJ_DIR$\..\user_settings.h - - - - src - - $PROJ_DIR$\..\..\..\..\src\internal.c - - - $PROJ_DIR$\..\..\..\..\src\io.c - - - $PROJ_DIR$\..\..\..\..\src\keygen.c - - - $PROJ_DIR$\..\..\..\..\src\log.c - - - $PROJ_DIR$\..\..\..\..\src\port.c - - - $PROJ_DIR$\..\..\..\..\src\ssh.c - - - $PROJ_DIR$\..\..\..\..\src\wolfscp.c - - - $PROJ_DIR$\..\..\..\..\src\wolfsftp.c - - - $PROJ_DIR$\..\..\..\..\src\wolfterm.c - - + + General + 3 + + 31 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 36 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 23 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + config + + $PROJ_DIR$\..\user_settings.h + + + + src + + $PROJ_DIR$\..\..\..\..\src\internal.c + + + $PROJ_DIR$\..\..\..\..\src\io.c + + + $PROJ_DIR$\..\..\..\..\src\keygen.c + + + $PROJ_DIR$\..\..\..\..\src\log.c + + + $PROJ_DIR$\..\..\..\..\src\port.c + + + $PROJ_DIR$\..\..\..\..\src\ssh.c + + + $PROJ_DIR$\..\..\..\..\src\wolfscp.c + + + $PROJ_DIR$\..\..\..\..\src\wolfsftp.c + + + $PROJ_DIR$\..\..\..\..\src\wolfterm.c + + - - diff --git a/ide/IAR-EWARM/Projects/myFilesystem.c b/ide/IAR-EWARM/Projects/myFilesystem.c new file mode 100644 index 0000000..b9b14ca --- /dev/null +++ b/ide/IAR-EWARM/Projects/myFilesystem.c @@ -0,0 +1,137 @@ +/* dummy_filesystem.c + * + * Copyright (C) 2014-2020 wolfSSL Inc. + * + * This file is part of wolfSSH. + * + * wolfSSH is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * wolfSSH is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with wolfSSH. If not, see . + */ + + +#ifdef HAVE_CONFIG_H + #include +#endif + +#include +#include +#include + +#ifdef WOLFSSH_USER_FILESYSTEM + +#include "myFilesystem.h" + +int dummy_wfopen(FILE **f, const char *n, const char *m){ + (void) n; (void) m; (void)f; + return NULL; +} + +int dummy_fclose(FILE *f) { + (void) f; + return 0; +} + +size_t dummy_fread(void *b, size_t s, size_t n, FILE *f) { + (void) b; (void) s; (void) n; (void) f; + return 0; +} +size_t dummy_fwrite(const void *b, size_t s, size_t n, FILE *f) { + (void) b; (void) s; (void) n; (void) f; + return 0; +} + +int dummy_fseek(FILE *f, long int p, int m) { + (void) f; (void) p; (void) m; + return 0; +} +long int dummy_ftell(FILE *f) { + (void) f; + return 0; +} +void dummy_rewind(FILE *f) { + (void) f; +} + + #define WFD int + +int dummy_open (const char* n, int f, int m) { + (void) f; (void) n; (void) m; + return 0; +} + +int dummy_close(int f) { + (void) f; + return 0; +} + +size_t dummy_pread (int f, void* b, size_t c, off_t *o) { + (void) f; (void) b; (void) c; (void)o; + return 0; +} + +size_t dummy_pwrite (int f, void* b, size_t c, off_t *o) { + (void) f; (void) b; (void) c; (void)o; + return 0; +} + +char *dummy_getcwd(char *f, size_t l){ + (void) f; (void) l; + return 0; +} +int dummy_rmdir(const char *p){ + (void) p; + return 0; +} + +int dummy_mkdir(const char *p, mode_t m) { + (void) p; (void) m; + return 0; +} +int dummy_remove(const char *p){ + (void) p; + return 0; +} +int dummy_rename(const char *p, const char *np){ + (void) p; (void)np; + return 0; +} + +int dummy_stat(const char *p, stat_t *b) { + (void) p; (void)b; + return 0; +} +int dummy_lstat(const char *p, stat_t *b) { + (void) p; (void)b; + return 0; +} + +int dummy_chmod(const char *p, mode_t m) { + (void) p; (void)m; + return 0; +} + +int SFTP_GetAttributes(void* fs, const char* fileName, + void* atr, byte link, void* heap) { + (void)fs; (void)fileName; (void)atr; (void)link; (void)heap; + return 0; + +} + +int SFTP_GetAttributes_Handle(void* ssh, byte* handle, int handleSz, + void* atr) { + (void)ssh; (void)handle; (void)handleSz; + + return 0; +} + +#endif diff --git a/ide/IAR-EWARM/Projects/myFilesystem.h b/ide/IAR-EWARM/Projects/myFilesystem.h new file mode 100644 index 0000000..d7fa37e --- /dev/null +++ b/ide/IAR-EWARM/Projects/myFilesystem.h @@ -0,0 +1,98 @@ +/* dummy_filesystem.h + * + * Copyright (C) 2014-2020 wolfSSL Inc. + * + * This file is part of wolfSSH. + * + * wolfSSH is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * wolfSSH is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with wolfSSH. If not, see . + */ + + +#ifndef DUMMY_FILESYSTEM_H +#define DUMMY_FILESYSTEM_H + +#ifdef WOLFSSH_USER_FILESYSTEM + typedef unsigned int off_t; + typedef int mode_t; + #define WFILE int + #define WFOPEN(f,n,m) dummy_wfopen((f),(n),(m)) + #define WFCLOSE(f) dummy_fclose(f) + #define WFREAD(b,s,a,f) dummy_fread((b),(s),(a),(f)) + #define WFWRITE(b,s,a,f) dummy_fwrite((b),(s),(a),(f)) + #define WFSEEK(s,o,w) dummy_fseek((s),(o),(w)) + #define WFTELL(s) dummy_ftell((s)) + #define WREWIND(s) dummy_rewind((s)) + #define WSEEK_END SEEK_END + #define WBADFILE NULL + #define WS_DELIM '/' + + #define WFD int + typedef int FILE; + +enum { + WOLFSSH_O_RDWR, WOLFSSH_O_RDONLY, WOLFSSH_O_WRONLY, + WOLFSSH_O_APPEND, WOLFSSH_O_CREAT, WOLFSSH_O_TRUNC, WOLFSSH_O_EXCL +} ; + + #define WOPEN(p, m, f) dummy_open(p, m, f) + #define WCLOSE(f) dummy_close(f) + #define WPREAD(f, b, c, o) dummy_pread(f, b, c, o) + #define WPWRITE(f, b, c, o) dummy_pwrite(f, b, c, o) + #define WGETCWD(f, b, l) dummy_getcwd(b, l) + #define WRMDIR(f, p) dummy_rmdir(p) + #define WMKDIR(f, p, m) dummy_mkdir(p, m) + + #define WREMOVE(fs,d) dummy_remove((d)) + #define WRENAME(fs,o,n) dummy_rename((o),(n)) + + #define WSTAT_T stat_t + typedef struct { int i; } stat_t; + + #define WSTAT(p,b) dummy_stat((b),(p)) + #define WLSTAT(p,b) dummy_lstat((b),(p)) + #define WCHMOD(fs,f,m) dummy_chmod((f),(m)) + +int dummy_wfopen(FILE **f, const char *n, const char *m); +int dummy_fclose(FILE *f); +size_t dummy_fread(void *b, size_t s, size_t n, FILE *f); +size_t dummy_fwrite(const void *b, size_t s, size_t n, FILE *f); +int dummy_fseek(FILE *f, long int p, int m); +long dummy_ftell(FILE *f); +void dummy_rewind(FILE *f); + +int dummy_open (const char* n, int f, int m); +int dummy_close(int f); +size_t dummy_pread (int f, void* b, size_t c, off_t *o); +size_t dummy_pwrite (int f, void* b, size_t c, off_t *o); +char *dummy_getcwd(char *f, size_t l); +int dummy_rmdir(const char *p); +int dummy_mkdir(const char *p, mode_t m); +int dummy_remove(const char *p); +int dummy_rename(const char *p, const char *np); +int dummy_stat(const char *p, stat_t *b); +int dummy_lstat(const char *p, stat_t *b); + +int dummy_chmod(const char *p, mode_t m); + +#define WFD int +enum { O_RDWR, O_RDONLY, O_WRONLY, O_APPEND, O_CREAT, O_TRUNC, O_EXCL } ; + +int SFTP_GetAttributes(void* fs, const char* fileName, + void* atr, byte link, void* heap); +int SFTP_GetAttributes_Handle(void* ssh, byte* handle, int handleSz, + void* atr); + +#endif /* WOLFSSH_USER_FILESYSTEM */ + +#endif \ No newline at end of file diff --git a/ide/IAR-EWARM/Projects/user_settings.h b/ide/IAR-EWARM/Projects/user_settings.h index 3d4029e..3ab271b 100644 --- a/ide/IAR-EWARM/Projects/user_settings.h +++ b/ide/IAR-EWARM/Projects/user_settings.h @@ -1,39 +1,68 @@ -#define NO_MAIN_DRIVER -#define BENCH_EMBEDDED -#define NO_WRITEV -#define WOLFSSL_USER_IO -#define NO_DEV_RANDOM -#define USE_CERT_BUFFERS_2048 -#define WOLFSSL_USER_CURRTIME -#define SIZEOF_LONG_LONG 8 -#define NO_WOLFSSL_DIR -#define WOLFSSL_NO_CURRDIR -#define NO_WOLF_C99 -#define NO_MULTIBYTE_PRINT - -#define XVALIDATEDATE(d, f,t) (0) -#define WOLFSSL_USER_CURRTIME /* for benchmark */ - -#define WOLFSSL_GENSEED_FORTEST /* Warning: define your own seed gen */ - -#define TFM_TIMING_RESISTANT -#define ECC_TIMING_RESISTANT -#define WC_RSA_BLINDING - -#define SINGLE_THREADED /* or define RTOS option */ -/* #define WOLFSSL_CMSIS_RTOS */ -#define NO_FILESYSTEM - -/* #define NO_DH */ -#define HAVE_AESGCM -#define WOLFSSL_SHA512 -#define HAVE_ECC -#define HAVE_CURVE25519 -#define CURVE25519_SMALL -#define HAVE_ED25519 - -#define WOLFSSH_USER_IO -#define WOLFSSL_USER_IO - -#define WOLFSSH_LOG_PRINTF -#define WOLFSSL_LOG_PRINTF +#ifndef USER_SETTINGS_H +#define USER_SETTINGS_H + +#define BENCH_EMBEDDED +#define NO_WRITEV +#define WOLFSSL_USER_IO +#define NO_DEV_RANDOM +#define USE_CERT_BUFFERS_2048 +#define WOLFSSL_USER_CURRTIME +#define SIZEOF_LONG_LONG 8 +#define NO_WOLFSSL_DIR +#define WOLFSSL_NO_CURRDIR +#define NO_WOLF_C99 +#define NO_MULTIBYTE_PRINT + +#define XVALIDATEDATE(d, f,t) (0) +#define WOLFSSL_USER_CURRTIME /* for benchmark */ + +#define WOLFSSL_GENSEED_FORTEST /* Warning: define your own seed gen */ + +#define TFM_TIMING_RESISTANT +#define ECC_TIMING_RESISTANT +#define WC_RSA_BLINDING + +#define SINGLE_THREADED /* or define RTOS option */ +#define WOLFSSH_THREAD +typedef unsigned int THREAD_RETURN; + +/* #define WOLFSSL_CMSIS_RTOS */ +/* #define NO_FILESYSTEM */ + +/* #define NO_DH */ +#define HAVE_AESGCM +#define WOLFSSL_SHA512 +#define HAVE_ECC +#define HAVE_CURVE25519 +#define CURVE25519_SMALL +#define HAVE_ED25519 + +#define WOLFSSH_USER_IO +#define WOLFSSL_USER_IO + +#define WOLFSSH_SFTP + +#define WOLFSSH_USER_FILESYSTEM +#define WOLFSSL_USER_FILESYSTEM +#define NO_WOLFSSH_DIR + +/* To be defined for the target Socket API */ +#define WSTARTTCP() +#define WCLOSESOCKET(s) +#define ChangeToWolfSshRoot(a) + +typedef int SOCKADDR_IN_T; + +#define WOLFSSH_LOG_PRINTF +#define WOLFSSL_LOG_PRINTF +#define XFPRINTF(err, ... ) printf(__VA_ARGS__) +#define err_sys(...) printf(__VA_ARGS__) + +enum { + WS_SELECT_FAIL, + WS_SELECT_TIMEOUT, + WS_SELECT_RECV_READY, + WS_SELECT_ERROR_READY +}; + +#endif diff --git a/ide/IAR-EWARM/include.am b/ide/IAR-EWARM/include.am new file mode 100644 index 0000000..d49b81f --- /dev/null +++ b/ide/IAR-EWARM/include.am @@ -0,0 +1,13 @@ +# vim:ft=automake +# included from Top Level Makefile.am +# All paths should be given relative to the root + +EXTRA_DIST+= ide/IAR-EWARM/Projects/test_user_io.h +EXTRA_DIST+= ide/IAR-EWARM/Projects/user_settings.h +EXTRA_DIST+= ide/IAR-EWARM/Projects/lib/wolfSSH-Lib.ewp +EXTRA_DIST+= ide/IAR-EWARM/Projects/lib/wolfSSH-Lib.ewd +EXTRA_DIST+= ide/IAR-EWARM/Projects/echoserver/echoserver.ewp +EXTRA_DIST+= ide/IAR-EWARM/Projects/echoserver/echoserver.ewd +EXTRA_DIST+= ide/IAR-EWARM/Projects/myFilesystem.c +EXTRA_DIST+= ide/IAR-EWARM/Projects/myFilesystem.h +EXTRA_DIST+= ide/IAR-EWARM/Projects/README.md diff --git a/ide/include.am b/ide/include.am index 22d583a..f0caa18 100644 --- a/ide/include.am +++ b/ide/include.am @@ -5,5 +5,6 @@ include ide/winvs/include.am include ide/CSBENCH/include.am include ide/MQX/include.am +include ide/IAR-EWARM/include.am EXTRA_DIST += ide/Renesas