我想使用 PKCS#11 和 SafeNet HSM 设备加密大量明文。我将每个明文一一加密需要很长时间。
所以我想到了 PKCS#11 中是否有任何方法可以一次加密多个数据?
我在使用 PKCS #11 API 的 SafeNet C 编程手册中找到了以下用于加密多部分数据的示例。
/* read, encrypt, digest and write the cipher text in chunks
*/ totbw = 0;
for ( ;; ) {
br = fread(buffer, 1, sizeof(buffer), ifp);
if ( br == 0 )
break;
/* digest */
/* encrypt */
curLen = sizeof(encbuffer);
rv = C_EncryptUpdate(hrSession, buffer, (CK_SIZE)br, encbuffer, &curLen);
CHECK_RV(FN "C_EncryptUpdate", rv);
if (rv) return 1;
/* write cipher text */
br = fwrite(encbuffer, 1, (int)curLen, ofp);
totbw += br;
}
该手册中提到:
对于加密,我们使用C_EncryptUpdate,它继续进行多部分加密操作,处理另一个数据部分。
我想知道这种方法是否可用于一次加密多个明文,或者它将所有缓冲区元素视为相同输入数据的块?
我正在寻找一种可以加密多个明文但将它们视为单独项目(而不是大单个项目的块)的解决方案。