---
title: "init(keyExchangeKeys:dbSignatures:dbxSignatures:)"
framework: virtualization
role: symbol
role_heading: Initializer
path: "virtualization/vzefisignaturedatabaseconfiguration/init(keyexchangekeys:dbsignatures:dbxsignatures:)"
---

# init(keyExchangeKeys:dbSignatures:dbxSignatures:)

Creates a signature lists container from signature list objects.

## Declaration

```swift
init(keyExchangeKeys: [VZEFISignatureList], dbSignatures: [VZEFISignatureList], dbxSignatures: [VZEFISignatureList])
```

## Parameters

- `keyExchangeKeys`: An array of doc://com.apple.virtualization/documentation/Virtualization/VZEFISignatureList objects for the Key Exchange Key (KEK) database. Must contain only X.509 certificates. If any signature list contains SHA-256 hashes, the framework raises an exception. This parameter can be empty if you don’t need to add KEK signatures.
- `dbSignatures`: An array of doc://com.apple.virtualization/documentation/Virtualization/VZEFISignatureList objects for the allowed signature database (db). This parameter can be empty if you don’t need to add allowed signatures.
- `dbxSignatures`: An array of doc://com.apple.virtualization/documentation/Virtualization/VZEFISignatureList objects for the forbidden signature database (dbx). This parameter can be empty if you don’t need to add forbidden signatures.

## Discussion

Discussion warning: Make sure that the signature data is in the correct format. Applying a malformed configuration may corrupt the variable store and render the guest unbootable. This initializer creates a container holding signature lists for all three UEFI Secure Boot databases. The following example demonstrates the creation of a VZEFISignatureDatabaseConfiguration with a fully custom configuration.
