Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Signing Tool with Verified implementations for RSA as well as ECDSA with P-256 and P-384 #11

Open
wants to merge 54 commits into
base: cf-zeta
Choose a base branch
from

Conversation

keks
Copy link

@keks keks commented Sep 23, 2024

This PR adds a signing tool to the kernel. Depending on the kernel configuration it uses verified implementations for SHA2. SHA3, RSA, ECDSA/P-256 and ECDSA/P-384.

A quick breakdown of the changes:

  • crypto/asymmetric_keys/: in the PKCS#8 parser, parse the algorithm parameter
  • crypto/*-generated.c, crypto/*hacl*: Files that exclusively contain code generated/extracted from F*. Some code was removed (specifically the functions that don't do prehashed signing, but contain the hashing), and the #includes were restructured.
  • crypto/ecdsa.c: Based on the kernel configuration, either calls the unverified functions for signing, verifying and key generation or, if there is a verified implementation, uses the verified one.
  • crypto/{Makefile,Kconfig}: add kernel build config and update the build system config to respect the settingsq
  • zeta/signing_tool: The userland code calling the kernel syscalls. This consists of tests and benchmarks, as well as a cli for manually testing the syscalls.

cc @franziskuskiefer @karthikbhargavan

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants