2.6 KiB
Blastproof library
Introduction
While Blastproof is based on EDK II C library, it uses a wrapper around what EDK II can provide (mainly BlockIO protocol, filesystem protocol, graphic output protocol and custom Vystem formats support) as well custom-integrated cryptographic libraries. This wrapper is called the Blastproof library.
External libraries
The source code for external libraries are stored in different folders depending on the library. Their source code has been adapted to run in an EDK II environment. Here is a list of all external libraries inside the Blastproof library, that doesn't include libraries used in boot utilities:
| Folder | Original source code | Author | License |
|---|---|---|---|
| Blastproof/src/libs/sha3 | mjosaarinen/tiny_sha3 | mjosaarinen | MIT |
| Blastproof/src/libs/sphincsplus | sphincs/sphincsplus | SPHINCS+ team | MIT-0 |
| Blastproof/src/libs/argon2 | P-H-C/phc-winner-argon2 | Argon2 team | CC0-1.0 |
Note: some of the projects cited above let the user choose the license at their convenience. The most permissive option has been selected when applicable
EDK II
The Blastproof bootloader is based on the EDK II framework:
- Source: https://github.com/tianocore/
- License: BSD-2-Clause-Patent
- Copyright: Copyright (c) Intel Corporation and other contributors.
Blastproof library components
Blastproof library is divided into several components, some relying on the external libraries cited above, and all relying on the EDK II framework. Here is the list of all components with their headers:
conf.h: manage configuration loading and parsingconsole.h: provide a simple way to enter a password inside the EFI shellcpu.h: provide a simple way to print CPU ID informationscrypto.h: provide the cryptographic abstraction layer to use algorithms such as Argon2, SHA3 or Sphincs+debug.h: provide outputting primitives to the serial portdefault.h: provide macros for default configuration valuesdisk.h: provide functions to read files from ESP partitionfont.h: provide functions to load, parse and render FBM fontsgraphic.h: provide basic primitives to interact with GOP framebuffersinitfs.h: InitFS and SignSyst driversui.h: provide primitives to render text and boot animation in the GOP framebuffervyx.h: provide a very basic Vyx-based kernel loader
Additional headers can be generated at compilation time and aren't included in this list, such as key.h.