4.1. CA 数据类型

struct ca_slot_info

CA 插槽接口类型和信息。

定义:

struct ca_slot_info {
    int num;
    int type;
#define CA_CI            1;
#define CA_CI_LINK       2;
#define CA_CI_PHYS       4;
#define CA_DESCR         8;
#define CA_SC          128;
    unsigned int flags;
#define CA_CI_MODULE_PRESENT 1;
#define CA_CI_MODULE_READY   2;
};

成员

num

插槽号。

type

插槽类型。

flags

适用于插槽的标志。

描述

此结构体存储 CA 插槽信息。

type 可以是

  • CA_CI - CI 高级接口;

  • CA_CI_LINK - CI 链路层接口;

  • CA_CI_PHYS - CI 物理层接口;

  • CA_DESCR - 内置解扰器;

  • CA_SC - 简单智能卡接口。

flags 可以是

  • CA_CI_MODULE_PRESENT - 模块(或卡)已插入;

  • CA_CI_MODULE_READY - 模块已准备好使用。

struct ca_descr_info

解扰器类型和信息。

定义:

struct ca_descr_info {
    unsigned int num;
    unsigned int type;
#define CA_ECD           1;
#define CA_NDS           2;
#define CA_DSS           4;
};

成员

num

可用解扰器(密钥)的数量。

type

支持的加扰系统类型。

描述

标识解扰器的数量及其类型。

type 可以是

  • CA_ECD - 欧洲通用解扰器 (ECD) 硬件;

  • CA_NDS - Videoguard (NDS) 硬件;

  • CA_DSS - 分布式采样加扰 (DSS) 硬件。

struct ca_caps

CA 插槽接口功能。

定义:

struct ca_caps {
    unsigned int slot_num;
    unsigned int slot_type;
    unsigned int descr_num;
    unsigned int descr_type;
};

成员

slot_num

CA 卡和模块插槽的总数。

slot_type

所有支持的类型的位图,如 struct ca_slot_info 中定义(例如, CA_CICA_CI_LINK 等)。

descr_num

解扰器插槽(密钥)的总数

descr_type

所有支持的类型的位图,如 struct ca_descr_info 中定义(例如, CA_ECDCA_NDS 等)。

struct ca_msg

发送到/来自 CI-CAM 的消息

定义:

struct ca_msg {
    unsigned int index;
    unsigned int type;
    unsigned int length;
    unsigned char msg[256];
};

成员

index

未使用

type

未使用

length

消息的长度

msg

消息

描述

此结构体携带要发送到/接收自 CI CA 模块的消息。

struct ca_descr

CA 解扰器控制字信息

定义:

struct ca_descr {
    unsigned int index;
    unsigned int parity;
    unsigned char cw[8];
};

成员

index

CA 解扰器插槽

parity

控制字奇偶校验,其中 0 表示偶校验,1 表示奇校验

cw

CA 解扰器控制字