public inbox for ecos-patches@sourceware.org
 help / color / mirror / Atom feed
From: bugzilla-daemon@bugs.ecos.sourceware.org
To: ecos-patches@ecos.sourceware.org
Subject: [Bug 1001962] New: Port of CyaSSL TLS library 2.9.0
Date: Fri, 28 Mar 2014 09:34:00 -0000	[thread overview]
Message-ID: <bug-1001962-104@http.bugs.ecos.sourceware.org/> (raw)

Please do not reply to this email, use the link below.

http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001962

            Bug ID: 1001962
           Summary: Port of CyaSSL TLS library 2.9.0
           Product: eCos
           Version: unknown
            Target: All
  Architecture/Host Other
                OS:
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: low
         Component: Patches and contributions
          Assignee: unassigned@bugs.ecos.sourceware.org
          Reporter: daniel.zebralla@arcor.de
                CC: ecos-patches@ecos.sourceware.org

Created attachment 2493
  --> http://bugs.ecos.sourceware.org/attachment.cgi?id=2493&action=edit
Port of CyaSSL 2.9.0 TLS library to eCos

I did a port of the CyaSSL TLS library [1] version 2.9.0 by WolfSSL to eCos.

The library itself is attached as "cyassl_ecos_port.zip".

The port was done using a Windows 7 system with an Cygwin 32-Bit environment.
The target system is a Freescale MPC5668G processor (PowerPC architecture).

What WAS tested:
* TLS 1.2 connections with ECC using adjusted example programs 'client' and
'server' with MCP5668 <-> MPC5668, MPC5668 <-> Laptop (CyaSSL client/server),
MPC5668 <-> Laptop (OpenSSL client/server)
* Test-suite (automatically tests SSL 3.0, TLS 1.0, TLS 1.1 and TLS 1.2 with
various Cipher-Suites by starting a separate server thread and connecting with
the test client), API-Tests, benchmark example
* Loading certificates from a mounted (JFFS2) filesystem
* Loading certificates from memory buffers
* OCSP
* fastmath library was used most of the time
* Blocking and non-blocking I/O (non-blocking realized via ioctl rather than
fcntl [2])
* Using FreeBSD stack as the network stack

What WAS NOT tested:
* 'echoclient' and 'echoserver' examples were never used and thus not adjusted
for usage on eCos
* Hardware acceleration
* NTRU, Rabbit
* Certificate generation
* CRLs
* Using OpenBSD as the network stack

As there were quite some test programs, I decided to put the tests into a
separate eCos application, attached as "cyassl_ecos_examples.zip".

I mostly could utilize the provided POSIX function calls because of the POSIX
abstraction layer in eCos. The port most definitely will NOT work without this!

As to some numbers I've taken:
* static TLS library size for my use case (IPv6-support, TLS1.2 with ECC,
OCSP): ~120 kBytes without optimization, ~75 kBytes with -Os
* stack usage (mostly the same as client or server): ~15 kBytes during TLS
handshake using a 28 kBytes stack. ~3 kBytes during communication on an
established TLS connection
* Dynamic memory consumption peaks at ~32 kBytes

Compiler optimization -O2 also greatly speeds up processing.

IANAL, so I wasn't sure whether I can simply include the eCos license header to
all files or the CyaSSL license header has to stay. CyaSSL is licensed under
GPLv2 or alternatively under a commercial license. I also sent this port back
to WolfSSL for cleanup and integration.

As I'm about to finish my work here, I will NOT be able to get my hands on a
MPC5668 again anytime soon.

[1] http://www.yassl.com/yaSSL/Products-cyassl.html
[2] http://cygwin.com/ml/ecos-discuss/2012-01/msg00051.html

Kind regards
- Daniel Zebralla

-- 
You are receiving this mail because:
You are on the CC list for the bug.

             reply	other threads:[~2014-03-28  9:34 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-28  9:34 bugzilla-daemon [this message]
2014-03-28  9:36 ` [Bug 1001962] " bugzilla-daemon
2014-03-28  9:57 ` bugzilla-daemon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-1001962-104@http.bugs.ecos.sourceware.org/ \
    --to=bugzilla-daemon@bugs.ecos.sourceware.org \
    --cc=ecos-patches@ecos.sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).