> For the complete documentation index, see [llms.txt](https://docs.medcrypt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.medcrypt.com/guardian/guardian.md).

# Guardian overview

Guardian provides PKI-based cryptographic security for medical devices: device authentication, secure communication, and regulatory compliance without disrupting performance. The Guardian library abstracts away cryptography-related tasks so your team can focus on the clinical features that are core to your device, rather than building and maintaining a security layer from scratch.

### Set up Guardian and provision devices

<table data-view="cards" data-full-width="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Get started</strong></td><td><ul><li><a href="/guardian/get-started.md">What is Guardian</a></li><li><a href="/guardian/get-started/who-should-use-guardian.md">Who should use Guardian?</a></li><li><a href="/guardian/get-started/get-familiar-with-the-guardian-ui.md">Get familiar with the Guardian UI</a></li><li><a href="/guardian/get-started/quickstart-process.md"><strong>Quickstart process</strong></a></li><li><a href="/guardian/get-started/quickstart-process/provision-your-first-device.md">Provision your first device</a></li><li><a href="/guardian/get-started/quickstart-process/download-guardian-library-file.md">Download Guardian library</a></li><li><a href="/guardian/get-started/guardian-terminology.md">Guardian terminology</a></li><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning.md#guardian-file-types-and-extensions">Guardian file types and extensions</a></li></ul></td><td></td></tr><tr><td><strong>Manage systems</strong></td><td><ul><li><a href="/guardian/manage-systems/create-new-system.md">Create new system</a></li><li><a href="/guardian/manage-systems.md">Manage systems</a></li><li><a href="/guardian/manage-systems/manage-certificate-trust-chain.md">Manage certificate trust chain</a></li></ul></td><td></td></tr><tr><td><strong>Manage provisioning</strong></td><td><ul><li><a href="/guardian/understand-device-provisioning.md">Understand device provisioning</a></li><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning.md">Begin device provisioning</a></li><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning.md#provisioning-methods">Provisioning methods</a></li><li><a href="/guardian/understand-device-provisioning/manage-device-provisioning.md">Manage device provisioning</a></li><li><a href="/guardian/understand-device-provisioning/manage-device-provisioning.md#export-provisioning-report">Export provisioning report</a></li></ul></td><td></td></tr><tr><td><strong>Provision devices via UI</strong></td><td><ul><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning.md#connected-provisioning-method">Connected device provisioning</a></li><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning.md#disconnected-provisioning-method">Disconnected device provisioning</a></li></ul></td><td></td></tr><tr><td><strong>Manage certificates</strong></td><td><ul><li><a href="/guardian/understand-device-provisioning/manage-certificates.md">Manage device certificates</a></li><li><a href="/guardian/manage-systems/manage-certificate-trust-chain.md">Manage Root of Trust certificates</a></li><li><a href="/guardian/understand-device-provisioning/extract-certificates-from-provisioned-devices.md">Extract certificates from provisioned devices</a></li></ul></td><td></td></tr><tr><td><strong>Secure your deployment</strong></td><td><ul><li><a href="/guardian/get-started/security-best-practices.md">Security best practices</a></li><li><a href="/guardian/get-started/what-is-public-key-infrastructure-pki.md">What is PKI?</a></li></ul></td><td></td></tr></tbody></table>

### Integrate the Guardian library

<table data-view="cards" data-full-width="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Provision devices via API</strong></td><td><ul><li><a href="/guardian/api-overview.md">API overview</a></li><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning/provision-devices-using-api.md#connected-device-provisioning">Connected device provisioning</a></li><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning/provision-devices-using-api.md#disconnected-device-provisioning">Disconnected device provisioning</a></li><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning/provision-devices-using-api.md#proxy-device-provisioning">Proxy device provisioning</a></li></ul></td><td></td></tr><tr><td><strong>Provision via command line</strong></td><td><ul><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning/provision-devices-using-command-line.md#connected-device-provisioning">Connected device provisioning</a></li><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning/provision-devices-using-command-line.md#disconnected-device-provisioning">Disconnected device provisioning</a></li><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning/provision-devices-using-command-line.md#proxy-device-provisioning">Proxy device provisioning</a></li></ul></td><td></td></tr><tr><td><strong>Code examples</strong></td><td><ul><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning/device-provisioning-code-examples.md#connected-device-provisioning-examples">Connected device provisioning</a></li><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning/device-provisioning-code-examples.md#disconnected-provisioning-examples">Disconnected device provisioning</a></li><li><a href="/guardian/understand-device-provisioning/begin-device-provisioning/device-provisioning-code-examples.md#proxy-device-provisioning-examples">Proxy device provisioning</a></li></ul></td><td></td></tr><tr><td><strong>API reference</strong></td><td><ul><li><a href="/guardian/api-overview.md">API overview</a></li><li><a href="/guardian/api-overview/api-reference.md">API reference</a></li><li><a href="/guardian/api-overview/api-reference/classes/classmedcrypt-guardian-guardian.md">Guardian class</a></li><li><a href="/guardian/api-overview/api-reference/classes.md">Classes</a></li><li><a href="/guardian/api-overview/api-reference/namespaces.md">Namespaces</a></li><li><a href="/guardian/api-overview/api-reference/namespaces/namespacemedcrypt-guardian-guardianstatusenum.md">Status codes</a></li></ul></td><td></td></tr></tbody></table>

### Updates and administration

<table data-view="cards" data-full-width="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Check out the latest updates!</strong></td><td><ul><li><a href="/guardian/changelog.md">Changelog</a></li></ul></td><td></td></tr><tr><td><strong>Administration</strong></td><td><ul><li><a href="/guardian/administration/user-roles-and-permissions.md">User roles and permissions</a></li><li><a href="/guardian/administration/modify-your-organizations-name.md">Modify your organization's name</a></li></ul></td><td></td></tr></tbody></table>

## Why an integrated library

Learning the basics of how to use crypto libraries such as libsodium or OpenSSL to perform key generation, data signing and encryption, or certificate verification is fairly straightforward. Integrating those operations into a complete security solution is not. A production solution has to address:

* Configuration-driven key generation and storage
* Certificate management
* Security layer and code abstraction, and patching
* Security library inventory and version tracking
* Vulnerability tracking and reporting

Getting all of this right requires an expert team and significant, ongoing effort. Guardian provides it as a service, so you can secure your product without reinventing the security wheel.

## Capabilities

* C/C++ library, cross-compilable to targets including ARM and x86, on Linux, QNX, BSD, macOS, Windows, Android, and iOS
* Available as a ready-to-build source package or as native library binaries, with bridges to the native library for Java (via JNI) and NodeJS (via pre-gyp and gyp)
* Support for popular open-source cryptography libraries
* Options for root-of-trust control
* Configuration-driven security guided by a best-practices policy
* Data security configurations signed by the root of trust

These capabilities are designed to cover the [FDA's recommendations for data security in medical devices](https://www.fda.gov/downloads/MedicalDevices/DeviceRegulationandGuidance/GuidanceDocuments/UCM623529.pdf), which place particular emphasis on data encryption, signature verification, intrusion detection, and vulnerability monitoring.

Tell us what we've done well and how we can improve: [reach out to us](mailto:support@medcrypt.com).
