---
title: "Optional Nuget packages"
description: "Optional PKI SDK nuget packages that add integration with providers and libraries, including the external storage integrations for CAdES signatures."
canonical: "https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages"
locale: "en"
product: "PKI SDK"
last_updated: "2026-10-12"
---

# Optional Nuget packages

PKI SDK is distributed through the Nuget Package Manager. Besides the main package,
[Lacuna.Pki](https://www.nuget.org/packages/Lacuna.Pki/), there are a few optional packages that add integration
with providers and other libraries.

![Nuget packages](https://docs.lacunasoftware.com/images/pki-sdk/nuget-packages.png)

The arrows in the diagram above are dependencies. The **Lacuna.Pki** package has no dependencies, and each optional
package depends on it and on one other package, the one it integrates with.

## Storage integration

Some operations need an "external store", a place to store and retrieve data. Some examples of operations that need an
external store:

* Compressing and decompressing CAdES signatures (for more information see [Signature compression](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/signatures/cades/compression)).
* Creating and validating CAdES signatures with validation references but without validation values (for instance, the CAdES-C,
  CAdES-X Type 1 and ICP-Brasil AD-RV policies).

To perform these operations, you pass the SDK an object that implements the `Lacuna.Pki.Stores.ISimpleStore` interface. The
main package already has one implementation of the interface, the @Lacuna.Pki.Stores.FileSystemSimpleStore class, which stores
and retrieves files on the local file system. For large-scale systems, though, disk storage may not be reliable enough.
The following optional packages offer other storage options:

* [Azure Connector](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/azure-connector) (storage on Azure Blob Storage)
* [Amazon Connector](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/amazon-connector) (storage on Amazon S3)
* [Entity Framework Connector](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/ef-connector) (storage in a database)

## Logging integration

The following packages let you log the SDK's internal messages for diagnostics:

* [NLog Connector](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/nlog-connector) (send logs to the NLog library)
* [Entity Framework Connector](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/ef-connector) (send logs to the database)
* [Azure Connector](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/azure-connector) (send logs to Azure Table Storage)

The recommended package for logging is the [NLog Connector](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/nlog-connector): with **NLog** you can send logs to different
destinations, Azure and the database included, and benefit from the performance of a library built for that purpose.

## Nonce storage integration

For authentication with digital certificates, the SDK needs an external store for cryptographic *nonces*. The
[Entity Framework Connector](https://docs.lacunasoftware.com/en-us/articles/pki-sdk/optional-packages/ef-connector) package stores these *nonces* in the database using Microsoft Entity Framework.
