Kodi Documentation  19.0
Kodi is an open source media player and entertainment hub.
Library - xbmcdrm

Kodi's DRM class. More...

Classes

class  XBMCAddon::xbmcdrm::CryptoSession
 

Functions

 XBMCAddon::xbmcdrm::CryptoSession::GetKeyRequest (...)
 

Function: GetKeyRequest(init, mimeType, offlineKey, optionalParameters)


Generate a key request which is supposed to be send to the key server. The servers response is passed to provideKeyResponse to activate the keys. More...

 
 XBMCAddon::xbmcdrm::CryptoSession::GetPropertyString (...)
 

Function: GetPropertyString(name)


Request a system specific property value of the DRM system More...

 
 XBMCAddon::xbmcdrm::CryptoSession::ProvideKeyResponse (...)
 

Function: ProvideKeyResponse(response)


Provide key data returned from key server. See getKeyRequest(...) More...

 
 XBMCAddon::xbmcdrm::CryptoSession::RemoveKeys (...)
 

Function: RemoveKeys()


removes all keys currently loaded in a session. More...

 
 XBMCAddon::xbmcdrm::CryptoSession::RestoreKeys (...)
 

Function: RestoreKeys(keySetId)


restores keys stored during previous provideKeyResponse call. More...

 
 XBMCAddon::xbmcdrm::CryptoSession::SetPropertyString (...)
 

Function: SetPropertyString(name, value)


Sets a system specific property value in the DRM system More...

 
 XBMCAddon::xbmcdrm::CryptoSession::Decrypt (...)
 

Function: Decrypt(cipherKeyId, input, iv)


Sets a system specific property value in the DRM system More...

 
 XBMCAddon::xbmcdrm::CryptoSession::Encrypt (...)
 

Function: Encrypt(cipherKeyId, input, iv)


Sets a system specific property value in the DRM system More...

 
 XBMCAddon::xbmcdrm::CryptoSession::Sign (...)
 

Function: Sign(macKeyId, message)


Sets a system specific property value in the DRM system More...

 
 XBMCAddon::xbmcdrm::CryptoSession::Verify (...)
 

Function: Verify(macKeyId, message, signature)


Sets a system specific property value in the DRM system More...

 

Detailed Description

Kodi's DRM class.

Class: xbmcdrm.CryptoSession(UUID, cipherAlgorithm, macAlgorithm)

Parameters
UUIDString 16 byte UUID of the DRM system to use
cipherAlgorithmString algorithm used for en / decryption
macAlgorithmString algorithm used for sign / verify
Exceptions
RuntimeExceptionif the session can not be established
v18 Python API changes:
New class added.

Function Documentation

§ Decrypt()

Buffer XBMCAddon::xbmcdrm::CryptoSession::Decrypt (   ...)

Function: Decrypt(cipherKeyId, input, iv)


Sets a system specific property value in the DRM system

Parameters
[byte]cipherKeyId
[byte]input
[byte]iv
Returns
Decrypted input data
v18 Python API changes:
New function added.

§ Encrypt()

Buffer XBMCAddon::xbmcdrm::CryptoSession::Encrypt (   ...)

Function: Encrypt(cipherKeyId, input, iv)


Sets a system specific property value in the DRM system

Parameters
[byte]cipherKeyId
[byte]input
[byte]iv
Returns
Encrypted input data
v18 Python API changes:
New function added.

§ GetKeyRequest()

Buffer XBMCAddon::xbmcdrm::CryptoSession::GetKeyRequest (   ...)

Function: GetKeyRequest(init, mimeType, offlineKey, optionalParameters)


Generate a key request which is supposed to be send to the key server. The servers response is passed to provideKeyResponse to activate the keys.

Parameters
[byte]init Initialization bytes / depends on key system
StringmimeType Type of media which is xchanged, e.g. application/xml, video/mp4
boolofflineKey Persistant (offline) or temporary (streaming) key
[map]optionalParameters optional parameters / depends on key system
Returns
opaque key request data (challenge) which is send to key server
v18 Python API changes:
New function added.

§ GetPropertyString()

String XBMCAddon::xbmcdrm::CryptoSession::GetPropertyString (   ...)

Function: GetPropertyString(name)


Request a system specific property value of the DRM system

Parameters
StringName name of the property to query
Returns
Value of the requested property
v18 Python API changes:
New function added.

§ ProvideKeyResponse()

String XBMCAddon::xbmcdrm::CryptoSession::ProvideKeyResponse (   ...)

Function: ProvideKeyResponse(response)


Provide key data returned from key server. See getKeyRequest(...)

Parameters
[byte]response Key data returned from key server
Returns
String If offline keays are requested, a keySetId which can be used later with restoreKeys, empty for online / streaming) keys.
v18 Python API changes:
New function added.

§ RemoveKeys()

void XBMCAddon::xbmcdrm::CryptoSession::RemoveKeys (   ...)

Function: RemoveKeys()


removes all keys currently loaded in a session.

Parameters
None
Returns
None
v18 Python API changes:
New function added.

§ RestoreKeys()

void XBMCAddon::xbmcdrm::CryptoSession::RestoreKeys (   ...)

Function: RestoreKeys(keySetId)


restores keys stored during previous provideKeyResponse call.

Parameters
StringkeySetId
Returns
None
v18 Python API changes:
New function added.

§ SetPropertyString()

void XBMCAddon::xbmcdrm::CryptoSession::SetPropertyString (   ...)

Function: SetPropertyString(name, value)


Sets a system specific property value in the DRM system

Parameters
Stringname Name of the property to query
Stringvalue Value of the property to query
Returns
Value of the requested property
v18 Python API changes:
New function added.

§ Sign()

Buffer XBMCAddon::xbmcdrm::CryptoSession::Sign (   ...)

Function: Sign(macKeyId, message)


Sets a system specific property value in the DRM system

Parameters
[byte]macKeyId
[byte]message
Returns
[byte] Signature
v18 Python API changes:
New function added.

§ Verify()

bool XBMCAddon::xbmcdrm::CryptoSession::Verify (   ...)

Function: Verify(macKeyId, message, signature)


Sets a system specific property value in the DRM system

Parameters
[byte]macKeyId
[byte]message
[byte]signature
Returns
true if message verification succeded
v18 Python API changes:
New function added.