Verify Display HDCP Compliance (Force HDCP output, disable output if HDCP unavailable)
Asked Answered
H

1

8

I am working in C# Windows Forms, and would like to ensure that the content on my form is only output through an HDCP compliant stream using the system's hardware. This would require a multi-step process. A high level block-diagram description of the process would be:

  1. determine if the display supports HDCP
  2. determine if the graphics adapter supports HDCP
  3. finally enabling the HDCP encryption on the output

If any of these stages report failure, it is then a trivial matter to black out the form.

I have done a minor amount of research into this manner, but cannot seem to find any detailed examples, leads, or instructions for accomplishing this. I have so far looked into using DirectX and Windows OPM, but have found insufficient help. The Windows PlayReady license also seems to touch up on this issue, but appears to be for pre-encrypted content (and is also quite expensive). Perhaps there is an approach that I have not noticed or thought about?

If you need any other information, please let me know.

Thank you in advance.

Hendrickson answered 1/5, 2013 at 20:10 Comment(2)
HDCP is a proprietary technology, designed to make profit for Intel. Why would you expect it would be cheap to implement? They license it to content providers (== you), not the players. The protocol is also very hardware intensive when emulated, so you really want to go through DirectX and OPM. There is an open source implementation of a HDCP-compatible protocol, cs.sunysb.edu/~rob/hdcp.html, but it's pretty much useless for what you want, it's way too expensive for realtime video output, and it probably needs you to write a driver.Braided
... and you're pretty much only doing obfuscation, it would probably be very easy in practice to just go around your checks. You'd just need to change a few bytes in your executable and poof, protection gone. Or someone could intercept your input, etc. Or are you implementing your own video player, which needs to be HDCP compliant?Braided
L
1

HDCP is nice to have but very hard to implement. Even if you have such a product on the market which does exactly what you want, it won't be certified by HDCP becuase it is easy to hack it. Most of the time, HDCP related things, for example the ROM where you store the HDCP keys, are hardware protected and can never be read out when your product is on the market. Sometimes you even need to hide the hardware paths from one component to another one to protect sniffing out your HDCP de-crypted data, for example, from between the graphics card chip and the HDMI connector.

To answer your question, you can only detect if the display supports HDCP or not if you can somehow read the EDID of the display. I don't think that you can do it using existing tools in windows. I might be wrong though.

Lubricator answered 7/7, 2015 at 9:25 Comment(1)
Where exactly can i look at EDID to get the HDCP informationIde

© 2022 - 2024 — McMap. All rights reserved.