Appx CMS Signer

ENTERPRISE  This is a SignServer Enterprise feature.

The signer has the fully qualified class name: org.signserver.module.msauthcode.signer.AppxCMSSigner.

Overview

The Appx CMS signer is a special-purpose version of the extended CMS signer, allowing producing CMS signatures for Microsoft APPX packages. This is intended for use with client-side hashing, where a client does the hashing of the original file and requests this hash to be signed by SignServer, producing a signature which is then inserted into the resulting output file by the client.

This signer has all the properties of the Extended CMS Signer and includes the Appx-specific properties of the Appx Signer. Note however that the Appx CMS signer does not support specifying the content OID (using the CONTENTOID property) or overriding the content OID to use (by enabling the ALLOW_CONTENTOID_OVERRIDE property) since the content OID is set according to the Authenticode specification.

The signdocument command can be used with client-side hashing and construction to sign an APPX package by hashing on the client-side, signing the hash server-side using this signer, and finally assembling the final signed binary or installer on the client-side. For more information, see Client-Side Hashing.

The Appx CMS signer only supports RFC#3161 timestamps.

Available Properties

PropertyDescription
PROGRAM_NAMEProgram name to embed in the signature. Optional, default: none.
ALLOW_PROGRAM_NAME_OVERRIDE If the requestor should be able to override the program name by supplying it as a request metadata property. Optional, default: false.
PROGRAM_URL Program URL to embed in the signature. Optional, default: none.
ALLOW_PROGRAM_URL_OVERRIDEIf the requestor should be able to override the program URL by supplying it as a request metadata property. Optional, default: false.

Request Properties

This worker can accept the following request metadata properties, given that they are configured to be allowed:

FieldDescription
FILE_TYPEThe file type for which the signature should be used in. Currently supported values are PE (for portable executables, such as Windows .exe and .dll files), or MSI (for Windows installers). This affects the layout of the content in the CMS structure. If not specified, PE is assumed.
PROGRAM_NAME Program name text to use instead of the configured one (if any). Specifying an empty value removes the configured program name. Without ALLOW_PROGRAM_NAME_OVERRIDE configured in the worker request, including this request property will not be allowed.
PROGRAM_URL Program URL to use instead of the configured one (if any). Specifying an empty value removes the configured program URL. Without ALLOW_PROGRAM_URL_OVERRIDE configured in the worker request, including this request property will not be allowed.