mirror of https://github.com/ipxe/ipxe.git
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> |
||
|---|---|---|
| .. | ||
| arch | ||
| bin | ||
| config | ||
| core | ||
| crypto | ||
| doc | ||
| drivers | ||
| hci | ||
| image | ||
| include | ||
| interface | ||
| libgcc | ||
| net | ||
| scripts | ||
| tests | ||
| usr | ||
| util | ||
| .gitignore | ||
| Makefile | ||
| Makefile.efi | ||
| Makefile.housekeeping | ||
| Makefile.linux | ||
| doxygen.cfg | ||