google / pkcs11test

PKCS#11 Test Suite
Apache License 2.0
75 stars 51 forks source link

Use C_Encrypt Instead of C_EncryptUpdate (#38) #40

Closed ondergormez closed 3 years ago

ondergormez commented 3 years ago

According to the latest PKCS#11 Standard;

After calling C_EncryptInit, the application can either call C_Encrypt to encrypt data in a single part; or call C_EncryptUpdate zero or more times, followed by C_EncryptFinal, to encrypt data in multiple parts. The encryption operation is active until the application uses a call to C_Encrypt or C_EncryptFinal to actually obtain the final piece of ciphertext.

In the implementation on SoftHSMv2 C_EncryptUpdate call doesn't finish the encryption operation. So C_EncryptFinal must be called for a further cryptographic operation.

Instead of this, the C_Encrypt method can be used in the DecryptUpdateErrors test case. And this solves the problem.