/
Smart Cities R5 Test

Smart Cities R5 Test

Introduction

This document covers Test Deployment Environment and Test Case Result for PARSEC on Smart Cities Blueprint.

Akarino Test Group Information

N/A

Overall Test Architecture

Parsec Service and Parsec tool are Installed on the same machine. Use Parsec tool to connect and test Parsec server.

Software Version

Ubuntu 18.04 LTS

parsec-service 0.8.0

parsec-tool 0.3.1


Devices Under Test


Amazon AWS ARM64 servers

CPU:  Model name: Neoverse-N1

CPU(s):  2

BogoMIPS: 243.75

Mem:  8Gb


Parsec Service Unit Test


1.Start Parsec Service

cd cassini/smartcities/parsec

cargo build --release --features "mbed-crypto-provider,direct-authenticator"

RUST_LOG=info ./target/release/parsec -c e2e_tests/provider_cfg/mbed-crypto/config.toml


2.Config parsec.sock path

export PARSEC_SERVICE_ENDPOINT=unix:/tmp/parsec.sock


3.Start Unit test

cd e2e_tests

cargo test --features mbed-crypto-provider normal_tests

4.Test result

running 125 tests

test per_provider::normal_tests::aead::aead_encrypt_ccm_decrypt ... ok

test per_provider::normal_tests::aead::aead_encrypt_ccm_decrypt_not_equal ... ok

test per_provider::normal_tests::aead::aead_encrypt_ccm_encrypt ... ok

test per_provider::normal_tests::aead::aead_encrypt_ccm_encrypt_decrypt ... ok

test per_provider::normal_tests::aead::aead_encrypt_ccm_encrypt_not_equal ... ok

test per_provider::normal_tests::aead::aead_not_supported ... ok

test per_provider::normal_tests::aead::simple_aead_encrypt_ccm ... ok

test per_provider::normal_tests::asym_encryption::asym_decrypt_no_key ... ok

test per_provider::normal_tests::asym_encryption::asym_decrypt_not_permitted ... ok

test per_provider::normal_tests::asym_encryption::asym_encrypt_and_decrypt_rsa_pkcs ... ok

test per_provider::normal_tests::asym_encryption::asym_encrypt_decrypt_rsa_pkcs_different_keys ... ok

test per_provider::normal_tests::asym_encryption::asym_encrypt_no_key ... ok

test per_provider::normal_tests::asym_encryption::asym_encrypt_not_permitted ... ok

test per_provider::normal_tests::asym_encryption::asym_encrypt_not_supported ... ok

test per_provider::normal_tests::asym_encryption::asym_encrypt_verify_decrypt_with_rsa_crate ... ok

test per_provider::normal_tests::asym_encryption::asym_encrypt_verify_decrypt_with_rsa_crate_oaep ... ok

test per_provider::normal_tests::asym_encryption::asym_encrypt_wrong_algorithm ... ok

test per_provider::normal_tests::asym_encryption::asym_verify_decrypt_with_internet ... ok

test per_provider::normal_tests::asym_encryption::simple_asym_decrypt_oaep_with_salt ... ok

test per_provider::normal_tests::asym_encryption::simple_asym_encrypt_rsa_oaep ... ok

test per_provider::normal_tests::asym_encryption::simple_asym_encrypt_rsa_pkcs ... ok

test per_provider::normal_tests::asym_sign_verify::asym_sign_and_verify_rsa_pkcs ... ok

test per_provider::normal_tests::asym_sign_verify::asym_sign_no_key ... ok

test per_provider::normal_tests::asym_sign_verify::asym_verify_fail_ecc_sha256 ... ok

test per_provider::normal_tests::asym_sign_verify::asym_verify_no_key ... ok

test per_provider::normal_tests::asym_sign_verify::asym_verify_with_rsa_crate ... ok

test per_provider::normal_tests::asym_sign_verify::fail_verify_hash2_ecc ... ok

test per_provider::normal_tests::asym_sign_verify::fail_verify_hash2_rsa ... ok

test per_provider::normal_tests::asym_sign_verify::fail_verify_hash_ecc ... ok

test per_provider::normal_tests::asym_sign_verify::fail_verify_hash_rsa ... ok

test per_provider::normal_tests::asym_sign_verify::only_verify_from_internet ... ok

test per_provider::normal_tests::asym_sign_verify::private_sign_public_verify ... ok

test per_provider::normal_tests::asym_sign_verify::sign_hash_bad_format_rsa_sha256 ... ok

test per_provider::normal_tests::asym_sign_verify::sign_hash_not_permitted ... ok

test per_provider::normal_tests::asym_sign_verify::sign_hash_not_permitted_ecc ... ok

test per_provider::normal_tests::asym_sign_verify::sign_message_not_permitted ... ok

test per_provider::normal_tests::asym_sign_verify::sign_verify_hash_ecc ... ok

test per_provider::normal_tests::asym_sign_verify::sign_verify_message_ecc ... ok

test per_provider::normal_tests::asym_sign_verify::simple_sign_hash_ecdsa_sha256 ... ok

test per_provider::normal_tests::asym_sign_verify::simple_sign_hash_rsa_sha256 ... ok

test per_provider::normal_tests::asym_sign_verify::simple_verify_hash_ecc ... ok

test per_provider::normal_tests::asym_sign_verify::simple_verify_hash_rsa ... ok

test per_provider::normal_tests::asym_sign_verify::verify_ecc_with_ring ... ok

test per_provider::normal_tests::asym_sign_verify::verify_hash_bad_format_rsa ... ok

test per_provider::normal_tests::asym_sign_verify::verify_hash_not_permitted_ecc ... ok

test per_provider::normal_tests::asym_sign_verify::verify_hash_not_permitted_rsa ... ok

test per_provider::normal_tests::asym_sign_verify::verify_message_not_permitted ... ok

test per_provider::normal_tests::asym_sign_verify::verify_with_ring ... ok

test per_provider::normal_tests::auth::delete_wrong_key ... ok

test per_provider::normal_tests::auth::two_auths_same_key_name ... ok

test per_provider::normal_tests::basic::authenticator_not_registered ... ok

test per_provider::normal_tests::basic::flags_ignored ... ok

test per_provider::normal_tests::basic::invalid_accept_type ... ok

test per_provider::normal_tests::basic::invalid_auth_len ... ok

test per_provider::normal_tests::basic::invalid_authenticator ... ok

test per_provider::normal_tests::basic::invalid_body_len ... ok

test per_provider::normal_tests::basic::invalid_content_type ... ok

test per_provider::normal_tests::basic::invalid_opcode ... ok

test per_provider::normal_tests::basic::invalid_provider ... ok

test per_provider::normal_tests::basic::reserved_fields_not_zero1 ... ok

test per_provider::normal_tests::basic::reserved_fields_not_zero2 ... ok

test per_provider::normal_tests::basic::status_ignored ... ok

test per_provider::normal_tests::create_destroy_key::create_and_destroy ... ok

test per_provider::normal_tests::create_destroy_key::create_and_destroy_ecc ... ok

test per_provider::normal_tests::create_destroy_key::create_destroy_and_operation ... ok

test per_provider::normal_tests::create_destroy_key::create_destroy_twice ... ok

test per_provider::normal_tests::create_destroy_key::create_twice ... ok

test per_provider::normal_tests::create_destroy_key::destroy_without_create ... ok

test per_provider::normal_tests::create_destroy_key::failed_created_key_should_be_removed ... ok

test per_provider::normal_tests::create_destroy_key::generate_public_rsa_check_modulus ... ok

test per_provider::normal_tests::export_key::check_export_ecc_not_possible ... ok

test per_provider::normal_tests::export_key::check_export_rsa_not_possible ... ok

test per_provider::normal_tests::export_key::check_export_rsa_possible ... ok

test per_provider::normal_tests::export_key::check_rsa_export_format ... ok

test per_provider::normal_tests::export_key::export_ecc_private_key ... ok

test per_provider::normal_tests::export_key::export_key ... ok

test per_provider::normal_tests::export_key::export_key_not_supported ... ok

test per_provider::normal_tests::export_key::export_rsa_private_key_matches_import ... ok

test per_provider::normal_tests::export_key::export_without_create ... ok

test per_provider::normal_tests::export_key::import_and_export_ecc_public_key_by_export_key_fn ... ok

test per_provider::normal_tests::export_key::import_and_export_rsa_public_key ... ok

test per_provider::normal_tests::export_public_key::check_export_ecc_public_possible ... ok

test per_provider::normal_tests::export_public_key::check_export_rsa_public_possible ... ok

test per_provider::normal_tests::export_public_key::check_public_ecc_export_format ... ok

test per_provider::normal_tests::export_public_key::check_public_ecc_export_format2 ... ok

test per_provider::normal_tests::export_public_key::check_public_rsa_export_format ... ok

test per_provider::normal_tests::export_public_key::export_ecc_public_key ... ok

test per_provider::normal_tests::export_public_key::export_rsa_public_key ... ok

test per_provider::normal_tests::export_public_key::export_without_create ... ok

test per_provider::normal_tests::export_public_key::import_and_export_ecc_public_key ... ok

test per_provider::normal_tests::export_public_key::import_and_export_ecc_public_key_by_export_public_key_fn ... ok

test per_provider::normal_tests::export_public_key::import_and_export_rsa_public_key ... ok

test per_provider::normal_tests::generate_random::generate_random_not_supported ... ok

test per_provider::normal_tests::generate_random::generate_zero_bytes ... ok

test per_provider::normal_tests::generate_random::simple_generate_random ... ok

test per_provider::normal_tests::hash::hash_compare_false ... ok

test per_provider::normal_tests::hash::hash_compare_ripe_md160 ... ok

test per_provider::normal_tests::hash::hash_compare_sha256 ... ok

test per_provider::normal_tests::hash::hash_compare_sha512 ... ok

test per_provider::normal_tests::hash::hash_compute_ripe_md160 ... ok

test per_provider::normal_tests::hash::hash_compute_sha256 ... ok

test per_provider::normal_tests::hash::hash_compute_sha512 ... ok

test per_provider::normal_tests::hash::hash_not_supported ... ok

test per_provider::normal_tests::import_key::check_format_import1 ... ok

test per_provider::normal_tests::import_key::check_format_import2 ... ok

test per_provider::normal_tests::import_key::check_format_import3 ... ok

test per_provider::normal_tests::import_key::create_and_import_ecc_key ... ok

test per_provider::normal_tests::import_key::create_and_import_rsa_key ... ok

test per_provider::normal_tests::import_key::failed_imported_key_should_be_removed ... ok

test per_provider::normal_tests::import_key::import_ecc_key ... ok

test per_provider::normal_tests::import_key::import_ecc_key_twice ... ok

test per_provider::normal_tests::import_key::import_ecc_private_key ... ok

test per_provider::normal_tests::import_key::import_rsa_key ... ok

test per_provider::normal_tests::import_key::import_rsa_key_twice ... ok

test per_provider::normal_tests::key_agreement::key_agreement_not_supported ... ok

test per_provider::normal_tests::key_agreement::raw_key_agreement_brainpoolpr1 ... ok

test per_provider::normal_tests::key_agreement::raw_key_agreement_secpr1 ... ok

test per_provider::normal_tests::key_agreement::raw_key_agreement_two_generated_parties ... ok

test per_provider::normal_tests::key_agreement::simple_raw_key_agreement ... ok

test per_provider::normal_tests::key_attributes::no_usage_flag_set ... ok

test per_provider::normal_tests::key_attributes::wrong_permitted_algorithm ... ok

test per_provider::normal_tests::key_attributes::wrong_type ... ignored

test per_provider::normal_tests::key_attributes::wrong_usage_flags ... ok

test per_provider::normal_tests::ping::mangled_ping ... ok

test per_provider::normal_tests::ping::test_ping ... ok

 

test result: ok. 124 passed; 0 failed; 1 ignored; 0 measured; 31 filtered out; finished in 14.21s

Parsec Tool Test

1.Keep Parsec Service running

2.Build Parsec Tool

git clone https://github.com/parallaxsecond/parsec-tool.git

cd parsec-tool

cargo build

3.Set Parsec socket path

export PARSEC_SERVICE_ENDPOINT=unix:/tmp/parsec.sock

4.Test Ping

./target/debug/parsec-tool ping

[INFO ] Service wire protocol version

1.0

5.Test list-providers

./target/debug/parsec-tool list-providers

[INFO ] Available providers:

ID: 0x01 (Mbed Crypto provider)

Description: User space software provider, based on Mbed Crypto - the reference implementation of the PSA crypto API

Version: 0.1.0

Vendor: Arm

UUID: 1c1139dc-ad7c-47dc-ad6b-db6fdb466552


ID: 0x00 (Core provider)

Description: Software provider that implements only administrative (i.e. no cryptographic) operations

Version: 0.8.0

Vendor: Unspecified

UUID: 47049873-2a43-4845-9d72-831eab668784

6.Test create key

./target/debug/parsec-tool create-ecc-key -k Jack

[INFO ] Creating ECC key...

[INFO ] Key "Jack" created.

7.Test list key

./target/debug/parsec-tool list-keys

[INFO ] Available keys:

* Jack (Mbed Crypto provider, EccKeyPair { curve_family: SecpR1 }, 256 bits, permitted algorithm: AsymmetricSignature(Ecdsa { hash_alg: Specific(Sha256) }))

8.Test sign with key

./target/debug/parsec-tool sign -k Jack "This is Parsec Sign!"

[INFO ] Hashing data with Sha256...

[INFO ] Signing data with Ecdsa { hash_alg: Specific(Sha256) }...

MEQCIAlQjPyGuQ4d3KRT1m9RMJaKacn0wBnHaQQxFSZm3lQuAiBjQZqO6ofdfCwOeQCPhk4/lwuOFANKE2Ek/xEiBeruFg==

9.Test export public key

./target/debug/parsec-tool export-public-key -k Jack

-----BEGIN PUBLIC KEY-----

BOH0eSSx72xRLXBa6jAGIaq9EIV0ufRKdOz41C8R1DSV8Bi1AkXbNrkYhOKTMV6X

S4GwiXgSThdHlPl01bsaHwM=

-----END PUBLIC KEY-----

10.Test delete key

./target/debug/parsec-tool delete-key -k Jack

[INFO ] Deleting a key...

[INFO ] Key "Jack" deleted.


Test Dashboards

Single pane view of how the test score looks like for the Blue print.

Total TestsTest ExecutedPassFailIn Progress
11100


Additional Testing

N/A

Bottlenecks/Errata

N/A

Related content

Smart Citites R5 Installation Guide
Smart Citites R5 Installation Guide
More like this
Smart Citites R6 Installation Guide
Smart Citites R6 Installation Guide
More like this
Smart Cities R5 API Document
Smart Cities R5 API Document
More like this
Blogs of Project Cassini - IoT and Infrastructure Edge Blueprint Family
Blogs of Project Cassini - IoT and Infrastructure Edge Blueprint Family
More like this
Smart Cities R6 API Document
Smart Cities R6 API Document
More like this
Smart Cities R6 Test
Smart Cities R6 Test
More like this