When you create a project and select your content protection level to be "DRM" or "DRM Plus", BlendVision Loom will require you to generate a JSON Web Token(JWT) as a key for DRM server authentication.
Sample of Console UI to show where to input this information:

BlendVIsion DRM server uses JSON Web Token(JWT) with ECDSA (using P-256 and SHA-256 (ES256)) for signing.
Please check below for the key generation instruction and a JWT example:
1. Open "Terminal" on your device then input the following key generation command
2. Private Key Generation
$> openssl ecparam -genkey -name prime256v1 -noout -out private-ec256.pem
read EC key
writing EC key
3. Public Key Generation
$> openssl ec -in private-ec256.pem -pubout -out public-ec256.pem
4. Converting Public Key to Base64
cat public-ec256.pem | base64
5. Copy the converted public key and paste it to console
the key will end with the symbol "=="

JWT Structure
Standard Claims:
-
sub-
Type: String
-
Value: [Optional]. the content id provided by user
-
-
exp-
Type: Integer
-
Value: the expected UNIX timestamp of the token expiration
-
-
iat-
Type: Integer
-
Value: The Unix timestamp of the token issue
-
-
iss-
Type: String
-
Value: use
.to concateorganization_idandproject_id -
Example:
UUID_1.UUID_2
-
Custom Claims:
-
version:-
Type: Integer
-
Value: Current struct version. Provided by BlendVision Document.
-
-
drm_config:-
Type: JSON Object
-
Value:
-
Key Name:
fairplay,playreader,widevine -
Object Context:
-
hdcp:The options would be to apply for HDCP setting
-
Type: String
-
Values:
hdcp_none-
Enumeration: (To be stated)
-
-
-
offline_duration:-
Type: integer
-
Values: The lifetime of offline playback license in second
-
-
online_duration-
Type: integer
-
Values: The lifetime of online playback license in second
-
-
allow_offline_playback-
Type: boolean
-
-
allow_analog_out-
Type: boolean
-
-
-
-
Example
{
"drm_config": {
"version": 1,
"fairplay": {
"hdcp": "hdcp_none",
"online_duration": 0,
"offline_duration": 86400,
"allow_offline_playback": false,
"allow_analog_out": false
},
"playready": {
"hdcp": "hdcp_none",
"online_duration": 0,
"offline_duration": 86400,
"allow_offline_playback": false,
"allow_analog_out": false
},
"widevine": {
"hdcp": "hdcp_none",
"online_duration": 0,
"offline_duration": 86400,
"allow_offline_playback": false,
"allow_analog_out": false
}
},
"sub": "{customer defined content id}",
"exp": 1623764349,
"iat": 1623742749,
"iss": "{customer organization id}.{customer project id}"
}