Delete DRM Store

@startuml

autonumber

box "Container" #LightGreen
participant Netflix
participant DPI
participant rialtoClient
end box

box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box


Netflix      ->  DPI:           deleteKeyStore(media_keys)
DPI          ->  rialtoClient:  deleteKeyStore(media_keys_handle)
rialtoClient ->  rialtoServer:  deleteKeyStore(media_keys_handle)

opt media_keys.key_system == "com.netflix.playready"
rialtoServer ->  Ocdm:          opencdm_delete_secure_store(media_keys_handle)
Ocdm         --> rialtoServer:  status
else
Ocdm         --> rialtoServer:  status=OK
note right: Null operation for non-Netflix apps to prevent\nthem deleting store for other applications
end

rialtoServer --> rialtoClient:  status
rialtoClient --> DPI:           status
DPI          --> Netflix:       status


@enduml


Delete Key Store

@startuml

autonumber

box "Container" #LightGreen
participant Netflix
participant DPI
participant rialtoClient
end box

box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box


Netflix      ->  DPI:           deleteDrmStore(media_keys)
DPI          ->  rialtoClient:  deleteDrmStore(media_keys_handle)
rialtoClient ->  rialtoServer:  deleteDrmStore(media_keys_handle)
rialtoServer --> rialtoClient:  status=OK
note right: This API is currently a null operation to\nprevent key stores for other apps being\ndeleted
rialtoClient --> DPI:           status
DPI          --> Netflix:       status


@enduml


Get DRM Store Hash

@startuml

autonumber

box "Container" #LightGreen
participant Netflix
participant DPI
participant rialtoClient
end box

box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box


Netflix      ->  DPI:           getDrmStoreHash(media_keys)
DPI          ->  rialtoClient:  getDrmStoreHash(media_keys_handle)
rialtoClient ->  rialtoServer:  getDrmStoreHash(media_keys_handle)
rialtoServer ->  Ocdm:          opencdm_get_secure_store_hash_ext(media_keys_handle)
Ocdm         --> rialtoServer:  status, drm_store_hash
rialtoServer --> rialtoClient:  status, drm_store_hash
rialtoClient --> DPI:           status, drm_store_hash
DPI          --> Netflix:       status, drm_store_hash


@enduml


Get Key Store Hash

@startuml

autonumber

box "Container" #LightGreen
participant Netflix
participant DPI
participant rialtoClient
end box

box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box


Netflix      ->  DPI:           getKeyStoreHash(media_keys)
DPI          ->  rialtoClient:  getKeyStoreHash(media_keys_handle)
rialtoClient ->  rialtoServer:  getKeyStoreHash(media_keys_handle)
rialtoServer ->  Ocdm:          opencdm_get_key_store_hash_ext(media_keys_handle)
Ocdm         --> rialtoServer:  status, key_store_hash
rialtoServer --> rialtoClient:  status, key_store_hash
rialtoClient --> DPI:           status, key_store_hash
DPI          --> Netflix:       status, key_store_hash


@enduml


Get LDL Session Limit

@startuml

autonumber

box "Container" #LightGreen
participant Netflix
participant DPI
participant rialtoClient
end box

box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box


Netflix      ->  DPI:           getLdlSessionsLimit(media_keys)
DPI          ->  rialtoClient:  getLdlSessionsLimit(media_keys_handle)
rialtoClient ->  rialtoServer:  getLdlSessionsLimit(media_keys_handle)
rialtoServer ->  Ocdm:          opencdm_system_ext_get_ldl_session_limit(media_keys_handle)
Ocdm         --> rialtoServer:  status, ldl_limit
rialtoServer --> rialtoClient:  status, ldl_limit
rialtoClient --> DPI:           status, ldl_limit
DPI          --> Netflix:       status, ldl_limit


@enduml


Get DRM Time

@startuml

autonumber

box "Container" #LightGreen
participant Netflix
participant DPI
participant rialtoClient
end box

box "Platform" #LightBlue
participant rialtoServer
participant Ocdm
end box


Netflix      ->  DPI:           getDrmTime(media_keys)
DPI          ->  rialtoClient:  getDrmTime(media_keys_handle)
rialtoClient ->  rialtoServer:  getDrmTime(media_keys_handle)
rialtoServer ->  Ocdm:          opencdm_system_ext_get_ldl_session_limit(media_keys_handle)
Ocdm         --> rialtoServer:  status, drm_time
rialtoServer --> rialtoClient:  status, drm_time
rialtoClient --> DPI:           status, drm_time
DPI          --> Netflix:       status, drm_time


@enduml