- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当 API 返回可变长度的项目列表时,PKCS #11 v2.40 的作者使用了一种通用模式。在 API 中,例如 C_GetSlotList
和 C_GetMechanismList
,应用程序应该调用 API 两次。在第一次调用中,指向 CK_ULONG
的指针设置为将在下一次调用时返回的项目数。这允许应用程序分配足够的内存并再次调用 API 来检索结果。C_FindObjects
call 也返回可变数量的项目,但它使用不同的范例。参数CK_OBJECT_HANDLE_PTR phObject
设置为结果列表的头部。参数CK_ULONG_PTR pulObjectCount
设置为返回的项目数,确保小于CK_ULONG ulMaxObjectCount
.
该标准没有明确说明 phObject
必须是一个有效指针,指向足够大的内存块以容纳 ulMaxObjectCount
CK_OBJECT_HANDLE
s。
可以将标准解释为应用程序必须悲观地为 ulMaxObjectCount
分配足够的内存。对象。或者,可以将标准解释为 PKCS #11 实现将分配 pulObjectCount
CK_OBJECT_HANDLE
s 然后应用程序负责释放该内存。然而,这种后来的解释似乎值得怀疑,因为标准中的其他任何地方都没有 PKCS #11 的实现分配内存。
段落是:
C_FindObjects continues a search for token and session objects that
match a template, obtaining additional object handles. hSession is
the session’s handle; phObject points to the location that receives
the list (array) of additional object handles; ulMaxObjectCount is
the maximum number of object handles to be returned; pulObjectCount
points to the location that receives the actual number of object
handles returned.
If there are no more objects matching the template, then the location
that pulObjectCount points to receives the value 0.
The search MUST have been initialized with C_FindObjectsInit.
ulMaxObjectCount
到 1. 但是,它确实为该条目分配了内存。这似乎表明应用程序必须悲观地预先分配内存。
CK_SESSION_HANDLE hSession;
CK_OBJECT_HANDLE hObject;
CK_ULONG ulObjectCount;
CK_RV rv;
.
.
rv = C_FindObjectsInit(hSession, NULL_PTR, 0);
assert(rv == CKR_OK);
while (1) {
rv = C_FindObjects(hSession, &hObject, 1, &ulObjectCount);
if (rv != CKR_OK || ulObjectCount == 0)
break;
.
.
}
rv = C_FindObjectsFinal(hSession);
assert(rv == CKR_OK);
最佳答案
是的,看起来应用程序负责为 C_FindObjects()
返回的对象句柄分配空间。 .示例代码执行此操作,即使它一次只请求一个对象句柄,您也应该这样做。
您也可以重写示例代码以请求多个对象句柄,例如像这样:
#define MAX_OBJECT_COUNT 100 /* arbitrary value */
K_SESSION_HANDLE hSession;
CK_OBJECT_HANDLE hObjects[MAX_OBJECT_COUNT];
CK_ULONG ulObjectCount, i;
CK_RV rv;
rv = C_FindObjectsInit(hSession, NULL_PTR, 0);
assert(rv == CKR_OK);
while (1) {
rv = C_FindObjects(hSession, hObjects, MAX_OBJECT_COUNT, &ulObjectCount);
if (rv != CKR_OK || ulObjectCount == 0) break;
for (i = 0; i < ulObjectCount; i++) {
/* do something with hObjects[i] here */
}
}
rv = C_FindObjectsFinal(hSession);
assert(rv == CKR_OK);
C_FindObjects()
中请求多个对象句柄的能力call 旨在作为性能优化。
fread()
这样的 C 标准库函数的数量。也可以工作。使用
fgetc()
一次从文件中读取一个字节的数据效率极低。 ,所以
fread()
函数允许您分配一个任意大的缓冲区并读取尽可能多的数据。
关于cryptography - PKCS #11 C_FindObjects 中的内存所有权,其中 ulMaxObjectCount != 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32617802/
我是一名新的 Windows 8 开发人员,我有一些代码是为 Linux 设计的,但只要安装了 GTK# 也可以在 Windows 上运行。 我目前正在将该应用程序作为现代 UI (Metro) 应用
我正在尝试通过本文之后的证书身份验证来获取 saml token How to pass a certificate to WSTrust to get Saml Token 当我像这样调用电话时出现
大多数签名证书足迹都是 20 字节长(Windows 证书管理器中的字段“足迹”)。 这怎么可能是颁发(认证)机构签署的值?具体来说,证书的签名应该是由私钥签名的证书字段的哈希值,因此至少具有颁发者私
有没有办法证明,我的意思是技术上和法律上证明,一段代码已经在计算机上的特定时间运行? 我认为这可以通过涉及校验和和可信时间戳等加密技术来实现,您怎么看? 最佳答案 技术上,问题是您是否为这项任务事先准
我用公钥加密数据,用私钥解密数据。 是否可以用一个公钥拥有多个私钥? 最佳答案 不,你不能,这是公私钥加密的本质。为什么你想要一个公钥有多个私钥?如果您想签署加密文件怎么办?如果这可能的话,我将能够将
数字签名取决于消息和 key 。假设接收方多次复制消息(我们唯一 ID 的原因),为什么签名会不同(因为消息和 key 相同)? 最佳答案 比特币使用 ECDSA,同一消息和 key 的签名不同的原因
PKC 有问题 考虑以下场景 当发送者需要向接收者发送消息时: sender 使用receiver's Public Key生成密文 receiver 使用receivers 私钥解密密文。 所以我的
如果您有以下形式的椭圆曲线: y^2 = x^3 + a*x + b (mod p) 有没有好的程序来计算这条曲线上的点数? 我已经阅读了 Schoof 和 Schoof-Elkies-Atkin
我需要创建一个一次性填充板来加密一些数据(大小为几KB)。我应该如何生成一次一次性填充,以避免与诸如rand()之类的基本随机数生成相关的所有伪随机问题? 我是否可以使用现有的,受信任的工具或库? 最
谁能提出一个工具包或框架(或一个想法),该工具包或框架(或构想)可用于在没有受信任的第三方服务器的情况下实现安全且防欺诈的在线扑克(德州扑克)客户端吗? 最佳答案 您要问的是所谓的mental pok
我经营一个网站,我们将某些帐户标记为骗子,并“标记”他们的帐户和所有使用的信用卡都是坏的。我们不存储实际的信用卡值,而是存储它的校验和/MD5 算法。 我们现在一直在碰撞。存储这些值的最佳方法是什么
散列函数中的多重碰撞与第一或第二原像之间有什么区别。 第一次原像攻击:给定一个散列 h,找到一条消息 m,使得 哈希(m) = h。 第二个原像攻击:给定一个固定的消息 m1,找到一个不同的消息 m2
当我听说破解加密算法的方法时,我注意到通常关注如何非常快速地解密以及如何减少搜索空间。但是,我总是想知道如何识别成功的解密,以及为什么这不会形成瓶颈。还是通常假设加密/解密对是已知的? 最佳答案 来自
我看到了一个通过以下步骤生成 AES key 的代码片段: 生成一个 16 字节的随机值数组。 SecureRandom random = new SecureRandom(); byte[] key
你好 我有一个长度为 n 的二进制字符串。我的目标是字符串中的所有位都等于“1”。 我可以翻转我想要的字符串的每一位,但在翻转字符串的位后,它会进行随机循环移位。(移位长度均匀分布在 0...n-1
当A发送数据到 B通过使用公钥加密的网络连接,A 如何达到认证、保密的目标 ? 最佳答案 在这种情况下,A 使用 B 的公钥,B 使用 A 的公钥。 secret 性:如果 A 使用 B 的公钥加密某
在挑战-响应机制(和其他系统)中,建议不要使用基于时间的随机数。 为什么应该避免? 最佳答案 (免责声明:我没有加密货币学位,我写的一切只是外行的意见。) 不鼓励使用基于时间的随机数,因为它们很可能偶
消息摘要用于验证消息是否是预期消息。 将散列摘要与内容捆绑在一起以形成消息会增加多少碰撞和原像攻击消息的难度? 例如编码: message = data . hash1(data) message_h
我想知道是否可以对大多数英特尔芯片中存在的 TPM ( http://en.wikipedia.org/wiki/Trusted_Platform_Module ) 进行编程,以便: - decide
在关于 Block Cipher Modes 的维基百科文章中他们有一个整洁的小图表 未加密的镜像、使用 ECB 模式加密的同一镜像以及使用其他方法加密的同一镜像的另一个版本。 在大学时,我开发了自己
我是一名优秀的程序员,十分优秀!