Intel® Agilex™ Device Security User Guide

ID 683823
Date 11/09/2021
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

2.2.2. Co-Signing SDM Firmware

You use the quartus_sign tool to extract, sign, and install the applicable SDM firmware .zip file. The co-signed firmware is then included by the programming file generator tool when you convert .sof file into a configuration bitstream .rbf file. You use the following commands to create a new signature chain and sign SDM firmware.

  1. Create a new signing key pair.
    1. Create a new signing key pair on the file system.
      quartus_sign --family=agilex --operation=make_private_pem \  
      --curve=secp384r1 firmware1_private.pem 
      quartus_sign --family=agilex --operation=make_public_pem \  
      firmware1_private.pem firmware1_public.pem 
    2. Create a new signing key pair in the HSM.
      pkcs11-tool --module=/usr/local/lib/softhsm/libsofthsm2.so \
      --token_label agilex-token --login --pin agilex-token-pin \
      --keypairgen -–mechanism ECDSA-KEY-PAIR-GEN --key-type EC:secp384r1 \
      --usage-sign --label firmware1 --id 1
  2. Create a new signature chain containing the new public key.
    quartus_sign --family=agilex--operation=append_key \ 
    --previous_pem=root0_private.pem --previous_qky=root0.qky \ 
    --permission=0x1 --cancel=1 \
    firmware1_public.pem firmware1_sign_chain.qky
    quartus_sign --family=agilex --operation=append_key \
    --module=softHSM --module_args="--token_label=agilex-token \
    --user_pin=agilex-token-pin \
    --hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so" \
    --previous_pem=root0 --previous_qky=root0.qky \
    --permission=1 --cancel=1 firmware1 firmware1_sign_chain.qky
  3. Copy the firmware .zip file from your Intel® Quartus® Prime Pro Edition software installation directory ( <install_dir>/quartus/common/devinfo/programmer/firmware/agilex.zip ) to the current working directory.
    quartus_sign --family=agilex --get_firmware=.
  4. Sign the firmware .zip file. The tool automatically unpacks the .zip file and individually signs all firmware .cmf files, then rebuilds the .zip file for use by the tools in the following sections.
    quartus_sign --family=agilex --operation=sign \
    --qky=firmware1_sign_chain.qky \ 
    --cancel=svnA:0 --pem=firmware1_private.pem agilex.zip signed_agilex.zip
    quartus_sign --family=agilex --operation=sign --module=softHSM \
    --module_args="--token_label=agilex-token --user_pin=agilex-token-pin \
    --hsm_lib=/usr/local/lib/softhsm/libsofthsm2.so" \
    --pem=firmware1 --cancel=svnA:0 \
    --qky=firmware1_sign_chain.qky agilex.zip signed_agilex.zip