Skip to main content

SPSDK Signature Provider plugin using Keyfactor's API

Project description

Keyfactor Signature Provider

SPSDK Signature Provider plugin using Keyfactor's API

Features

  • Allows SPSDK to use Keyfactor for signing any arbitrary data
  • Users might be authenticated using Client Certificates

Installation

  • Activate virtual env, where you have SPSDK
    • to install spsdk run: pip install spsdk
  • pip install spsdk_keyfactor

Usage

All of plugin configuration can be done via environment variables:

  • KEYFACTOR_HOST: URL of the Keyfactor host (example: "https://ray-signserver.keyfactoriot.com")
  • KEYFACTOR_HOST_VERIFY: Path to a TLS certificate to verify the HOST (example: "ejbcav8demo.keyfactoriot.com.pem")
  • KEYFACTOR_AUTH_TYPE: Type of authentication in Keyfactor
    • client_certificate_key using client x509 certificate and private key
    • client_certificate_pkcs12 using client PKCS#12 certificate and password (password might be stored in a file, and then password is a path to a file with the password to PKCS#12 certificate)
  • KEYFACTOR_AUTH_VALUE: Coma-separated string of values described by KEYFACTOR_AUTH_TYPE (example for PKCS#12: "path_to_pkcs.p12,path_to_pass.txt")
  • KEYFACTOR_WORKER: Name or ID of the Keyfactor Worker to use (example: "PlainSigner")
  • KEYFACTOR_PREHASH: Client-side pre-hashing of data (example: "SHA-256", "SHA-384")
  • KEYFACTOR_SIGNATURE_LENGTH: Length in bytes of the raw signature (without potential DER encoding) (example: 256 for RSA, 64 for ECC-256)
    • if this setting is skipped, the plugin will autodetect the value

Environment variables may be specified in a file. By default the plugin searches for file named .keyfactor.env in the following locations: CWD, HOME, ~/.config
The path to env file also be set via environment variable KEYFACTOR_DOTENV_PATH

Plugin comes with an companion app (nxp-keyfactor) which you may use to create a configuration file template.
To generate a configuration file, run: nxp-keyfactor get-template

Once the plugin is configured, you may use it everywhere in SPSDK config files where a path to a private key or signature provider is mentioned. The identifier for this plugin is keyfactor.

Example: signProvider: type=keyfactor[;worker=myWorker]

  • (setting the worker name/id in SPSDK config file overrides the KEYFACTOR_WORKER setting)

When you need to download a public key corresponding to your Keyfactor worker (e.g.: SRK_TABLE for AHAB) you can use the companion app.
Example: nxp-keyfactor get-puk --worker PlainSigner --output my_public_key.pem

Credits

This package was created with Cookiecutter and the SPSDK Signature Provider project template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spsdk_keyfactor-0.4.1.tar.gz (11.0 kB view details)

Uploaded Source

File details

Details for the file spsdk_keyfactor-0.4.1.tar.gz.

File metadata

  • Download URL: spsdk_keyfactor-0.4.1.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for spsdk_keyfactor-0.4.1.tar.gz
Algorithm Hash digest
SHA256 e53a6fe29b36d9918c044cc2d42f493482bc735a347654d5d9d4f714b2da2e90
MD5 83fea9d9e5dec42da1320ec5ac9afc96
BLAKE2b-256 f40209ec5b2dfd9208b63fdbc40c24b5ce43b3ae3dc7a024846c28d865d9f732

See more details on using hashes here.

Provenance

The following attestation bundles were made for spsdk_keyfactor-0.4.1.tar.gz:

Publisher: deploy.yml on nxp-mcuxpresso/spsdk_plugins

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page