opengnsys_ipxe/src
Michael Brown 30243ad739 [crypto] Add concept of cipher alignment size
The GCM cipher mode of operation (in common with other counter-based
modes of operation) has a notion of blocksize that does not neatly
fall into our current abstraction: it does operate in 16-byte blocks
but allows for an arbitrary overall data length (i.e. the final block
may be incomplete).

Model this by adding a concept of alignment size.  Each call to
encrypt() or decrypt() must begin at a multiple of the alignment size
from the start of the data stream.  This allows us to model GCM by
using a block size of 1 byte and an alignment size of 16 bytes.

As a side benefit, this same concept allows us to neatly model the
fact that raw AES can encrypt only a single 16-byte block, by
specifying an alignment size of zero on this cipher.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2022-11-07 11:19:48 +00:00
..
arch [bzimage] Fix parsing of "vga=..." when not at end of command line 2022-10-27 13:05:35 +01:00
bin Rename .cvsignore files to .gitignore 2007-06-09 22:57:00 +01:00
config [pci] Select PCI I/O API at runtime for cloud images 2022-09-18 13:41:21 +01:00
core [acpi] Expose system MAC address via ${sysmac} setting 2022-06-10 13:44:40 +01:00
crypto [crypto] Add concept of cipher alignment size 2022-11-07 11:19:48 +00:00
doc [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
drivers [ena] Assign memory BAR if left empty by BIOS 2022-09-19 17:49:25 +01:00
hci [pci] Check for wraparound in callers of pci_find_next() 2022-09-15 15:20:58 +01:00
image [image] Allow single-member archive images to be executed transparently 2021-05-12 13:57:35 +01:00
include [crypto] Add concept of cipher alignment size 2022-11-07 11:19:48 +00:00
interface [efi] Clear DMA-coherent buffers before mapping 2022-11-04 20:28:09 +00:00
libgcc [libgcc] Change __divmoddi4 from int64 [unknown] to int64_t 2020-07-21 14:33:32 +01:00
net [tls] Formalise notions of fixed and record initialisation vectors 2022-11-07 11:19:48 +00:00
scripts [efi] Include Secure Boot Advanced Targeting (SBAT) metadata 2022-01-13 14:12:44 +00:00
tests [crypto] Add concept of cipher alignment size 2022-11-07 11:19:48 +00:00
usr [doc] Update user-visible ipxe.org URIs to use HTTPS 2022-01-13 12:48:38 +00:00
util [console] Include mappings for AltGr-Shift-<key> 2022-02-16 15:31:47 +00:00
.gitignore [build] Add support for local configuration files 2010-03-26 19:07:22 +00:00
Makefile [build] Avoid invoking genkeymap.py via Perl 2022-02-15 13:54:28 +00:00
Makefile.efi [efi] Use zero for PCI vendor/device IDs when no applicable ID exists 2021-07-26 15:47:47 +01:00
Makefile.housekeeping [build] Avoid invoking genkeymap.py via Perl 2022-02-15 13:54:28 +00:00
Makefile.linux [linux] Place -lslirp at end of linker search list 2021-03-03 01:09:33 +00:00
doxygen.cfg [build] Remove PACKED macro 2010-05-29 23:49:47 +01:00