hdcp(high -bandwidth digital content protection) ,用以保護數字內容。
hdcp在2.0以前的版本都主要是配合hdmi等需要有線連線的裝置的,隨著網路的發展,數字內容的保護需求明顯增加,為了新的應用的需要,hdcp2.0出現了,它只是需要tcp/ip連線即可,這樣hdcp就可以應用在更多的場合。
hdcp由
sansasecurity
授權,拿到庫和key檔案後匯入專案即可,因為是批量授權,key可以通用。
android 4.2 在wifi display下新增了hdcp的介面,開發者若需要支援hdcp,則需要按照介面生成名為libstagefright_hdcp.的系統動態庫。然後wifidisplay 會透過mediaplayerservice提供的介面來訪問。
其中初始化,包括ake,lc,ske的部分呼叫介面initasync ,然後是資料的加解密介面,及結束hdcp的介面。
hdcp裝置間的連線的建立, 需要通過複雜的驗證過程,其流程大致如圖:
1、建立tcp的套接字,等待source端來connect。埠號在wifidisplay的m3階段透過字串 "wfd_content_protection: hdcp2.0 port=35000\r\n"告訴了source端。 當兩端的tcp連線成功建立後,等待source端的驗證動作。
2、hdcp裝置相互驗證分為三步進行,ake(authentication and key exchange)是驗證的第一步。它主要的操作就是source端來驗證hdcp receiver的public key certificate(包括receiver id 和rsa public key)。它們之間會交換km。
3、lc(locality check ),當在ake階段,sink端計算出的h『和source端計算的h相等時,source端會繼續下部驗證,即lc,否則會終止tcp連線。lc通過乙個訊息對的時間來確定是不是兩個相對較近的裝置在連線,如果乙個訊息對的時間超過了7ms,則表示locality check 失敗。
4、ske(session key exchange),在成功完成了前幾步之後,source端和sink端就可以開始session key(ks)的交換。
加解密使用aes演算法。
android HDCP移植開發小結
hdcp high bandwidth digital content protection 用以保護數字內容。hdcp在2.0以前的版本都主要是配合hdmi等需要有線連線的裝置的,隨著網路的發展,數字內容的保護需求明顯增加,為了新的應用的需要,hdcp2.0出現了,它只是需要tcp ip連線即可,...
Zookeeper開發小結
一.例項化zookeeper與自動重連 樣例 public class zkclient sessiontimeout integer.parseint config.getproperty zk.sessiontimeout 1 connectzk core method,啟動zk服務 本例項基於...
開發步驟小結
1.建立svn專案,以前是先建專案再匯入,發現這樣並不好 2.建立工作區專案,此處可以借助 生成工具 3.建立domain model,先不要寫完整的model 需要的是class name資訊 4.建立inte ce,如service inte ce,dao inte ce,此處也可借助 生成工具...