- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
同事们,
我正在实现对 ATA 可信命令的支持
0x5C, TRUSTED RECEIVE,
0x5D, TRUSTED RECEIVE DMA,
0x5E, TRUSTED SEND
0x5F, TRUSTED SEND DMA,
用于 Linux(两台主机,Fedora 12 和 14)以支持自加密驱动器。我从这个页面 http://www.jukie.net/bart/blog/ata-via-scsi 获取了代码作为基本代码。对于可信接收(在这一层上它与 IDENTIFY 相同,0xEC):
sg_io.interface_id = 'S';
sg_io.cmdp = cdb;
sg_io.cmd_len = sizeof(cdb);
sg_io.dxferp = data_in_buffer;
sg_io.dxfer_len = data_in_length; // multiple of 512
sg_io.dxfer_direction = SG_DXFER_FROM_DEV;
sg_io.sbp = sense;
sg_io.mx_sb_len = sizeof(sense);
sg_io.timeout = 5000; // 5 seconds
cdb[0] = 0x85; // pass-through ATA16 command (no translation)
cdb[1] = (4 << 1); // data-in
cdb[2] = 0x2e; // data-in
cdb[4] = feature_id; // ATA feature ID
cdb[6] = 1; // number of sectors
cdb[7] = lba_low >> 8;
cdb[8] = lba_low;
cdb[9] = lba_mid >> 8;
cdb[10] = lba_mid;
cdb[11] = lba_high >> 8;
cdb[12] = lba_high;
cdb[14] = 0x5C; // TRUSTED RECEIVE
rc = ioctl (fd, SG_IO, &sg_io);
它非常适合识别和所有其他命令,但不适用于受信任的命令。当我连接协议(protocol)分析器时,我看到这些命令没有发送到 SATA 总线。适配器能够发送它们,因为它们在 Windows 下正常运行(不是我的代码,但我认为使用 ATA_PASS_THROUGH)。是的,我正在以 root 身份运行这段代码。
请帮助解开这个谜:)
最佳答案
参见 /usr/src/linux/drivers/ata/libata-scsi.c :
/*
* Filter TPM commands by default. These provide an
* essentially uncontrolled encrypted "back door" between
* applications and the disk. Set libata.allow_tpm=1 if you
* have a real reason for wanting to use them. This ensures
* that installed software cannot easily mess stuff up without
* user intent. DVR type users will probably ship with this enabled
* for movie content management.
*
* Note that for ATA8 we can issue a DCS change and DCS freeze lock
* for this and should do in future but that it is not sufficient as
* DCS is an optional feature set. Thus we also do the software filter
* so that we comply with the TC consortium stated goal that the user
* can turn off TC features of their system.
*/
if (tf->command >= 0x5C && tf->command <= 0x5F && !libata_allow_tpm)
goto invalid_fld;
关于linux - Linux 中的 ATA 可信命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4703957/
我正在尝试增强确定用户是否为给定AD组成员的代码。它实际上是有效的,除非组的成员恰好来自另一个(受信任)域,因为它存储为外部安全性本金。 鉴于我对要测试的组和要检查的帐户都有一个有效的Director
更新 我有posted a script我正在使用这个到StackExchange代码审查站点。 我最初的问题是,有没有一种方法可以用X.509证书和时间戳签署Git提交?.有一段时间,我以为我只能得
我想使用 Jasmine 来确保 AngularJS 正确信任 html 数据值。 代码 下面的代码通过外部 API 获取 article 并使用 Angular 的 $sce 来信任 article
在服务器上完全卸载 python 并重新安装 python 和 python-dev 后,Python 出现故障。最明显的错误是我无法从标准库中导入一些模块。例如,我无法导入 datetime 和 e
我正在 ubuntu 14.04 中安装 cloudera 5.4。当安装向导启动并到达 java 安装部分(安装向导的第 2 部分)时,它会卡住并且窗口变为灰色。我等了很长时间但没有任何反应,所以我
我是一名优秀的程序员,十分优秀!