OpenSSLPorted to the web browser with WebAssembly
The basis of this application is the open source software OpenSSL. OpenSSL is a widely used toolkit and is used, among other things, to ensure secure data transmission on the Internet through implementations of the SSL/TLS encryption protocols.
In addition, OpenSSL has a command line interface (CLI) that provides various cryptographic tools, including :
- Encryption and decryption
- Hash value calculation
- Cryptographic key generation
- Creation and management of digital certificates
- SSL/TLS client and server testing
The OpenSSL program can be operated via its Command Line Interface (CLI) which means the terminal. The terminal accepts textual commands, for example
openssl genrsa 1024 (which generates a 1024 bit long RSA key). Commands always start with
openssl, followed by which function you want OpenSSL to execute, and then usually some parameters which differ depending on the function.
In general, commands always look like this:
openssl <function> [parameters]
The angle brackets mean that the name of the
function is variable. So you can insert different values for it. The square brackets mean that the
parameters are optional, they always depend on the function.
You can get a list of all functions using the
You can get a list of possible parameters for each function if you write
-help behind it:
openssl <function> -help
It is also possible to connect the outputs of several commands by using so-called 'pipes' (a vertical line: '|'). This transfers the output of the left command as input to the right command. For example, to colorize the output, you can write
lolcat behind it:
openssl genrsa 1024 | lolcat
In general it would look like this, so you can use any commands you like:
<befehl1> | <befehl2>
About this application
This application allows to use OpenSSL directly in the browser. With the help of the graphical user interface (GUI), the sometimes complex OpenSSL commands can be easily clicked together.
For this purpose, OpenSSL (version 3.0 written in C) was compiled to WebAssembly using Emscripten. WebAssembly is assembler code that can be executed in the browser. For more information, see the GitHub repository or the underlying bachelor thesis.
The Files tab displays the files currently present in the WebAssembly virtual file system after each command. You can also select files from your device and use them in commands.