Skip to main content

Installation

Supported Platforms

  • Linux

    • RHEL 9/8/7 x64, CentOS (8)/7 x64, Oracle Linux 9/8/7 x64
    • Ubuntu 24/22/20/18/16 x64
    • Debian 12/11/10/9/8 x64
    • SUSE Linux Enterprise Server SLES15/12 (x64)
    • other OS available upon request
      tip

      Many other Linux distributions may work correctly, provided the GLIBC libraries are compatible (e.g. Rocky Linux).
      Have a try using the PrimusAPI_PKCS11-X-2.x.y-rhel8-x86_64.tar.gz archive and follow the instructions under 'Linux – Manual Installation'.

  • Microsoft Windows

    • Windows 7 x64/x32 or newer
    • Windows Server 2012R2 or newer

Library Requirements

  • Linux (GLIBC/GLIBCXX): latest gcc-runtime and g++ runtime libraries of the distribution

  • Windows: Visual C++ Redistributable Packages for Visual Studio 2015

Packages

The following table shows which package is to be used for the different OS platforms:

Packagefor Platform (all 64-bit except Win32)
PrimusAPI_PKCS11-X-2.x.y-debian10-aarch64.debUbuntu 22/20, Debian 11/10 (ARM-64)
PrimusAPI_PKCS11-X-2.x.y-debian10-x86_64.debUbuntu 22/20, Debian 11/10 (x86_64)
PrimusAPI_PKCS11-X-2.x.y-rhel7-aarch64.rpmRHEL/CentOS 7 (ARM-64)
PrimusAPI_PKCS11-X-2.x.y-rhel7-x86_64.rpmRHEL/CentOS 7 (x86_64)
PrimusAPI_PKCS11-X-2.x.y-rhel8-aarch64.rpmRHEL/CentOS 8 (ARM-64)
PrimusAPI_PKCS11-X-2.x.y-rhel8-x86_64.rpmRHEL/CentOS 8 (x86_64)
PrimusAPI_PKCS11-X-2.x.y-rhel7-aarch64.tar.gzRHEL/CentOS 7, Ubuntu 16, Debian 8, SLES12 (ARM-64)
PrimusAPI_PKCS11-X-2.x.y-rhel7-x86_64.tar.gzRHEL/CentOS 7, Ubuntu 16, Debian 8, SLES12 (x86_64)
PrimusAPI_PKCS11-X-2.x.y-rhel8-aarch64.tar.gzRHEL/CentOS 8, Ubuntu 22/20/18, Debian 11/10/9, SLES15 or newer (ARM-64)
PrimusAPI_PKCS11-X-2.x.y-rhel8-x86_64.tar.gzRHEL/CentOS 8, Ubuntu 22/20/18, Debian 11/10/9, SLES15 or newer (x86_64)
PrimusAPI_PKCS11-X-2.x.y-win64.msiWindows 7 and newer, Windows Server 2012R2 and newer
PrimusAPI_PKCS11-X-2.x.y-win32.msiWindows 7 and Windows Server 2012R2 and newer

Installation

info

Linux - Manual Installation

For updating an existing provider, change the tab to "Linux - Manual Upgrade"

  • Extract PrimusAPI_PKCS11-version-platform.tar.gz file with privileged user to /usr/local/. All the files will be extracted to the subdirectory ./primus. Further documentation assumes the provider in /usr/local/primus/. If installed to another location adapt environment variables etc. accordingly.

  • Add a group and system user primus; assign all files to user and group primus (recursive); remove rights for others; add all users using the PKCS#11 provider to the group primus (sudo usermod -a -G primus user).

  • Add /usr/local/primus/bin to search PATH and /usr/local/primus/lib to LD_LIBRARY_PATH.

sudo tar -xvzf PrimusAPI_PKCS11-version-platform.tar.gz -C /usr/local/

sudo groupadd primus
sudo useradd --no-create-home --system primus --gid primus
sudo chown -R primus:primus /usr/local/primus
sudo chmod -R o-rwxst /usr/local/primus
sudo usermod -a -G primus user

export PRIMUS_HOME=/usr/local/primus
export PATH=$PRIMUS_HOME/bin:$PATH
export LD_LIBRARY_PATH=$PRIMUS_HOME/lib:$LD_LIBRARY_PATH

Note:

  • Adding a user to a new group may require logout/login or reboot to update permissions. (as temporary workaround you may use newgrp primus or sudo login -f <user>)

  • The above export statements are only valid for the current shell. Assign the variables at startup to the necessary user(s), which varies depending on used shell and operating system.

For first time installations, copy the original configuration files from /usr/local/primus/etc to /etc/primus so they don't get overwritten by further updates:

sudo mkdir /etc/primus
sudo cp -vp /usr/local/primus/etc/primus.cfg /etc/primus/
sudo cp -vp /usr/local/primus/etc/.secrets.cfg /etc/primus/

The following table lists the default installation directory structure and their content:

Installation DirectoryFiles
/usr/local/primusPRIMUS_HOME, Primus home directory
/usr/local/primus/binppin (Primus permanent PIN utility)
/usr/local/primus/liblibprimusP11.so (PKCS#11 Provider)
/usr/local/primus/etcprimus.cfg configuration and .secrets.cfg file templates
/usr/local/primus/includePKCS#11 header files for integrations