We use cookies to make your experience better. To comply with the new e-Privacy directive, we need to ask for your consent to set the cookies. Learn more.
emSSL is created by The Embedded Experts from SEGGER and is a software library that enables you to create secure connections between a client and a server, typically over the Internet, using TCP/IP. Making it an ideal solution for your safety critical embedded devices and environment.
Why should I use emSSL?
- emSSL offers all features for current TLS and includes its latest protocol versions.
- emSSL is a high quality product designed to be used easily but without any cutbacks.
- emSSL is not covered by an open-source or required-attribution license and can be integrated in any free, commercial, or proprietary product without the obligation to disclose the combined source.
- emSSL is provided as source code and offers transparency for all included modules, allowing inspection by auditors.
- emSSL is portable. The complete software is written in ANSI C and is compiler as well as target independent. It can be implemented in PC applications and in embedded software.
- emSSL is configurable. It is created for high performance and a low memory footprint. The library can be configured to fit any speed or size requirements. Unused features can be excluded, additional features can easily be added.
Security
emSSL's cryptographic algorithms are tuned for speed and security and are validated by NIST. A plug-in cryptography interface delivers more performance from a wide range of cryptographic accelerators.
Efficiency
emSSL is designed for embedded systems and has a minimal RAM and ROM footprint. Because emSSL is modular, you only pay for what you use.
Availability
As emSSL is portable, it's possible to run on virtually any core and any compiler, and emSSL runs on Windows and Linux with ease. SEGGER can provide preconfigured support for a wide range of targets.
Time to market
emSSL is easy to use and easy to port delivering a fast time to market. With first-class support and outstanding documentation, emSSL is a solid investment.
Getting Started
Live Demonstration | emSSL Sample Applications |
emSSL can be used even on small microcontrollers to serve websites on the internet:The site https://license.segger.com is running on an emPower Board, featuring a Kinetis K60 Cortex-M4 microcontroller. It is powered by SEGGER software only.
| emSSL is shipped with a number of examples that demonstrate TLS capability and how to integrate emSSL into your application:
|
Browsing Websites with emSSL
Open a command line window on Windows and navigate to the Browser directory that contains the Browser.exe application. Once there, run Browser.exe and you should see something similar to this:
bash
-
The browser opened a secure connection to the www.segger.com website on port 443 (the HTTPS port) and retrieved the HTML associated with the home page. It then processed the HTML markup to format the output nicely. The browser will work on any website that can support an HTTPS connection, but graphic-rich websites have a poor textual browsing experience.
Serving Webpages with emSSL
Now open up a second command line window, navigate to the WebServer directory and run the WebServer.exe application. It is likely that you will see a dialog asking you to grant the web server application access to the network, which you should do. You should now see something like:
The web server application is waiting for somebody to connect to it such that it can serve its small web page. Now we will connect emSSL to emSSL over a TLS connection — we are going to browse the website served by the WebServer application by using the Browser application. Back in the first window, type "browser 127.0.0.1:1234", the IP address of the local web server and the port it will serve on, a
This shows that both sides of the TLS connection are working correctly and the cipher suite that was agreed between them, RSA-AES-256-GCM-WITH-SHA-384 in this case, is the same on both sides
To prove that this is no accident, you can point a standard web browser, such as Firefox or Chrome, to the local web server. Open your web browser and enter the URL "https://127.0.0.1:1234/index.html" into the address bar. You should now be greeted by a notification from the browser that the certificate presented is invalid — and it is, according to the browser, because you are browsing your own PC using a self-signed certificate rather than a fully-authenticated certificate for a website on the Internet. Accept the certificate or click "Advanced" and "Proceed to 127.0.0.1" and you should be greeted with a short web page served by emSSL on your PC.
Internet Explorer has some difficulties with locally-hosted websites serving what it thinks are invalid certificates, so it is better to use Chrome or Firefox in this case.
Buyer's Guide
The emSSL Package
emSSL is a complete software package, designed for embedded systems and comes with everything which is needed to secure communication.
It includes all modules which implement the required functionality to use SSL. They are provided in source code, to allow complete control of the code that is used in the product and create transparency to avoid worries about possible back doors or weakness in code, which cannot be checked in precompiled libraries. emSSL comes with a simple, yet powerful API to make using emSSL in your product as easy as possible.
It also includes sample applications in binary and source code, which demonstrate how and when emSSL can be used in real life scenarios. For a list of included applications, see the chapters below.
Included Applications
emSSL includes sample utilities and tools to show how to use emSSL.
The sample applications are available as executables for evaluation upon request.
Application name | Description |
SimpleWebClient | Get a webpage via HTTPS and print it to the console |
SimpleWebServer | A minimal web server using HTTPS |
PrintCert | Read an X.509 SSL certificate and print its information to the console |
Scan | Scan a server for its supported cipher suites. |
ROT13Server | A server that provides a ROT13 service |
ROT13Client | A client that uses the ROT13 service |
- Secures your connection
- Compatible with any modern server
- Easy to understand source code
- Simple to integrate into your IoT environment
- No additional hardware required
- No royalties
Tecnologix offers support which is directly handled by development team. Do not hesitate to get in touch with our experts.
Just ask here