Commit graph

421 commits

Author SHA1 Message Date
Manuel Pégourié-Gonnard
5218774efb Add note about HKDF for TLS 1.3
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2022-01-18 09:13:14 +01:00
Manuel Pégourié-Gonnard
ab1d3084b7 Goal 1 tasks are now all reflected on github
Replace descriptions with links just to double-check nothing has been
forgotten.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2022-01-18 09:13:14 +01:00
Manuel Pégourié-Gonnard
0950359220 Improve "abstraction layers" section
- fix inaccuracy about PSA hash implementation
- add note about context-less operations
- provide summary

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2022-01-18 09:13:14 +01:00
Manuel Pégourié-Gonnard
a6c601c079 Explain compile-time incompatibilities
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2022-01-18 09:13:14 +01:00
Manuel Pégourié-Gonnard
7497991356 Expand discussion of goals
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2022-01-18 09:13:14 +01:00
Manuel Pégourié-Gonnard
e459be2ed1 Complete discussion of RSASSA-PSS
Update to latest draft of PSA Crypto 1.1.0: back to strict verification
by default, but ANY_SALT introduced.

Commands used to observe default values of saltlen:

    openssl genpkey -algorithm rsa-pss -out o.key
    openssl req -x509 -new -key o.key -subj "/CN=CA" -sha256 -out o.crt

    certtool --generate-privkey --key-type rsa-pss --outfile g.key
    certtool --generate-self-signed --load-privkey g.key --outfile g.crt

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2022-01-18 09:13:14 +01:00
Manuel Pégourié-Gonnard
f5ee4b3da4 Add data about RSA-PSS test files
Data gathered with:

    for c in server9*.crt; do echo $c; openssl x509 -noout -text -in $c |
        grep '^    Signature Algorithm: rsassaPss' -A3 | sed '1d'; done
    for c in crl-rsa-pss-*; do echo $c; openssl crl -noout -text -in $c |
        grep '^    Signature Algorithm: rsassaPss' -A3 | sed '1d'; done
    for c in server9.req.*; do echo $c; openssl req -noout -text -in $c |
        grep '^    Signature Algorithm: rsassaPss' -A3 | sed '1d'; done

Unfortunately there is no record of how these files have been generated.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2022-01-18 09:13:14 +01:00
Manuel Pégourié-Gonnard
b902164cf0 Add temporary list of tasks for G1 and G2
Work in progress, some tasks have very explicit definitions and details
on how to execute, others much less so; some may need splitting.

These documents are temporary anyway, to give a rough idea of the work
remaining to reach those goals (both of which we started, but only for
some use case so far). Ultimately the result will be actionable and
estimated tasks on github.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2022-01-18 09:13:14 +01:00
Manuel Pégourié-Gonnard
d9edd56bf8 Document PSA limitations that could be problems
(WIP: the study of RSA-PSS is incomplete.)

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2022-01-18 09:13:14 +01:00
Manuel Pégourié-Gonnard
b89fd95146 Document the general strategy for PSA migration
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2022-01-18 09:13:14 +01:00
Manuel Pégourié-Gonnard
1b52d09494 Document test strategy for USE_PSA_CRYPTO
Note: removed `mbedtls_x509write_crt_set_subject_key()` from the list of
things that should be tested, as it's taking public key rather than a
keypair.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2022-01-18 09:13:14 +01:00
Manuel Pégourié-Gonnard
0d0a104b2d Add study for TLS/X.509 dependencies on crypto
This is an updated version of the study that was done a few years ago.

The script `syms` was used to list symbols form libmbedtls.a /
libmbedx509.a that are defined externally. It was run with config.py
full minus MBEDTLS_USE_PSA_CRYPTO minus
MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2022-01-18 09:13:00 +01:00
Manuel Pégourié-Gonnard
13841cb719 Mention areas that are not (well) tested.
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2021-09-24 11:43:14 +02:00
Manuel Pégourié-Gonnard
9155b0e396 Clarify that 1.3 is excluded
Don't mention "TLS 1.2 only" for PSK, as that could give the impression
that the other things about TLS are supported beyond 1.2, which isn't
the case currently.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2021-09-24 10:17:07 +02:00
Manuel Pégourié-Gonnard
ca9101739a Improve wording and fix some typos.
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2021-09-24 10:14:32 +02:00
Manuel Pégourié-Gonnard
d3ac4a9a8a Clarify wording of "not covered" section
The section is about things that are not covered, but some lists are
about things that are covered, which was very confusing.

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2021-09-24 10:06:04 +02:00
Manuel Pégourié-Gonnard
1e07869381 Fix inaccuracy in key exchange summary
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2021-09-22 10:11:53 +02:00
Manuel Pégourié-Gonnard
73a0e1da0d Document parts not covered by USE_PSA_CRYPTO
Also, remove the section about design considerations for now. It's
probably more suitable for a developer-oriented document that would also
include considerations about possible paths for the future, which would
better be separated from user documentation (separating the certain that
is now, from the uncertain that might or might not be later).

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2021-09-21 13:55:00 +02:00
Manuel Pégourié-Gonnard
1b08c5f042 Document current effects of USE_PSA_CRYPTO
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2021-09-21 12:59:26 +02:00
Manuel Pégourié-Gonnard
13b0bebf7d Add docs/use-psa-crypto.md
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2021-09-21 12:59:25 +02:00
Gilles Peskine
8ec3c8f015 Do not require test data to be in the repository
What matters is that we validate that test data is not removed. Keeping the
test data is the most obvious way, but not the only way.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-07-15 16:22:14 +02:00
Gilles Peskine
b91f81a55b Discuss lifetimes, in particular persistence levels
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-07-15 16:22:14 +02:00
Gilles Peskine
77f8e5cb59 Add considerations on key material representations
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-07-15 16:22:14 +02:00
Gilles Peskine
d131e400f0 Clarification: forward and backward compatibility
The import-and-save and load-and-check parts of the tests don't have to be
actually the same test cases.

Introduce the terms “forward compatibility” and “backward compatibility” and
relate them to import-and-save and load-and-check actions.

These are clarifications of intent that do not represent an intended change
in the strategy or intended coverage.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-07-15 16:22:14 +02:00
Gilles Peskine
f31c6c111e Typo
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2021-07-15 16:22:14 +02:00
Dave Rodgman
8e5020dead Remove obsolete reference to _ret in migration guide
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-07-02 12:16:03 +01:00
Dave Rodgman
7b743193b0 Move subsection
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 20:10:10 +01:00
Dave Rodgman
9637bd30a3 Move subsections
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 20:07:57 +01:00
Dave Rodgman
b0e6bb54f9 Move subsection
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 20:03:55 +01:00
Dave Rodgman
26c12eb523 Remove C from code block
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:58:00 +01:00
Dave Rodgman
10963278e7 Mark all code blocks as C
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
a014831732 Add missing backticks
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
7d2ac88f93 Correct hyperlink
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
2482650483 Correct hyperlink
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
2b03457ca5 Improve wording
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
b4d15b1556 Move subsection
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
8128b69ffe Move subsection
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
715966862d Move subsection
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
507827e75a Move subsection
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
68547187f6 Move subsections
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
897a95f46c Move subsection
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
3f66943bdd Move subsection
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
2d05e0f440 Move subsection
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
aa1fba2fed Move subsection
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
7018053460 Reorder subsections
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
28701c63cb Fix grammatical error
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
ce53b3afd6 Remove reference to removed item
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:13:24 +01:00
Dave Rodgman
9d3417845c Add backticks where needed
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 19:12:32 +01:00
Dave Rodgman
2e1e623d33 Correct hyperlink syntax
Co-authored-by: Tomasz Rodziewicz <40165497+TRodziewicz@users.noreply.github.com>
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 17:58:10 +01:00
Dave Rodgman
6753a775b8 Fix grammatical error
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
2021-06-30 17:15:28 +01:00