[RFC 0/8] PGP key parser using SandBox Mode

From: Petr Tesarik
Date: Fri Feb 16 2024 - 10:33:43 EST


From: Petr Tesarik <petr.tesarik1@xxxxxxxxxxxxxxxxxxx>

While I started working on my development branch to illustrate how
SandBox Mode could be enhanced to allow dynamic memory allocation and
other features necessary to convert some existing code, my colleague
Roberto Sassu set out and adapted a PGP key parser to run in a sandbox.

Disclaimer:

The code had to be rearranged in order to avoid memory allocations
and crypto operations in the sandbox. The code might contain errors.

David Howells (4):
PGPLIB: PGP definitions (RFC 4880)
PGPLIB: Basic packet parser
PGPLIB: Signature parser
KEYS: PGP data parser

Roberto Sassu (4):
mpi: Introduce mpi_key_length()
rsa: add parser of raw format
KEYS: Run PGP key parser in a sandbox
KEYS: Add intentional fault injection

crypto/asymmetric_keys/Kconfig | 17 +
crypto/asymmetric_keys/Makefile | 20 +
crypto/asymmetric_keys/pgp.h | 206 +++++++++
crypto/asymmetric_keys/pgp_library.c | 556 ++++++++++++++++++++++++
crypto/asymmetric_keys/pgp_parser.h | 18 +
crypto/asymmetric_keys/pgp_public_key.c | 441 +++++++++++++++++++
crypto/asymmetric_keys/pgplib.h | 58 +++
crypto/rsa.c | 14 +-
crypto/rsa_helper.c | 69 +++
include/crypto/internal/rsa.h | 6 +
include/linux/mpi.h | 2 +
lib/crypto/mpi/mpicoder.c | 33 +-
12 files changed, 1429 insertions(+), 11 deletions(-)
create mode 100644 crypto/asymmetric_keys/pgp.h
create mode 100644 crypto/asymmetric_keys/pgp_library.c
create mode 100644 crypto/asymmetric_keys/pgp_parser.h
create mode 100644 crypto/asymmetric_keys/pgp_public_key.c
create mode 100644 crypto/asymmetric_keys/pgplib.h

--
2.34.1