发明内容
鉴于以上的一个或多个问题,本发明提供了一种数据解扰方法和系统。
根据本发明的数据解扰方法包括以下步骤:S202,在解扰装置上设置解扰插件;S204,解扰插件调用解扰装置,对解扰装置的输入数据进行分层解扰处理。
其中,步骤S204包括以下步骤:S2042-1,解扰插件检测输入数据的加密协议标准与解扰装置支持的加密类型是否相符;S2044-1,在相符的情况下,解扰插件调用解扰装置对输入数据进行解扰处理。
可选地,步骤S204包括以下步骤:S2042-2,解扰插件检测输入数据的加密协议标准与解扰装置支持的加密类型是否相符;S2044-2,在不相符的情况下,解扰插件检测输入数据的制式是否为解扰装置可识别的;以及S2046-2,在解扰装置可识别的情况下,解扰插件调用解扰装置对输入数据进行解扰处理。
可选地,步骤S204包括以下步骤:S2042-3,解扰插件检测输入数据的加密协议标准与解扰装置支持的加密类型是否相符;S2044-3,在不相符的情况下,解扰插件检测输入数据的制式是否为解扰装置可识别的;S2046-3,在解扰装置不可识别的情况下,解扰插件按照输入数据的加密协议标准,从输入数据中提取加密数据单元和解密参数;以及S2048-3,解扰插件调用解扰装置,利用解密参数对加密数据单元进行解扰处理。
其中,加密协议标准包括以下标准中的至少一种:ISMACrpt、SRTP、以及IPsec。
根据本发明的数据解扰系统包括:解扰装置,用于对输入数据进行解扰处理;解扰接口,用于检测输入数据,并根据检测结果分层调用解扰装置对输入数据进行解扰处理。
其中,解扰接口包括:类型检测单元,用于检测输入数据的加密协议标准与解扰装置支持的加密类型是否相符;制式检测单元,用于检测输入数据的制式是否为解扰装置可识别的制式;信息提取单元,用于按照输入数据的加密协议标准,从输入数据中提取加密数据单元和解密参数;以及装置调用单元,用于调用解扰装置对输入数据进行解扰处理。
其中,在类型检测单元检测出输入数据的加密协议标准与解扰装置支持的加密类型相符的情况下,装置调用单元调用解扰装置对输入数据进行解扰处理。在类型检测单元检测出输入数据的加密协议标准与解扰装置支持的加密类型不相符的情况下,制式检测单元检测输入数据的制式是否为解扰装置可识别的制式。
其中,在制式检测单元检测出输入数据的制式为解扰装置可识别的制式的情况下,装置调用单元调用解扰装置对输入数据进行解扰处理。在制式检测单元检测出输入数据的制式为解扰装置不可识别的制式的情况下,信息提取单元按照输入数据的加密协议标准,从输入数据中提取加密数据单元和解密参数,装置调用单元调用解扰装置利用解密参数对加密数据单元进行解扰处理。
其中,加密协议标准包括以下标准中的至少一种:ISMACrpt、SRTP、以及IPsec。
通过本发明,可以经过一次集成,兼容多家方案,从而有效地解除了广播电视网络CA方案的多样性给设备商带来的困扰。并且可以有效地扩展平台播放器的功能,使其支持TV播放。
具体实施方式
下面参考附图,详细说明本发明的具体实施方式。
参考图2A至图2D,说明根据本发明实施例的数据解扰方法。如图2A所示,该数据解扰方法包括以下步骤:S202,在解扰装置上设置解扰插件;S204,解扰插件调用解扰装置,对解扰装置的输入数据进行分层解扰处理。
其中,如图2B所示,步骤S204可以包括以下步骤:S2042-1,解扰插件检测输入数据的加密协议标准与解扰装置支持的加密类型是否相符;S2044-1,在相符的情况下,解扰插件调用解扰装置对输入数据进行解扰处理。
可选地,如图2C所示,步骤S204可以包括以下步骤:S2042-2,解扰插件检测输入数据的加密协议标准与解扰装置支持的加密类型是否相符;S2044-2,在不相符的情况下,解扰插件检测输入数据的制式是否为解扰装置可识别的;以及S2046-2,在解扰装置可识别的情况下,解扰插件调用解扰装置对输入数据进行解扰处理。
可选地,如图2D所示,步骤S204可以包括以下步骤:S2042-3,解扰插件检测输入数据的加密协议标准与解扰装置支持的加密类型是否相符;S2044-3,在不相符的情况下,解扰插件检测输入数据的制式是否为解扰装置可识别的;S2046-3,在解扰装置不可识别的情况下,解扰插件按照输入数据的加密协议标准,从输入数据中提取加密数据单元和解密参数;以及S2048-3,解扰插件调用解扰装置,利用解密参数对加密数据单元进行解扰处理。
其中,加密协议标准包括以下标准中的至少一种:ISMACrpt、SRTP、以及IPsec。
参考图3,说明根据本发明实施例的数据解扰系统。如图3所示,该数据解扰系统包括:解扰装置302,用于对输入数据进行解扰处理;解扰接口304,用于检测输入数据,并根据检测结果分层调用解扰装置对输入数据进行解扰处理。其中,当将如图3所示的数据解扰系统与本地播放器结合在一起时,解扰装置302、解扰接口304、与本地播放器的连接关系如图4所示。
其中,解扰接口304包括:类型检测单元3042,用于检测输入数据的加密协议标准与解扰装置支持的加密类型是否相符;制式检测单元3044,用于检测输入数据的制式是否为解扰装置可识别的制式;信息提取单元3046,用于按照输入数据的加密协议标准,从输入数据中提取加密数据单元和解密参数;以及装置调用单元3048,用于调用解扰装置对输入数据进行解扰处理。
其中,在类型检测单元检测出输入数据的加密协议标准与解扰装置支持的加密类型相符的情况下,装置调用单元调用解扰装置对输入数据进行解扰处理。在类型检测单元检测出输入数据的加密协议标准与解扰装置支持的加密类型不相符的情况下,制式检测单元检测输入数据的制式是否为解扰装置可识别的制式。
其中,在制式检测单元检测出输入数据的制式为解扰装置可识别的制式的情况下,装置调用单元调用解扰装置对输入数据进行解扰处理。在制式检测单元检测出输入数据的制式为解扰装置不可识别的制式的情况下,信息提取单元按照输入数据的加密协议标准,从输入数据中提取加密数据单元和解密参数,装置调用单元调用解扰装置利用解密参数对加密数据单元进行解扰处理。
其中,加密协议标准包括以下标准中的至少一种:ISMACrpt、SRTP、以及IPsec。
其中,根据本发明实施例的解扰接口通过解析会话描述协议(Session Description protocol,简称SDP)来识别加密流和加密协议标准并记录。并且,根据本发明实施例的解扰接口在多媒体会话建议时创建并启动,且在启动后对解扰装置进行初始化,对本地媒体进行缓冲,并通过实时传输协议(Realtime Transport Protocol,简称RTP)解析器回调接口。多媒体会话结束时中止根据本发明实施例的解扰接口并删除该接口使用的资源。例如,可以通过以下程序来完成解扰接口的创建、启动等:
IxDescrErr CreateDescramblerContext(const StreamIDType&,
uint8,
IxDescrHandleType&)
参考图5,说明根据本发明实施例的数据解扰系统的解扰接口进行的分层解扰处理过程。如图5所示,根据本发明实施例的解扰接口进行的分层解扰处理过程包括以下步骤:
S502,检测输入加密流的加密协议标准是否与解扰装置的加密类型相符。在本实施例中,假设解密装置的加密类型为IPsec和SRTPMode。其中,通过以下程序来配置解扰装置支持的加密类型及解扰装置本身的数据接口等:
typedef enum FrameworkType_ag
{ DESC_SMACRYP_OSF_MODE=0,
DESC_SRTP_MODE,
... //可扩展
DESC_MODE_MAX
}FrameworkType;
typedef enum DescInterfaceType_tag
{ RTP_PACKET_TYPE=0,
AU_PAYLOAD_TYPE,
SRTP_PACKET_TYPE,
...//可扩展
}DescInterfaceYupe;
S504,在加密流的加密协议标准与解扰装置的加密类型相符的情况下,在多媒体会话数据输入层做数据截取,提取RTP包做第一层解扰处理。
S506,在加密流的加密协议标准与解扰装置的加密类型不符的情况下,检测解扰装置是否接受RTP_PACKET_TYPE制式的数据输入。
S508,在解扰装置接受RTP_PACKET_TYPE制式的数据输入的情况下,通过以下程序在解扰插件的解扰接口中调用解扰装置解扰。
IxDescrErr DecryptData(const StreamIDType&,
byte*,
const uint16,
const DescrAuxDataType&,
byte*plainText=NULL,
uint16*plainTextLen=NULL);
S510,在解扰装置接受其他制式的数据输入的情况下,缓存输入包到本地缓存。按照当前的加密协议标准(例如,ISMACrpt1.1、SRTP、IPsec等)分离提取每包中的加密数据单元和解密所需的参数配置(具体的解扰装置输入配置不同)。该过程包括两个步骤:第一是定义合理的数据结构复用各标准;第二是实现与另外几种制式的CA解扰装置的解扰数据(DecryptData)接口。
S512,检测解扰装置是否支持AU_PAYLOAD_TYPE输入。
S514,在支持的情况下,调用外接解扰装置完成第二层解扰。否则,实现解扰装置与密钥解密代理(KMS Device Agent,简称KDA)的装载密钥(Load key)接口,从KDA处装载公共密钥(publickey)和会话密钥(session key)。并启动解扰线程完成第三层处理。该过程通过以下程序实现:
IxDescrErr LoadKey(const StreamIDType&,const byte,constKeyEntryType&);
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。