commit | 988fb7b26942a8ddbaa6be4ce34aa4efe4044b43 | [log] [tgz] |
---|---|---|
author | Adrian Ambrożewicz <adrian.ambrozewicz@linux.intel.com> | Mon Jan 13 18:52:46 2020 +0100 |
committer | Agata Olender <agata.olender@intel.com> | Tue Mar 31 07:41:12 2020 +0000 |
tree | 25bb7bed1c0e2800b63a4b27147c4a1c401c0ba4 | |
parent | 09d02f87cf3e976a97010baede551d342325f239 [diff] |
Authentication support for Legacy mode This change introduces new 'Mount' API argument - UNIX_FD for unnamed pipe. This unnamed pipe is utilized to securely send secret data over D-Bus. Currently data consists of null-terminated char buffers with username and password, that are passed as InsertMedia action parameters. Data on receiving side is encapsulated into classes whose role is to: - keep secret as short-lived as possible - erase secret from memory when it's not needed - pass secrets (and format them) to another secure container with above capabilities New classes: - Credentials: is a class encapsulating login and password. It zeroes them at destruction. - CredentialProvider: contains Credentials, specifies SecureBuffer, allows to store credentials in SecureBuffer New behavior: - When credentials are provided they are encapsulated as char array of two null-terminated strings - Pipe is opened as a medium to send this buffer - UNIX_FD of the pipe source is passed in ‘Mount’ call. Virtual-Media service reads from credentials over the pipe Tested: Manual and automated tests: - positive and negative tests for authentication on both CIFS and HTTPS resources - error injection (ill-formed data transfered over pipe, pipe broken etc.) Signed-off-by: Agata Olender <agata.olender@intel.com> Change-Id: I5b330b18c4bff222eab3062abfe27b5adaebf877
This component attempts to be a "do everything" embedded webserver for openbmc.
At this time, the webserver implements a few interfaces:
BMCWeb is configured by setting -D
flags that correspond to options in bmcweb/CMakeLists.txt
and then compiling. For example, cmake -DBMCWEB_ENABLE_KVM=NO ...
followed by make
. The option names become C++ preprocessor symbols that control which code is compiled into the program.
When BMCWeb starts running, it reads persistent configuration data (such as UUID and session data) from a local file. If this is not usable, it generates a new configuration.
When BMCWeb SSL support is enabled and a usable certificate is not found, it will generate a self-sign a certificate before launching the server. The keys are generated by the secp384r1
algorithm. The certificate
C=US, O=OpenBMC, CN=testhost
,SHA-256
algorithm.