| Wasabi ExpressPlay SDK for Embedded Systems
    1.23.0
    | 
Go to the source code of this file.
| Data Structures | |
| struct | TS2_DrmKeyResolver | 
| struct | TS2_SecretAesCbcDecrypter | 
| Decrypter structure for the decrypter created by the TS2_CryptoInterface CreateSecretAesCbcDecrypter function.  More... | |
| struct | TS2_CryptoInterface | 
| Clients of the MPEG-2 TS SDK API must implement the following interface (TS2_CryptoInterface) to provide some cryptographic functionality that might be needed by the API.  More... | |
| struct | TS2_TagLengthValue | 
| struct | TS2_KsmInfo | 
| For DVB-CSA protection, key consumer needs to depad the traffic keys from 128-bits to 64-bits.  More... | |
| struct | TS2_KsmDecrypterListener | 
| Macros | |
| #define | TS2_PROTECTION_KEY_LENGTH 16 | 
| #define | TS2_SecretAesCbcDecrypter_Decrypt(self, a, b, c) self->Decrypt(self->instance,a,b,c) | 
| Convenience macros.  More... | |
| #define | TS2_SecretAesCbcDecrypter_Destroy(self) self->Destroy(self) | 
| #define | TS2_Crypto_GetDrmKey(self, a, b) self.GetDrmKey(self.instance,a,b) | 
| Convenience macros.  More... | |
| #define | TS2_Crypto_TruncatedSha1(self, in_key, out_key) self.TruncatedSha1(self.instance,in_key,out_key) | 
| #define | TS2_Crypto_ExportSecret(self, a, b, c) self.ExportSecret(self.instance,a,b,c) | 
| #define | TS2_Crypto_GetKeyFormat(self, a, b) self.GetKeyFormat(self.instance,a,b) | 
| #define | TS2_Crypto_EqualSecret(self, a, b, c) self.EqualSecret(self.instance,a,b,c) | 
| #define | TS2_Crypto_ReleaseSecret(self, a) self.ReleaseSecret(self.instance,a) | 
| #define | TS2_Crypto_UnwrapSecret(self, a, b, c, d) self.UnwrapSecret(self.instance,a,b,c,d) | 
| #define | TS2_Crypto_GetMacKey(self, a, b, c, d) self.GetMacKey(self.instance,a,b,c,d) | 
| #define | TS2_Crypto_CreateSecretAesCbcDecrypter(self, a, b, c, d) self.CreateSecretAesCbcDecrypter(self.instance,a,b,c,d) | 
| Typedefs | |
| typedef struct TS2_PacketEncrypter | TS2_PacketEncrypter | 
| typedef struct TS2_PacketDecrypter | TS2_PacketDecrypter | 
| typedef struct TS2_ProtectionKeyMap | TS2_ProtectionKeyMap | 
| typedef struct TS2_Secret | TS2_Secret | 
| An opaque data structure defined by an implementation of the TS2_CryptoInterface.  More... | |
| typedef struct TS2_KsmDecrypter | TS2_KsmDecrypter | 
| Enumerations | |
| enum | TS2_TrafficKeyFormat { TS2_KEYFORMAT_CLEAR, TS2_KEYFORMAT_SKB } | 
| Traffic key format identifiers.  More... | |
| enum | TS2_TrafficProtectionSystem { TS2_NO_TRAFFIC_PROTECTION, TS2_UNSUPPORTED_TRAFFIC_PROTECTION, TS2_MPEG2TS_CRYPT_AES_CBC_PROTECTION, TS2_MPEG2TS_CRYPT_AES_CBC_BBTS20_PROTECTION, TS2_MPEG2TS_CRYPT_DVB_CSA_PROTECTION } | 
| enum | TS2_TrafficKeyParity { TS2_KEYPARITY_EVEN, TS2_KEYPARITY_ODD } | 
| enum | TS2_KsmInfoFlag { TS2_KIF_CURRENT_KEY = (1<<0), TS2_KIF_CURRENT_IV = (1<<1), TS2_KIF_NEXT_KEY = (1<<2), TS2_KIF_NEXT_IV = (1<<3), TS2_KIF_ACCESS_CRIT = (1<<4), TS2_KIF_TIMESTAMP = (1<<5), TS2_KIF_KEY_LIFETIME = (1<<6), TS2_KIF_PERMCATEGORY = (1<<7) } | 
| Functions | |
| ATX_Result | TS2_PacketEncrypter_Create (TS2_TrafficProtectionSystem protection, const ATX_Byte *drm_key, const ATX_Byte *cid_extension, ATX_Boolean is_service, ATX_UInt32 crypto_period, const ATX_Byte *traffic_seed, ATX_Size seed_size, ATX_UInt32 segment_start_index, const ATX_Byte *common_iv, ATX_Boolean single_key_layer, TS2_KSMT *ksmt, const ATX_Byte *access_criteria, ATX_Size access_criteria_size, TS2_PacketEncrypter **encrypter) | 
| ATX_Result | TS2_PacketEncrypter_ResetDrm (TS2_PacketEncrypter *self, const ATX_Byte *drm_key, const ATX_Byte *cid_extension, ATX_Boolean is_service, const ATX_Byte *access_criteria, ATX_Size access_criteria_size) | 
| ATX_Result | TS2_PacketEncrypter_UpdateKSMT (TS2_PacketEncrypter *self) | 
| void | TS2_PacketEncrypter_IncrementSegmentIndex (TS2_PacketEncrypter *self) | 
| ATX_Result | TS2_PacketEncrypter_Encrypt (TS2_PacketEncrypter *self, TS2_Packet *packet) | 
| void | TS2_PacketEncrypter_Destroy (TS2_PacketEncrypter *self) | 
| ATX_Result | TS2_KsmDecrypter_Create (const char *cid_base, TS2_CryptoInterface crypto, TS2_KsmDecrypterListener listener, TS2_TrafficProtectionSystem protection, ATX_UInt32 kdf_type, TS2_KsmDecrypter **decrypter) | 
| ATX_Result | TS2_KsmDecrypter_UpdateKSM (TS2_KsmDecrypter *self, const TS2_KSM *ksm) | 
| void | TS2_KsmDecrypter_Destroy (TS2_KsmDecrypter *self) | 
| ATX_Result | TS2_PacketDecrypter_Create (TS2_TrafficProtectionSystem protection, ATX_UInt32 kdf_type, const char *cid_base, TS2_DrmKeyResolver key_resolver, TS2_CryptoInterface *crypto, TS2_PacketDecrypter **decrypter) | 
| ATX_Result | TS2_PacketDecrypter_UpdateKSM (TS2_PacketDecrypter *self, const TS2_KSM *ksm) | 
| ATX_Result | TS2_PacketDecrypter_Decrypt (TS2_PacketDecrypter *self, TS2_Packet *packet) | 
| void | TS2_PacketDecrypter_Destroy (TS2_PacketDecrypter *self) | 
| ATX_Result | TS2_ProtectionKeyMap_Create (TS2_ProtectionKeyMap **key_map) | 
| ATX_Result | TS2_ProtectionKeyMap_SetKey (TS2_ProtectionKeyMap *self, const char *content_id, const ATX_Byte *key) | 
| key length is TS2_PROTECTION_KEY_LENGTH  More... | |
| const ATX_Byte * | TS2_ProtectionKeyMap_GetKey (const TS2_ProtectionKeyMap *self, const char *content_id) | 
| TS2_DrmKeyResolver | TS2_ProtectionKeyMap_GetResolver (TS2_ProtectionKeyMap *self) | 
| void | TS2_ProtectionKeyMap_Destroy (TS2_ProtectionKeyMap *self) | 
| ATX_Result | TS2_GenerateTrafficKey (const ATX_Byte *seed, ATX_Size seed_size, ATX_UInt32 index, ATX_Byte *traffic_key) | 
| ATX_Result | TS2_GenerateInitializationVector (const ATX_Byte *seed, ATX_Size seed_size, ATX_UInt32 index, ATX_Byte *iv) | 
| #define TS2_Crypto_CreateSecretAesCbcDecrypter | ( | self, | |
| a, | |||
| b, | |||
| c, | |||
| d | |||
| ) | self.CreateSecretAesCbcDecrypter(self.instance,a,b,c,d) | 
| #define TS2_Crypto_EqualSecret | ( | self, | |
| a, | |||
| b, | |||
| c | |||
| ) | self.EqualSecret(self.instance,a,b,c) | 
| #define TS2_Crypto_ExportSecret | ( | self, | |
| a, | |||
| b, | |||
| c | |||
| ) | self.ExportSecret(self.instance,a,b,c) | 
| #define TS2_Crypto_GetDrmKey | ( | self, | |
| a, | |||
| b | |||
| ) | self.GetDrmKey(self.instance,a,b) | 
Convenience macros.
| #define TS2_Crypto_GetKeyFormat | ( | self, | |
| a, | |||
| b | |||
| ) | self.GetKeyFormat(self.instance,a,b) | 
| #define TS2_Crypto_GetMacKey | ( | self, | |
| a, | |||
| b, | |||
| c, | |||
| d | |||
| ) | self.GetMacKey(self.instance,a,b,c,d) | 
| #define TS2_Crypto_ReleaseSecret | ( | self, | |
| a | |||
| ) | self.ReleaseSecret(self.instance,a) | 
| #define TS2_Crypto_TruncatedSha1 | ( | self, | |
| in_key, | |||
| out_key | |||
| ) | self.TruncatedSha1(self.instance,in_key,out_key) | 
| #define TS2_Crypto_UnwrapSecret | ( | self, | |
| a, | |||
| b, | |||
| c, | |||
| d | |||
| ) | self.UnwrapSecret(self.instance,a,b,c,d) | 
| #define TS2_PROTECTION_KEY_LENGTH 16 | 
| #define TS2_SecretAesCbcDecrypter_Decrypt | ( | self, | |
| a, | |||
| b, | |||
| c | |||
| ) | self->Decrypt(self->instance,a,b,c) | 
Convenience macros.
| #define TS2_SecretAesCbcDecrypter_Destroy | ( | self | ) | self->Destroy(self) | 
| typedef struct TS2_KsmDecrypter TS2_KsmDecrypter | 
| typedef struct TS2_PacketDecrypter TS2_PacketDecrypter | 
| typedef struct TS2_PacketEncrypter TS2_PacketEncrypter | 
| typedef struct TS2_ProtectionKeyMap TS2_ProtectionKeyMap | 
| typedef struct TS2_Secret TS2_Secret | 
An opaque data structure defined by an implementation of the TS2_CryptoInterface.
| enum TS2_KsmInfoFlag | 
| enum TS2_TrafficKeyFormat | 
| enum TS2_TrafficKeyParity | 
| ATX_Result TS2_GenerateInitializationVector | ( | const ATX_Byte * | seed, | 
| ATX_Size | seed_size, | ||
| ATX_UInt32 | index, | ||
| ATX_Byte * | iv | ||
| ) | 
| ATX_Result TS2_GenerateTrafficKey | ( | const ATX_Byte * | seed, | 
| ATX_Size | seed_size, | ||
| ATX_UInt32 | index, | ||
| ATX_Byte * | traffic_key | ||
| ) | 
| ATX_Result TS2_KsmDecrypter_Create | ( | const char * | cid_base, | 
| TS2_CryptoInterface | crypto, | ||
| TS2_KsmDecrypterListener | listener, | ||
| TS2_TrafficProtectionSystem | protection, | ||
| ATX_UInt32 | kdf_type, | ||
| TS2_KsmDecrypter ** | decrypter | ||
| ) | 
| void TS2_KsmDecrypter_Destroy | ( | TS2_KsmDecrypter * | self | ) | 
| ATX_Result TS2_KsmDecrypter_UpdateKSM | ( | TS2_KsmDecrypter * | self, | 
| const TS2_KSM * | ksm | ||
| ) | 
| ATX_Result TS2_PacketDecrypter_Create | ( | TS2_TrafficProtectionSystem | protection, | 
| ATX_UInt32 | kdf_type, | ||
| const char * | cid_base, | ||
| TS2_DrmKeyResolver | key_resolver, | ||
| TS2_CryptoInterface * | crypto, | ||
| TS2_PacketDecrypter ** | decrypter | ||
| ) | 
| ATX_Result TS2_PacketDecrypter_Decrypt | ( | TS2_PacketDecrypter * | self, | 
| TS2_Packet * | packet | ||
| ) | 
| void TS2_PacketDecrypter_Destroy | ( | TS2_PacketDecrypter * | self | ) | 
| ATX_Result TS2_PacketDecrypter_UpdateKSM | ( | TS2_PacketDecrypter * | self, | 
| const TS2_KSM * | ksm | ||
| ) | 
| ATX_Result TS2_PacketEncrypter_Create | ( | TS2_TrafficProtectionSystem | protection, | 
| const ATX_Byte * | drm_key, | ||
| const ATX_Byte * | cid_extension, | ||
| ATX_Boolean | is_service, | ||
| ATX_UInt32 | crypto_period, | ||
| const ATX_Byte * | traffic_seed, | ||
| ATX_Size | seed_size, | ||
| ATX_UInt32 | segment_start_index, | ||
| const ATX_Byte * | common_iv, | ||
| ATX_Boolean | single_key_layer, | ||
| TS2_KSMT * | ksmt, | ||
| const ATX_Byte * | access_criteria, | ||
| ATX_Size | access_criteria_size, | ||
| TS2_PacketEncrypter ** | encrypter | ||
| ) | 
| void TS2_PacketEncrypter_Destroy | ( | TS2_PacketEncrypter * | self | ) | 
| ATX_Result TS2_PacketEncrypter_Encrypt | ( | TS2_PacketEncrypter * | self, | 
| TS2_Packet * | packet | ||
| ) | 
| void TS2_PacketEncrypter_IncrementSegmentIndex | ( | TS2_PacketEncrypter * | self | ) | 
| ATX_Result TS2_PacketEncrypter_ResetDrm | ( | TS2_PacketEncrypter * | self, | 
| const ATX_Byte * | drm_key, | ||
| const ATX_Byte * | cid_extension, | ||
| ATX_Boolean | is_service, | ||
| const ATX_Byte * | access_criteria, | ||
| ATX_Size | access_criteria_size | ||
| ) | 
| ATX_Result TS2_PacketEncrypter_UpdateKSMT | ( | TS2_PacketEncrypter * | self | ) | 
| ATX_Result TS2_ProtectionKeyMap_Create | ( | TS2_ProtectionKeyMap ** | key_map | ) | 
| void TS2_ProtectionKeyMap_Destroy | ( | TS2_ProtectionKeyMap * | self | ) | 
| const ATX_Byte* TS2_ProtectionKeyMap_GetKey | ( | const TS2_ProtectionKeyMap * | self, | 
| const char * | content_id | ||
| ) | 
| TS2_DrmKeyResolver TS2_ProtectionKeyMap_GetResolver | ( | TS2_ProtectionKeyMap * | self | ) | 
| ATX_Result TS2_ProtectionKeyMap_SetKey | ( | TS2_ProtectionKeyMap * | self, | 
| const char * | content_id, | ||
| const ATX_Byte * | key | ||
| ) | 
key length is TS2_PROTECTION_KEY_LENGTH