openpgp-card/card-functionality/README.md

28 lines
1.1 KiB
Markdown

<!--
SPDX-FileCopyrightText: 2021 Heiko Schaefer <heiko@schaefer.name>
SPDX-License-Identifier: MIT OR Apache-2.0
-->
These tests rely mainly on the card-app abstraction layer in
openpgp-card. However, for crypto-operations, higher level APIs and
Sequoia PGP are used.
The main purpose of this test suite is to be able to test the behavior
of different OpenPGP card implementation.
These tests assert (and fail) in cases where a certain behavior is
expected from all cards, and a card doesn't conform.
However, in some aspects, card behavior is expected to diverge, and
it's not ok for us to just fail and reject the card's output.
Even when it contradicts the OpenPGP card spec.
For such cases, these tests return a TestOutput, which is a
Vec<TestResult>, to document the return values of the card in question.
e.g.: the Yubikey 5 fails to handle the VERIFY command with empty data
(see OpenPGP card spec, 7.2.2: "If the command is called
without data, the actual access status of the addressed password is
returned or the access status is set to 'not verified'").
The Yubikey 5 erroneously returns Status 0x6a80 ("Incorrect parameters in
the command data field").