The payment application is to be developed by the payment terminal vendor. It dialogs with the 2 secure boxes through remote procedure calls (RPC). The API is described below in this document. Shortly this API allows to display trusted messages on the display, perform EMV-level 1 compliant APDU exchanges with the smart card, perform PIN processing, capture Mag Stripe… basically everything required to perform an EMV Level-2 compliant payment.
Here you can find detailed documentation for:
- Configuration macros, to configure a secure box and protect data and peripherals.
- Box Identity, to retrieve a box-specific ID or the namespace of the current or calling box.
- A box identity identifies a security domain uniquely and globally.
- The box identity API can be used to determine the source box of an inbound secure gateway call. This can be useful for implementing complex authorization logic between mutually distrustful security domains.
- uVisor provides the ability to retrieve the box ID of the current box (
uvisor_box_id_self
), or of the box that called the current box through an RPC gateway via the box_id_caller
parameter of rpc_fncall_waitfor
.
- The box ID number is not constant and can change between reboots. But, the box ID number can be used as a token to retrieve a constant string identifier, known as the box namespace.
- A box namespace is a static, box-specific string, that can help identify which box has which ID at run-time. In the future, the box namespace will be guaranteed to be globally unique.
- A full example using this API is available at mbed-os-example-uvisor-number-store.
- Low level APIs, to access uVisor functions that are not available to unprivileged code (interrupts, restricted system registers).
- Type definitions.
- Error codes.
Error reason | Error code |
PERMISSION_DENIED | 1 |
SANITY_CHECK_FAILED | 2 |
NOT_IMPLEMENTED | 3 |
NOT_ALLOWED | 4 |
FAULT_MEMMANAGE | 5 |
FAULT_BUS | 6 |
FAULT_USAGE | 7 |
FAULT_HARD | 8 |
FAULT_DEBUG | 9 |