USP integrates with DRMtoday via DRMtoday's Java based key ingestion application. Please note that this application is only provided to DRMtoday customers.

To use the tool, select one of the commands to be run by the Java application:

java -jar tools-drmtoday-cli-3.0.20.jar <command>

DRMtoday cli tool

Available commands:

Command Description
ingest -t CENC Ingests a Common Encryption key
deleteByAssetId Deletes an asset by asset id
deleteByKeyId Deletes an asset by key id
genKey Generates a random value that can be used as a key
genKeyId Generates a UUID to be used as key id

The output of genKey and genKeyId should be used with the ingest -t CENC command.

The key and keyid strings do not have to be generated by the DRMtoday tool, 16 random bytes are sufficient (as long as they are provided by a trusted random number generator).

There are two ways of combining the output of the DRMtoday tool and USP:

First method:

  • Generate CEK with genKey and KID with genKeyId
  • Use ingestKey with the UUID format of the KID
  • Pass the KID as hex (base16) to USP

Second method:

  • Generate both CEK and KID with genKey
  • Pass CEK and KID as hex (base16) to USP

In the case of CENC you will need to pass the returned "pssh" value as well to USP (via the drm_specific_data option).


Generate a content key or keyid:

java -jar tools-drmtoday-cli-3.0.20.jar genKey

Output: 411b990533e9911621f1d8c5754f068b, a hex (base16) value.


Never use the same value for content key and keyid. Always generate two different values.

Ingest a key pair:

java -jar tools-drmtoday-cli-3.0.20.jar ingest \
  -t CENC \
  -e TEST \
  -i f2ef66b385b7ee4f02a053b58affcd7a \
  -k 411b990533e9911621f1d8c5754f068b \
  -a TESTVIDEO_24042014 \

Delete a key pair:

java -jar tools-drmtoday-cli-3.0.20.jar deleteByKeyId \
  -t CENC \
  -e TEST \
  -i f2ef66b385b7ee4f02a053b58affcd7a \

Unified Origin - DRM / Unified Packager

The keys generated and ingested by DRMtoday in the previous example can be used by USP to generate a server manifest for just-in-time (dynamic) packaging or to encrypt a file for offline (static) packaging.

See Unified Origin - DRM and Unified Packager documentation for the available DRMs and how to configure them.