1 What’s the PSA Crypto Solution?

The Platform Security Architecture (PSA) Crypto Solution provides a software implementation of the PSA Cryptography API for PIC32CM SG microcontrollers, built on the TF-PSA-Crypto library (Mbed TLS standalone). Cryptographic operations are executed by TF-PSA-Crypto in the device CPU.

The PSA Cryptography API functionality available to applications through this solution includes:

  • Library initialization and deinitialization
  • Hash (one-shot and multi-part)
  • MAC (one-shot and multi-part, sign/verify)
  • Cipher (one-shot and multi-part, symmetric encryption/decryption)
  • AEAD (one-shot and multi-part authenticated encryption)
  • Asymmetric signature (message and hash sign/verify)
  • Asymmetric encryption (public-key encryption/decryption)
  • Key agreement (raw key agreement and key agreement to derivation)
  • Key derivation (with multiple input types)
  • Volatile key management (import, export, generate, copy, destroy)
  • Cryptographic random number generation

The solution provides four pre-defined configuration profiles based on common cryptographic algorithm sets and target device resource constraints:

Table 1-1. Pre-defined configuration profiles
ProfileDescription
SmallMost widely used algorithms for resource-constrained devices with limited Flash and RAM
MediumCommonly used algorithms suitable for general-purpose applications
LargeBroad set of algorithms for devices with moderate resources
FullAll supported algorithms for maximum compatibility and development flexibility

User-defined custom configuration profiles are also supported for applications that require a selective set of cryptographic capabilities.

The solution is delivered in two distribution package formats:

  • Pre-built Library package: Configuration headers for all four profiles, public API headers, pre-built static libraries (.a) for each profile and a user guide
  • Source Code package: Configuration headers for all four profiles, public API headers, complete source code, build tooling and a user guide