Topic: Cross Compiling wolfSSL Embedded SSL for uCLinux


      2006-09-26 14:42:41 MDT
      I'm cross-compiling yassl for a uClinux system.
      I built wput against it's static library and brought it in.

      I can't get it to establish a connection yet.
      By adding some debug statements I found out that the key exchange was failing in
      cyassl_inc.c at:

      SendClientKeyExchange(SSL* ssl)


      ret = RsaPublicEncrypt(ssl->preMasterSecret, SECRET_LEN, encSecret,
      sizeof(encSecret), &key, &ssl->rng);

      This happened because
      key->n was larger than sizeof(encSecret)

      key->n - 128
      sizof(encSecret) - 96

      As these numbers just so happen to be the byte length of the common 1024 and 768 bit keys respectively, I figured that wolfssl was probably just not providing enough memory for keys > 768 bits.

      Hacking things around, I changed SECRET_LEN to 64 to bump it up to 1024 bits.
      This allowed the key exchange to pass but causes a mac error, so I'm figuring there's another number or table in there that needs to change alongside of SECRET_LEN.

      Am I on the right track?
      Is there an established way to add support for larger keys?
      Am I completely off?


      touskaProject Admin

      2006-09-26 15:26:09 MDT
      SECRET_LEN needs to stay at 48, per the standard. The bug is the length of encSecret, it shouldn't depend on SECRET_LEN. I just increased it to 256 to handle up to 2048 bit RSA. Thanks for the report.

      2006-09-26 17:00:21 MDT
      Thank you sir.
      That little tip got my app working.
      More testing is required but it certainly makes for a better nights sleep.