hdcp22_rx
Vitis Drivers API Documentation
xhdcp22_rx_i.h File Reference

Data Structures

struct  XHdcp22_Rx_KprivRx
 This typedef is the RSA private key quintuple definition. More...
 
struct  XHdcp22_Rx_KpubRx
 This typedef is the RSA public key definition. More...
 
struct  XHdcp22_Rx_CertRx
 This typedef is the DCP public certificate definition. More...
 
struct  XHdcp22_Rx_AKEInit
 This typedef is the AKE_Init message definition. More...
 
struct  XHdcp22_Rx_AKESendCert
 This typedef is the AKE_Send_Cert message definition. More...
 
struct  XHdcp22_Rx_AKENoStoredKm
 This typedef is the AKE_No_Stored_km message definition. More...
 
struct  XHdcp22_Rx_AKEStoredKm
 This typedef is the AKE_Stored_km message definition. More...
 
struct  XHdcp22_Rx_AKESendHPrime
 This typedef is the AKE_Send_H_prime message definition. More...
 
struct  XHdcp22_Rx_AKESendPairingInfo
 This typedef is the AKE_Send_Pairing_Info message definition. More...
 
struct  XHdcp22_Rx_LCInit
 This typedef is the LC_Init message definition. More...
 
struct  XHdcp22_Rx_LCSendLPrime
 This typdef is the LC_Send_L_prime message definition. More...
 
struct  XHdcp22_Rx_SKESendEks
 This typedef is the SKE_Send_Eks message definition. More...
 
struct  XHdcp22_Rx_RepeaterAuthSendRxIdList
 This typedef is the RepeaterAuth_Send_RceiverID_List message definition. More...
 
struct  XHdcp22_Rx_RepeaterAuthSendAck
 This typedef is the RepeaterAuth_Send_Ack message definition. More...
 
struct  XHdcp22_Rx_RepeaterAuthStreamManage
 This typedef is the RepeaterAuth_Stream_Manage message definition. More...
 
struct  XHdcp22_Rx_RepeaterAuthStreamReady
 This typedef is the RepeaterAuth_Stream_Ready message definition. More...
 
union  XHdcp22_Rx_Message
 This typedef is the union of all the message types. More...
 

Enumerations

enum  XHdcp22_Rx_MessageIds {
  XHDCP22_RX_MSG_ID_AKEINIT = 2, XHDCP22_RX_MSG_ID_AKESENDCERT = 3, XHDCP22_RX_MSG_ID_AKENOSTOREDKM = 4, XHDCP22_RX_MSG_ID_AKESTOREDKM = 5,
  XHDCP22_RX_MSG_ID_AKESENDHPRIME = 7, XHDCP22_RX_MSG_ID_AKESENDPAIRINGINFO = 8, XHDCP22_RX_MSG_ID_LCINIT = 9, XHDCP22_RX_MSG_ID_LCSENDLPRIME = 10,
  XHDCP22_RX_MSG_ID_SKESENDEKS = 11, XHDCP22_RX_MSG_ID_REPEATERAUTHSENDRXIDLIST = 12, XHDCP22_RX_MSG_ID_REPEATERAUTHSENDACK = 15, XHDCP22_RX_MSG_ID_REPEATERAUTHSTREAMMANAGE = 16,
  XHDCP22_RX_MSG_ID_REPEATERAUTHSTREAMREADY = 17
}
 These constants are the message identification codes. More...
 
enum  XHdcp22_Rx_ErrorFlag {
  XHDCP22_RX_ERROR_FLAG_NONE = 0, XHDCP22_RX_ERROR_FLAG_MESSAGE_SIZE = 1, XHDCP22_RX_ERROR_FLAG_FORCE_RESET = 2, XHDCP22_RX_ERROR_FLAG_PROCESSING_AKEINIT = 4,
  XHDCP22_RX_ERROR_FLAG_PROCESSING_AKENOSTOREDKM = 8, XHDCP22_RX_ERROR_FLAG_PROCESSING_AKESTOREDKM = 16, XHDCP22_RX_ERROR_FLAG_PROCESSING_LCINIT = 32, XHDCP22_RX_ERROR_FLAG_PROCESSING_SKESENDEKS = 64,
  XHDCP22_RX_ERROR_FLAG_PROCESSING_REPEATERAUTHSENDACK = 128, XHDCP22_RX_ERROR_FLAG_PROCESSING_REPEATERAUTHSTREAMMANAGE = 256, XHDCP22_RX_ERROR_FLAG_LINK_INTEGRITY = 512, XHDCP22_RX_ERROR_FLAG_DDC_BURST = 1024,
  XHDCP22_RX_ERROR_FLAG_MAX_LCINIT_ATTEMPTS = 2048, XHDCP22_RX_ERROR_FLAG_MAX_REPEATER_TOPOLOGY = 4096, XHDCP22_RX_ERROR_FLAG_EMPTY_REPEATER_TOPOLOGY = 8192
}
 These constants define the error conditions encountered during authentication and key exchange. More...
 
enum  XHdcp22_Rx_DdcFlag { XHDCP22_RX_DDC_FLAG_NONE = 0, XHDCP22_RX_DDC_FLAG_WRITE_MESSAGE_READY = 1, XHDCP22_RX_DDC_FLAG_READ_MESSAGE_READY = 2 }
 These constants defines the DDC flags used to determine when messages are available in the write message buffer or when a message has been read out of the read message buffer. More...
 
enum  XHdcp22_Rx_LogData {
  XHDCP22_RX_LOG_INFO_RESET, XHDCP22_RX_LOG_INFO_ENABLE, XHDCP22_RX_LOG_INFO_DISABLE, XHDCP22_RX_LOG_INFO_REQAUTH_REQ,
  XHDCP22_RX_LOG_INFO_ENCRYPTION_ENABLE, XHDCP22_RX_LOG_INFO_TOPOLOGY_UPDATE, XHDCP22_RX_LOG_DEBUG_WRITE_MESSAGE_AVAILABLE, XHDCP22_RX_LOG_DEBUG_READ_MESSAGE_COMPLETE,
  XHDCP22_RX_LOG_DEBUG_COMPUTE_RSA, XHDCP22_RX_LOG_DEBUG_COMPUTE_RSA_DONE, XHDCP22_RX_LOG_DEBUG_COMPUTE_KM, XHDCP22_RX_LOG_DEBUG_COMPUTE_KM_DONE,
  XHDCP22_RX_LOG_DEBUG_COMPUTE_HPRIME, XHDCP22_RX_LOG_DEBUG_COMPUTE_HPRIME_DONE, XHDCP22_RX_LOG_DEBUG_COMPUTE_EKH, XHDCP22_RX_LOG_DEBUG_COMPUTE_EKH_DONE,
  XHDCP22_RX_LOG_DEBUG_COMPUTE_LPRIME, XHDCP22_RX_LOG_DEBUG_COMPUTE_LPRIME_DONE, XHDCP22_RX_LOG_DEBUG_COMPUTE_KS, XHDCP22_RX_LOG_DEBUG_COMPUTE_KS_DONE,
  XHDCP22_RX_LOG_DEBUG_COMPUTE_VPRIME, XHDCP22_RX_LOG_DEBUG_COMPUTE_VPRIME_DONE, XHDCP22_RX_LOG_DEBUG_COMPUTE_MPRIME, XHDCP22_RX_LOG_DEBUG_COMPUTE_MPRIME_DONE,
  XHDCP22_RX_LOG_DEBUG_TIMER_START, XHDCP22_RX_LOG_DEBUG_TIMER_EXPIRED
}
 These constants are the detailed logging events. More...
 
enum  XHdcp22_Rx_TestFlags {
  XHDCP22_RX_TEST_FLAG_NONE, XHDCP22_RX_TEST_FLAG_NOSTOREDKM_WITH_RECEIVER, XHDCP22_RX_TEST_FLAG_STOREDKM_WITH_RECEIVER, XHDCP22_RX_TEST_FLAG_NOSTOREDKM_WITH_REPEATER,
  XHDCP22_RX_TEST_FLAG_STOREDKM_WITH_REPEATER, XHDCP22_RX_TEST_FLAG_REPEATER_MISORDERED_SEQUENCE_1, XHDCP22_RX_TEST_FLAG_REPEATER_MISORDERED_SEQUENCE_2, XHDCP22_RX_TEST_FLAG_REPEATER_MISORDERED_SEQUENCE_3,
  XHDCP22_RX_TEST_FLAG_REPEATER_TOPOLOGY_CHANGE, XHDCP22_RX_TEST_FLAG_REPEATER_TOPOLOGY_TIMEOUT, XHDCP22_RX_TEST_FLAG_INVALID
}
 These constants are used for setting up the desired unit test for standalong testing. More...
 
enum  XHdcp22_Rx_TestMode { XHDCP22_RX_TESTMODE_DISABLED, XHDCP22_RX_TESTMODE_NO_TX, XHDCP22_RX_TESTMODE_SW_TX, XHDCP22_RX_TESTMODE_INVALID }
 These constants are used to set the cores test mode. More...
 
enum  XHdcp22_Rx_TestDdcAccess { XHDCP22_RX_TEST_DDC_ACCESS_WO, XHDCP22_RX_TEST_DDC_ACCESS_RO, XHDCP22_RX_TEST_DDC_ACCESS_RW }
 These constants define the test ddc access types for standalone self testing. More...
 
enum  XHdcp22_Rx_TestState
 These constants are the discrete event states for standalone self testing. More...
 

Functions

int XHdcp22Rx_CalcMontNPrime (u8 *NPrime, const u8 *N, int NDigits)
 This function is used to calculate the Montgomery NPrime. More...
 
void XHdcp22Rx_GenerateRandom (XHdcp22_Rx *InstancePtr, int NumOctets, u8 *RandomNumberPtr)
 This function generates random octets. More...
 
int XHdcp22Rx_RsaesOaepEncrypt (const XHdcp22_Rx_KpubRx *KpubRx, const u8 *Message, const u32 MessageLen, const u8 *MaskingSeed, u8 *EncryptedMessage)
 This function implements the RSAES-OAEP-Encrypt operation. More...
 
int XHdcp22Rx_RsaesOaepDecrypt (XHdcp22_Rx *InstancePtr, const XHdcp22_Rx_KprivRx *KprivRx, u8 *EncryptedMessage, u8 *Message, int *MessageLen)
 This function implements the RSAES-OAEP-Decrypt operation. More...
 
void XHdcp22Rx_ComputeHPrime (const u8 *Rrx, const u8 *RxCaps, const u8 *Rtx, const u8 *TxCaps, const u8 *Km, u8 *HPrime)
 This function computes HPrime used during HDCP 2.2 authentication and key exchange. More...
 
void XHdcp22Rx_ComputeEkh (const u8 *KprivRx, const u8 *Km, const u8 *M, u8 *Ekh)
 This function computes Ekh used during HDCP 2.2 authentication and key exchange for pairing with receiver. More...
 
void XHdcp22Rx_ComputeLPrime (const u8 *Rn, const u8 *Km, const u8 *Rrx, const u8 *Rtx, u8 *LPrime)
 This function computes LPrime used during HDCP 2.2 locality check. More...
 
void XHdcp22Rx_ComputeKs (const u8 *Rrx, const u8 *Rtx, const u8 *Km, const u8 *Rn, const u8 *Eks, u8 *Ks)
 This function computes the Ks used during HDCP 2.2 session key exchange. More...
 
void XHdcp22Rx_ComputeVPrime (const u8 *ReceiverIdList, u32 ReceiverIdListSize, const u8 *RxInfo, const u8 *SeqNumV, const u8 *Km, const u8 *Rrx, const u8 *Rtx, u8 *VPrime)
 This function computes VPrime used during HDCP 2.2 repeater authentication. More...
 
void XHdcp22Rx_ComputeMPrime (const u8 *StreamIdType, const u8 *SeqNumM, const u8 *Km, const u8 *Rrx, const u8 *Rtx, u8 *MPrime)
 This function computes VPrime used during HDCP 2.2 repeater authentication. More...