14.4 描述符概述主处理器维护一个当前发安全会话以及这些会话的对应密钥和上下文的记录。一旦主机决定请求一个安全操作,它就建立一个描述符,这个描述符包含SEC执行这个安全操作的所有信息。主机在主存中创建这个描述符,然后将指向这个描述符的指针写入SEC一个通道的取FIFO。该通道用这个指针将描述符读入它的描述符缓冲区。一旦获得这个描述符,SEC通过它的总线主控能力来获得输入,并输出结果,因此使主处理机摆脱了数据传送和加密操作的负担。为方便测试,使用SEC的主机控制模式,主机可以直接向SEC写入密钥、上下文和文本数据。这种方法避免了使用描述符。

14.4.1 描述符结构SEC描述符在概念上与大多数具有DMA能力的设备所使用的描述符相似。这些描述符固定长度为64个字节,也就是八个64位的字(称为双字)。一个描述符由一个首部双字和七个指针双字组成。首部双字指明了要执行的安全操作、所需要的执行单元和每一个执行单元的模式。所有的指针字都具有相同的格式,包含用来定位输入或输出数据包的指针和长度信息(比如密钥、上下文或文本数据)。描述符中提供的大量指针允许多个算法同时操作,这些操作需要取得多个密钥,提取和返回上下文。不需要的指针双字可以指定它的长度为0,通道略过对应的操作。SEC描述符包含分散/聚集能力,这意味着描述符中的每一个指针可以直接指向一个连续的数据包,也可以指向一个链表,这个链表包含一系列用来装配数据包的指针和长度。当使用一个链表读取输入数据时,称之为聚集操作;当链表用于写输出数据时,称之为分散操作。想进一步了解传送文件描述符的应用?可以参考这篇传送文件描述符-hds ams 2500用户手册