Expand description

Public Key Cryptography Controller (PUKCC)

This module provides both low and high level abstractions for dealing with a PUKCC peripheral.

PUKCC consists of a set of functions (called services) hidden within a reserved region of memory. These functions usually make use of a separate piece of RAM to operate called CryptoRAM.

c_abi module contains raw structs and callable C-like function definitions. Pukcc wraps this low-level access API and exposes it in a safe manner.

WARNING!

This module has not been evaluated for correctness nor suitability for any use-case. Subtle implementation details may have catastrophic implications for the security of your cryptosystem, and users are advised to engage a cryptographer before making use of this module.

Modules

Module that defines low-level constructs required for interaction with PUKCC
Module that defines curves parametrizations

Structs

Struct representing a PUKCC peripheral.
An error type representing failure modes a Pukcc::self_test service

Enums

An error type representing failure modes for a Pukcc::zp_calculate_cns service
An error type representing failure modes for a Pukcc::zp_ecdsa_sign_with_entropy and Pukcc::zp_ecdsa_sign_with_raw_k service
An error type representing failure modes for a Pukcc::zp_ecdsa_verify_signature service
An error type representing failure modes for a Pukcc::modular_exponentiation service
An enum describing available modes of operation of Pukcc::modular_exponentiation algoritm
An enum describing allowed, predefined window sizes for a calculation workspace in CryptoRAM for Pukcc::modular_exponentiation algorithm
An error type specifying an expected length of a slice in question
An enum type that is a human readable representation of a low-level c_abi::PukclReturnCode type. Useful when used together with a Debug traits and formatters.