[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ESP32


libssh has a strong dependency on libcrypto from OpenSSL or libgcrypt.
If neither is found, it will not compile at all. I suggest you start by
looking if compiling OpenSSL for ESP32 is achievable, before spending
time on libssh.
I'm not sure libssh is the right tool for your need, the amount of work
needed to make it work may not be worth it.

Aris

On 29/03/17 20:01, Greg Stewart wrote:
> Thanks for the quick response. I can run CMake from my mac, but I
> don't think that is what you mean. The ESP32 does have and OpenSSL
> implementation. Right now I'm just telling the compiler to compile all
> of the c files in the src directory. What should be my approach? 
>
> Ultimately I want to use scp to update a config file on a remote and
> then send two commands to that remote server to reboot.
>
> Thanks,
> Greg
>
> On Wed, Mar 29, 2017 at 11:48 AM, Aris Adamantiadis <aris@xxxxxxxxxxxx
> <mailto:aris@xxxxxxxxxxxx>> wrote:
>
>     Hi Greg,
>
>     This is not an easy task. Compilers for embedded architectures have
>     strong limitations, and the OS (are you using RTOS?) is quite limited
>     and not strict POSIX. A majority of errors you pasted can be linked to
>     the lack of OpenSSL headers in your include path. Did you manage
>     to run
>     CMake on the source tree? If not, you will have to manually write the
>     config.h file.
>     Some parts of libssh may be stripped out, like the agent, but some
>     parts
>     cannot be removed.
>
>     Aris
>
>     On 29/03/17 19:19, Greg Stewart wrote:
>     > Hello. I am trying to get libssh to work on an ESP32. This is a new
>     > ble+wifi modules with MCU from Espressif. It is gaining popularity,
>     > and I would love to use libssh from the esp32. When I begin, I get
>     > this error:
>     >
>     >     libssh/include/libssh/libssh.h:67:44: fatal error: sys/select.h
>     >
>     > If I comment out that line, the header files are fine. I then try to
>     > compile all of the c files and I get lots of errors. They are
>     found at
>     > the end of the email.
>     >
>     > Is there something I need to do to make this work? I've worked with
>     > Espressif too, and they said they have done all they can to help.
>     >
>     > Thanks,
>     > Greg
>     >
>     >
>     >
>     >
>     > In file included from
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/src/agent.c:53:0:
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/priv.h:42:4:
>     > error: #error "no strtoull function found"
>     >
>     >  #  error "no strtoull function found"
>     >
>     >     ^
>     >
>     > In file included from
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/src/agent.c:53:0:
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/priv.h:165:4:
>     > error: #error "Your system must provide a __func__ macro"
>     >
>     >  #  error "Your system must provide a __func__ macro"
>     >
>     >     ^
>     >
>     > In file included from
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/packet.h:24:0,
>     >
>     >                  from
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/session.h:25,
>     >
>     >                  from
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/src/agent.c:56:
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:55:1:
>     > error: unknown type name 'MD5CTX'
>     >
>     >  MD5CTX md5_init(void);
>     >
>     >  ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:56:17:
>     > error: unknown type name 'MD5CTX'
>     >
>     >  void md5_update(MD5CTX c, const void *data, unsigned long len);
>     >
>     >                  ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:57:34:
>     > error: unknown type name 'MD5CTX'
>     >
>     >  void md5_final(unsigned char *md,MD5CTX c);
>     >
>     >                                   ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:59:1:
>     > error: unknown type name 'SHACTX'
>     >
>     >  SHACTX sha1_init(void);
>     >
>     >  ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:60:18:
>     > error: unknown type name 'SHACTX'
>     >
>     >  void sha1_update(SHACTX c, const void *data, unsigned long len);
>     >
>     >                   ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:61:35:
>     > error: unknown type name 'SHACTX'
>     >
>     >  void sha1_final(unsigned char *md,SHACTX c);
>     >
>     >                                    ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:64:1:
>     > error: unknown type name 'SHA256CTX'
>     >
>     >  SHA256CTX sha256_init(void);
>     >
>     >  ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:65:20:
>     > error: unknown type name 'SHA256CTX'
>     >
>     >  void sha256_update(SHA256CTX c, const void *data, unsigned long
>     len);
>     >
>     >                     ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:66:37:
>     > error: unknown type name 'SHA256CTX'
>     >
>     >  void sha256_final(unsigned char *md,SHA256CTX c);
>     >
>     >                                      ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:69:1:
>     > error: unknown type name 'SHA384CTX'
>     >
>     >  SHA384CTX sha384_init(void);
>     >
>     >  ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:70:20:
>     > error: unknown type name 'SHA384CTX'
>     >
>     >  void sha384_update(SHA384CTX c, const void *data, unsigned long
>     len);
>     >
>     >                     ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:71:37:
>     > error: unknown type name 'SHA384CTX'
>     >
>     >  void sha384_final(unsigned char *md,SHA384CTX c);
>     >
>     >                                      ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:74:1:
>     > error: unknown type name 'SHA512CTX'
>     >
>     >  SHA512CTX sha512_init(void);
>     >
>     >  ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:75:20:
>     > error: unknown type name 'SHA512CTX'
>     >
>     >  void sha512_update(SHA512CTX c, const void *data, unsigned long
>     len);
>     >
>     >                     ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:76:37:
>     > error: unknown type name 'SHA512CTX'
>     >
>     >  void sha512_final(unsigned char *md,SHA512CTX c);
>     >
>     >                                      ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:80:1:
>     > error: unknown type name 'EVPCTX'
>     >
>     >  EVPCTX evp_init(int nid);
>     >
>     >  ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:81:17:
>     > error: unknown type name 'EVPCTX'
>     >
>     >  void evp_update(EVPCTX ctx, const void *data, unsigned long len);
>     >
>     >                  ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:82:16:
>     > error: unknown type name 'EVPCTX'
>     >
>     >  void evp_final(EVPCTX ctx, unsigned char *md, unsigned int *mdlen);
>     >
>     >                 ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:88:1:
>     > error: unknown type name 'HMACCTX'
>     >
>     >  HMACCTX hmac_init(const void *key,int len, enum ssh_hmac_e type);
>     >
>     >  ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:89:18:
>     > error: unknown type name 'HMACCTX'
>     >
>     >  void hmac_update(HMACCTX c, const void *data, unsigned long len);
>     >
>     >                   ^
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/wrapper.h:90:17:
>     > error: unknown type name 'HMACCTX'
>     >
>     >  void hmac_final(HMACCTX ctx,unsigned char *hashmacbuf,unsigned
>     int *len);
>     >
>     >                  ^
>     >
>     > In file included from
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/pki.h:32:0,
>     >
>     >                  from
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/src/agent.c:58:
>     >
>     >
>     /Users/Greg/Documents/StewartTech/esp32/workspace/cp25g1/components/libssh/include/libssh/crypto.h:77:5:
>     > error: unknown type name 'bignum'
>     >
>     >      bignum e,f,x,k,y;
>     >
>     >      ^
>     >
>     > make[1]: *** [src/agent.o] Error 1
>     >
>     >     make: *** [libssh-build] Error 2
>     >
>
>
>
>


References:
ESP32Greg Stewart <gregstewart90@xxxxxxxxx>
Re: ESP32Aris Adamantiadis <aris@xxxxxxxxxxxx>
Re: ESP32Greg Stewart <gregstewart90@xxxxxxxxx>
Archive administrator: postmaster@lists.cynapses.org