mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-06-23 07:01:38 +00:00
Implement generalised RSA public exponents for verified boot
Remove the verified boot limitation that only allows a single RSA public exponent of 65537 (F4). This change allows use with existing PKI infrastructure and has been tested with HSM-based PKI. Change the configuration OF tree format to store the RSA public exponent as a 64 bit integer and implement backward compatibility for verified boot configuration trees without this extra field. Parameterise vboot_test.sh to test different public exponents. Mathematics and other hard work by Andrew Bott. Tested with the following public exponents: 3, 5, 17, 257, 39981, 50457, 65537 and 4294967297. Signed-off-by: Andrew Bott <Andrew.Bott@ipaccess.com> Signed-off-by: Andrew Wishart <Andrew.Wishart@ipaccess.com> Signed-off-by: Neil Piercy <Neil.Piercy@ipaccess.com> Signed-off-by: Michael van der Westhuizen <michael@smart-africa.com> Cc: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
53022c3113
commit
e0f2f15534
5 changed files with 158 additions and 10 deletions
|
@ -66,7 +66,8 @@ Creating an RSA key and certificate
|
|||
-----------------------------------
|
||||
To create a new public key, size 2048 bits:
|
||||
|
||||
$ openssl genrsa -F4 -out keys/dev.key 2048
|
||||
$ openssl genpkey -algorithm RSA -out keys/dev.key \
|
||||
-pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:65537
|
||||
|
||||
To create a certificate for this:
|
||||
|
||||
|
@ -159,6 +160,7 @@ For RSA the following are mandatory:
|
|||
|
||||
- rsa,num-bits: Number of key bits (e.g. 2048)
|
||||
- rsa,modulus: Modulus (N) as a big-endian multi-word integer
|
||||
- rsa,exponent: Public exponent (E) as a 64 bit unsigned integer
|
||||
- rsa,r-squared: (2^num-bits)^2 as a big-endian multi-word integer
|
||||
- rsa,n0-inverse: -1 / modulus[0] mod 2^32
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue