hdcp22_tx_dp: xhdcp22_tx_i.h File Reference

| hdcp22_tx_dp Xilinx SDK Drivers API Documentation

- Overview
- Data Structures
- APIs
- File List

Data Structures | Macros | Enumerations | Functions
xhdcp22_tx_i.h File Reference

## Data Structures
struct | XHdcp22_Tx_CertRx
| This typedef contains the public key certificate of Receiver that is received with AKE_Send_Cert. More...
struct | XHdcp22_Tx_AKESendCert
| This typedef contains the received AKE_Send_Cert message definition. More...
struct | XHdcp22_Tx_AKESendHPrime
| This typedef contains the received AKE_Send_H_prime message definition. More...
struct | XHdcp22_Tx_AKESendPairingInfo
| This typedef contains the received AKE_Send_Pairing_Info message definition. More...
struct | XHdcp22_Tx_LCSendLPrime
| This typedef contains the received AKE_Send_L_prime message definition. More...
struct | XHdcp22_Tx_AKEInit
| This typedef contains the transmitted AKE_Init message definition. More...
struct | XHdcp22_Tx_AKENoStoredKm
| This typedef contains the transmitted AKE_No_Stored_km message definition. More...
struct | XHdcp22_Tx_AKEStoredKm
| This typedef contains the transmitted AKE_Stored_km message definition. More...
struct | XHdcp22_Tx_LCInit
| This typedef contains the transmitted LC_Init message definition. More...
struct | XHdcp22_Tx_SKESendEks
| This typedef contains the transmitted SKE_Send_Eks message definition. More...
struct | XHdcp22_Tx_RepeatAuthSendRecvIDList
| This typedef contains the RepeaterAuth_Send_ReceiverID_List message definition. More...
struct | XHdcp22_Tx_RepeatAuthSendAck
| This typedef contains the RepeaterAuth_Send_Ack message definition. More...
struct | XHdcp22_Tx_RepeatAuthStreamManage
| This typedef contains the RepeaterAuth_Stream_Manage message definition. More...
struct | XHdcp22_Tx_RepeatAuthStreamReady
| This typedef contains the RepeaterAuth_Stream_Ready message definition. More...
union | XHdcp22_Tx_Message
| Message buffer structure. More...
struct | XHdcp22_Tx_DDCMessage
| Message including the DDC Address. More...

## Macros
#define | XHDCP22_TX_I_H
| prevent circular inclusions by using protection macros. More...
#define | XHDCP22_TX_MAX_ALLOWED_LOCALITY_CHECKS 8
| Maximum allowed re-checking locality, prescribed by LLC. More...
#define | XHDCP22_TX_MAX_ALLOWED_STREAM_MANAGE_CHECKS 128
| Maximum allowed re-checking content stream management. More...
#define | XHDCP22_TX_LC128_SIZE 16
| Lc128 global constant size. More...
#define | XHDCP22_TX_RCVID_SIZE 5
| Unique receiver Id size in bytes. More...
#define | XHDCP22_TX_REPEATER_MAX_DEVICE_COUNT 31
| Max number of downstream devices allowed. More...
#define | XHDCP22_TX_REPEATER_MAX_CASCADE_DEPTH 4
| Max cascade depth. More...
#define | XHDCP22_TX_MSG_UNDEFINED 0
| Undefined. More...
#define | XHDCP22_TX_AKE_INIT 2
| AKE Init message. More...
#define | XHDCP22_TX_AKE_INIT_SIZE 12
| AKE Init message size. More...
#define | XHDCP22_TX_AKE_SEND_CERT 3
| AKE Send Certificate message. More...
#define | XHDCP22_TX_AKE_SEND_CERT_SIZE 534
| AKE Send Certificate message size. More...
#define | XHDCP22_TX_AKE_NO_STORED_KM 4
| AKE No Stored Km message. More...
#define | XHDCP22_TX_AKE_NO_STORED_KM_SIZE 129
| AKE No Stored Km message size. More...
#define | XHDCP22_TX_AKE_STORED_KM 5
| AKE Stored Km message size. More...
#define | XHDCP22_TX_AKE_STORED_KM_SIZE 33
| AKE Stored Km message size. More...
#define | XHDCP22_TX_AKE_SEND_H_PRIME 7
| AKE H' message. More...
#define | XHDCP22_TX_AKE_SEND_H_PRIME_SIZE 33
| AKE H' message size. More...
#define | XHDCP22_TX_AKE_SEND_PAIRING_INFO 8
| AKE Pairing info message. More...
#define | XHDCP22_TX_AKE_SEND_PAIRING_INFO_SIZE 17
| AKE Pairing info message size. More...
#define | XHDCP22_TX_LC_INIT 9
| LC Init message. More...
#define | XHDCP22_TX_LC_INIT_SIZE 9
| LC Init message size. More...
#define | XHDCP22_TX_LC_SEND_L_PRIME 10
| Send L' message. More...
#define | XHDCP22_TX_LC_SEND_L_PRIME_SIZE 33
| Send L' message size. More...
#define | XHDCP22_TX_SKE_SEND_EKS 11
| Send Eks message. More...
#define | XHDCP22_TX_SKE_SEND_EKS_SIZE 25
| Send Eks message size. More...
#define | XHDCP22_TX_REPEATAUTH_SEND_RECVID_LIST 12
| Repeater Auth send receiver ID list message. More...
#define | XHDCP22_TX_REPEATAUTH_SEND_RECVID_LIST_SIZE 177
| Repeater Auth send receiver ID list maximum message size. More...
#define | XHDCP22_TX_REPEATAUTH_SEND_ACK 15
| RepeaterAuth send ack message. More...
#define | XHDCP22_TX_REPEATAUTH_SEND_ACK_SIZE 17
| RepeaterAuth send ack message size in bytes. More...
#define | XHDCP22_TX_REPEATAUTH_STREAM_MANAGE 16
| RepeaterAuth stream manage message. More...
#define | XHDCP22_TX_REPEATAUTH_STREAM_MANAGE_SIZE 8
| RepeaterAuth stream manage message size in bytes. More...
#define | XHDCP22_TX_REPEATAUTH_STREAM_READY 17
| RepeaterAuth stream ready message. More...
#define | XHDCP22_TX_REPEATAUTH_STREAM_READY_SIZE 33
| RepeaterAuth stream ready message size in bytes. More...
#define | XHDCP22_TX_TS_UNDEFINED XHDCP22_TX_MSG_UNDEFINED
| Reason why the timer was started: Undefined. More...
#define | XHDCP22_TX_TS_WAIT_FOR_STREAM_TYPE 0xFD
| Reason why the timer was started: Waiting for Content Stream Type to be set when in repeater mode. More...
#define | XHDCP22_TX_TS_WAIT_FOR_CIPHER 0xFE
| Reason why the timer was started: Mandatory wait of 200 ms before the cipher may be activated. More...
#define | XHDCP22_TX_TS_RX_REAUTH_CHECK 0xFF
| Reason why the timer was started: Status checking. More...
#define | XHDCP22_TX_TIMER_CNTR_0 0
| Internal used timer counter for timeout checking. More...
#define | XHDCP22_TX_TIMER_CNTR_1 1
| Internal used timer counter for logging. More...
#define | XHDCP22_TX_HDCPPORT_VERSION_OFFSET 0x50
| DDC version offset. More...
#define | XHDCP22_TX_HDCPPORT_WRITE_MSG_OFFSET 0x60
| DDC write message buffer offset. More...
#define | XHDCP22_TX_HDCPPORT_RXSTATUS_OFFSET 0x70
| DDC RX status offset. More...
#define | XHDCP22_TX_HDCPPORT_READ_MSG_OFFSET 0x80
| DDC read message buffer offset. More...
#define | XHDCP22_TX_RXSTATUS_REAUTH_REQ_MASK (1<<11)
| HDCP Port DDC Rx status register masks. More...
#define | XHDCP22_TX_RXSTATUS_READY_MASK (1<<10)
| RX status READY bit. More...
#define | XHDCP22_TX_RXSTATUS_AVAIL_BYTES_MASK (0x3FF)
| RX status available bytes in read message buffer. More...
#define | XHDCP22_TX_CERT_RCVID_SIZE 5
| RX certificate and Tx public key sizes in bytes. More...
#define | XHDCP22_TX_CERT_PUB_KEY_N_SIZE 128
| Public key-N size in the RX certificate. More...
#define | XHDCP22_TX_CERT_PUB_KEY_E_SIZE 3
| Public key-E size in the RX certificate. More...
#define | XHDCP22_TX_CERT_RSVD_SIZE 2
| Reserved size in the RX certificate. More...
#define | XHDCP22_TX_CERT_SIGNATURE_SIZE 384
| Signature size in the RX certificate. More...
#define | XHDCP22_TX_CERT_SIZE
| Total size of the RX certificate. More...
#define | XHDCP22_TX_RXCAPS_SIZE 3
| RX capabilities size. More...
#define | XHDCP22_TX_TXCAPS_SIZE 3
| TX capabilities size. More...
#define | XHDCP22_TX_KPUB_DCP_LLC_N_SIZE 384
| LLC public key-N size. More...
#define | XHDCP22_TX_KPUB_DCP_LLC_E_SIZE 1
| LLC public key-E size. More...
#define | XHDCP22_TX_SHA256_HASH_SIZE 32
| SHA256 hash size in bytes. More...
#define | XHDCP22_TX_AES128_SIZE 16
| AES128 keys in bytes. More...
#define | XHDCP22_TX_RTX_SIZE 8
| 64 bits. More...
#define | XHDCP22_TX_RRX_SIZE 8
| 64 bits. More...
#define | XHDCP22_TX_E_KPUB_KM_SIZE 128
| 1024 bits. More...
#define | XHDCP22_TX_H_PRIME_SIZE 32
| 256 bits. More...
#define | XHDCP22_TX_EKH_KM_SIZE 16
| 128 bits. More...
#define | XHDCP22_TX_RN_SIZE 8
| 64-bits. More...
#define | XHDCP22_TX_RIV_SIZE 8
| 64-bits. More...
#define | XHDCP22_TX_L_PRIME_SIZE 32
| 256 bits. More...
#define | XHDCP22_TX_KS_SIZE 16
| 128 bits. More...
#define | XHDCP22_TX_EDKEY_KS_SIZE 16
| 128 bits. More...
#define | XHDCP22_TX_SRM_RCVID_SIZE XHDCP22_TX_RCVID_SIZE
| Receiver Id size in the SRM block. More...
#define | XHDCP22_TX_SRM_SIGNATURE_SIZE 384
| Signature size in the SRM block. More...
#define | XHDCP22_TX_RXINFO_SIZE 2
| RxInfo size in bytes. More...
#define | XHDCP22_TX_SEQ_NUM_V_SIZE 3
| Seq_num_v size in bytes. More...
#define | XHDCP22_TX_V_SIZE 32
| V size in bytes. More...
#define | XHDCP22_TX_V_PRIME_SIZE 16
| VPrime size in bytes. More...
#define | XHDCP22_TX_SEQ_NUM_M_SIZE 3
| Seq_num_m size in bytes. More...
#define | XHDCP22_TX_K_SIZE 2
| K size in bytes. More...
#define | XHDCP22_TX_STREAMID_TYPE_SIZE 2
| Stream ID and Type size in bytes. More...
#define | XHDCP22_TX_M_PRIME_SIZE 32
| MPrime size in bytes. More...
#define | XHDCP22_TX_TEST_CERT_RX 0x00000001
| Use a certificate test vector. More...
#define | XHDCP22_TX_TEST_H1 0x00000002
| Use a H_Prime test vector. More...
#define | XHDCP22_TX_TEST_L1 0x00000004
| Use a L_Prime test vector. More...
#define | XHDCP22_TX_TEST_EKH_KM 0x00000008
| Use a pairing info Ekh(Km) test vector, use i.c.w XHDCP22_TX_TEST_RCV_TIMEOUT. More...
#define | XHDCP22_TX_TEST_INVALID_VALUE 0x00000010
| Invalidate a value. More...
#define | XHDCP22_TX_TEST_RCV_TIMEOUT 0x00000020
| Timeout on a received message. More...
#define | XHDCP22_TX_TEST_V1 0x00000040
| Use a V_Prime test vector. More...
#define | XHDCP22_TX_TEST_M1 0x00000080
| Use a M_Prime test vector. More...
#define | XHDCP22_TX_TEST_STORED_KM 0x00000100
| AKE is forced using a stored Km scenarion. More...
#define | XHDCP22_TX_TEST_NO_TIMEOUT 0x00000200
| Disable timeout checking. More...
#define | XHDCP22_TX_TEST_CLR_PAIRINGINFO 0x00000400
| Pairing info is cleared, to force a non-stored Km scenario. More...
#define | XHDCP22_TX_TEST_USE_TEST_VECTOR_R1 0x80000000
| Use testvectors for receiver R1. More...
#define | XHDCP22_TX_DDC_BASE_ADDRESS 0x3A
| DDC base address (0x74 >> 1) More...

## Enumerations
enum | XHdcp22_Tx_TestMode { XHDCP22_TX_TESTMODE_DISABLED, XHDCP22_TX_TESTMODE_SW_RX, XHDCP22_TX_TESTMODE_NO_RX, XHDCP22_TX_TESTMODE_UNIT, XHDCP22_TX_TESTMODE_USE_TESTKEYS, XHDCP22_TX_TESTMODE_INVALID }
| These constants are used to set the core into testing mode with #XHdcp22Tx_TestSetMode. More...
enum | XHdcp22_Tx_LogDebugValue
| Value definitions for debugging. More...

## Functions
void | XHdcp22Tx_MemXor (u8 *Output, const u8 *InputA, const u8 *InputB, unsigned int Size)
| This function calculates a XOR on a array. More...
int | XHdcp22Tx_VerifyCertificate (const XHdcp22_Tx_CertRx *CertificatePtr, const u8 *KpubDcpNPtr, int KpubDcpNSize, const u8 *KpubDcpEPtr, int KpubDcpESize)
| This function verifies the HDCP receivers certificate. More...
int | XHdcp22Tx_VerifySRM (const u8 *SrmPtr, int SrmSize, const u8 *KpubDcpNPtr, int KpubDcpNSize, const u8 *KpubDcpEPtr, int KpubDcpESize)
| This function verifies a HDCP2 system renewability message (SRM) block. More...
void | XHdcp22Tx_ComputeHPrime (const u8 *Rrx, const u8 *RxCaps, const u8 *Rtx, const u8 *TxCaps, const u8 *Km, u8 *HPrime)
| This function computes HPrime. More...
void | XHdcp22Tx_ComputeLPrime (const u8 *Rn, const u8 *Km, const u8 *Rrx, const u8 *Rtx, u8 *LPrime)
| This function computes LPrime. More...
void | XHdcp22Tx_ComputeV (const u8 *Rn, const u8 *Rrx, const u8 *RxInfo, const u8 *Rtx, const u8 *RecvIDList, const u8 RecvIDCount, const u8 *SeqNum_V, const u8 *Km, u8 *V)
| This function computes V. More...
void | XHdcp22Tx_ComputeM (const u8 *Rn, const u8 *Rrx, const u8 *Rtx, const u8 *StreamIDType, const u8 *k, const u8 *SeqNum_M, const u8 *Km, u8 *M)
| This function computes M. More...
void | XHdcp22Tx_ComputeEdkeyKs (const u8 *Rn, const u8 *Km, const u8 *Ks, const u8 *Rrx, const u8 *Rtx, u8 *EdkeyKs)
| This function computes EdkeyKs. More...
int | XHdcp22Tx_EncryptKm (const XHdcp22_Tx_CertRx *CertificatePtr, const u8 *KmPtr, u8 *MaskingSeedPtr, u8 *EncryptedKmPtr)
| This function encrypts the Km value with the receivers public key into Ekh(Km) More...
void | XHdcp22Tx_GenerateRandom (XHdcp22_Tx *InstancePtr, int NumOctets, u8 *RandomNumberPtr)
| This function generates random octets. More...