adds cargo checks and tests to workflows and locally

This commit is contained in:
Fabian Kaczmarczyck
2020-04-29 09:47:50 +02:00
parent 2aeeff3bb5
commit 8bbf42623f
7 changed files with 52 additions and 21 deletions

View File

@@ -40,6 +40,12 @@ jobs:
command: check command: check
args: --target thumbv7em-none-eabi --release --features with_ctap1 args: --target thumbv7em-none-eabi --release --features with_ctap1
- name: Check OpenSK with_ctap2_1
uses: actions-rs/cargo@v1
with:
command: check
args: --target thumbv7em-none-eabi --release --features with_ctap2_1
- name: Check OpenSK debug_ctap - name: Check OpenSK debug_ctap
uses: actions-rs/cargo@v1 uses: actions-rs/cargo@v1
with: with:
@@ -76,11 +82,17 @@ jobs:
command: check command: check
args: --target thumbv7em-none-eabi --release --features debug_ctap,with_ctap1 args: --target thumbv7em-none-eabi --release --features debug_ctap,with_ctap1
- name: Check OpenSK debug_ctap,with_ctap1,panic_console,debug_allocations,verbose - name: Check OpenSK debug_ctap,with_ctap2_1
uses: actions-rs/cargo@v1 uses: actions-rs/cargo@v1
with: with:
command: check command: check
args: --target thumbv7em-none-eabi --release --features debug_ctap,with_ctap1,panic_console,debug_allocations,verbose args: --target thumbv7em-none-eabi --release --features debug_ctap,with_ctap2_1
- name: Check OpenSK debug_ctap,with_ctap1,with_ctap2_1,panic_console,debug_allocations,verbose
uses: actions-rs/cargo@v1
with:
command: check
args: --target thumbv7em-none-eabi --release --features debug_ctap,with_ctap1,with_ctap2_1,panic_console,debug_allocations,verbose
- name: Check examples - name: Check examples
uses: actions-rs/cargo@v1 uses: actions-rs/cargo@v1

View File

@@ -49,3 +49,27 @@ jobs:
command: test command: test
args: --features std,with_ctap1 args: --features std,with_ctap1
- name: Unit testing of CTAP2 (release mode + CTAP2.1)
uses: actions-rs/cargo@v1
with:
command: test
args: --release --features std,with_ctap2_1
- name: Unit testing of CTAP2 (debug mode + CTAP2.1)
uses: actions-rs/cargo@v1
with:
command: test
args: --features std,with_ctap2_1
- name: Unit testing of CTAP2 (release mode + CTAP1 + CTAP2.1)
uses: actions-rs/cargo@v1
with:
command: test
args: --release --features std,with_ctap1,with_ctap2_1
- name: Unit testing of CTAP2 (debug mode + CTAP1 + CTAP2.1)
uses: actions-rs/cargo@v1
with:
command: test
args: --features std,with_ctap1,with_ctap2_1

View File

@@ -32,7 +32,7 @@ be FIDO Certified.
We started adding features of the upcoming next version of the We started adding features of the upcoming next version of the
[CTAP2.1 specifications](https://fidoalliance.org/specs/fido2/fido-client-to-authenticator-protocol-v2.1-rd-20191217.html). [CTAP2.1 specifications](https://fidoalliance.org/specs/fido2/fido-client-to-authenticator-protocol-v2.1-rd-20191217.html).
The development is currently between 2.0 and 2.1, with updates hidden behind a feature flag. The development is currently between 2.0 and 2.1, with updates hidden behind a feature flag.
Please add the flag `shell --ctap2-1` to the deploy command to include them. Please add the flag `--ctap2.1` to the deploy command to include them.
### Cryptography ### Cryptography

View File

@@ -755,7 +755,7 @@ if __name__ == "__main__":
"support for U2F/CTAP1 protocol."), "support for U2F/CTAP1 protocol."),
) )
main_parser.add_argument( main_parser.add_argument(
"--ctap2-1", "--ctap2.1",
action=RemoveConstAction, action=RemoveConstAction,
const="with_ctap2_1", const="with_ctap2_1",
dest="features", dest="features",

View File

@@ -93,4 +93,10 @@ then
echo "Running unit tests on the desktop (debug mode + CTAP2.1)..." echo "Running unit tests on the desktop (debug mode + CTAP2.1)..."
cargo test --features std,with_ctap2_1 cargo test --features std,with_ctap2_1
echo "Running unit tests on the desktop (release mode + CTAP1 + CTAP2.1)..."
cargo test --release --features std,with_ctap1,with_ctap2_1
echo "Running unit tests on the desktop (debug mode + CTAP1 + CTAP2.1)..."
cargo test --features std,with_ctap1,with_ctap2_1
fi fi

View File

@@ -111,7 +111,7 @@ impl From<PublicKeyCredentialType> for cbor::Value {
match cred_type { match cred_type {
PublicKeyCredentialType::PublicKey => "public-key", PublicKeyCredentialType::PublicKey => "public-key",
// We should never create this credential type. // We should never create this credential type.
PublicKeyCredentialType::Unknown => unreachable!(), PublicKeyCredentialType::Unknown => "unknown",
} }
.into() .into()
} }

View File

@@ -762,7 +762,6 @@ where
self.persistent_store.pin_hash().is_some(), self.persistent_store.pin_hash().is_some(),
); );
Ok(ResponseData::AuthenticatorGetInfo( Ok(ResponseData::AuthenticatorGetInfo(
#[cfg(feature = "with_ctap2_1")]
AuthenticatorGetInfoResponse { AuthenticatorGetInfoResponse {
versions: vec![ versions: vec![
#[cfg(feature = "with_ctap1")] #[cfg(feature = "with_ctap1")]
@@ -776,29 +775,19 @@ where
pin_protocols: Some(vec![ pin_protocols: Some(vec![
CtapState::<R, CheckUserPresence>::PIN_PROTOCOL_VERSION, CtapState::<R, CheckUserPresence>::PIN_PROTOCOL_VERSION,
]), ]),
#[cfg(feature = "with_ctap2_1")]
max_credential_count_in_list: MAX_CREDENTIAL_COUNT_IN_LIST.map(|c| c as u64), max_credential_count_in_list: MAX_CREDENTIAL_COUNT_IN_LIST.map(|c| c as u64),
// You can use ENCRYPTED_CREDENTIAL_ID_SIZE here, but if your // You can use ENCRYPTED_CREDENTIAL_ID_SIZE here, but if your
// browser passes that value, it might be used to fingerprint. // browser passes that value, it might be used to fingerprint.
#[cfg(feature = "with_ctap2_1")]
max_credential_id_length: None, max_credential_id_length: None,
#[cfg(feature = "with_ctap2_1")]
transports: Some(vec![AuthenticatorTransport::Usb]), transports: Some(vec![AuthenticatorTransport::Usb]),
#[cfg(feature = "with_ctap2_1")]
algorithms: Some(vec![ES256_CRED_PARAM]), algorithms: Some(vec![ES256_CRED_PARAM]),
#[cfg(feature = "with_ctap2_1")]
firmware_version: None, firmware_version: None,
}, },
#[cfg(not(feature = "with_ctap2_1"))]
AuthenticatorGetInfoResponse {
versions: vec![
#[cfg(feature = "with_ctap1")]
String::from(U2F_VERSION_STRING),
String::from(FIDO2_VERSION_STRING),
],
extensions: Some(vec![String::from("hmac-secret")]),
aaguid: *AAGUID,
options: Some(options_map),
max_msg_size: Some(1024),
pin_protocols: Some(vec![
CtapState::<R, CheckUserPresence>::PIN_PROTOCOL_VERSION,
]),
},
)) ))
} }