Bugzilla Bug 349632: made C_Verify work for multi-part mechanisms.
r=glen.beasley,relyea. git-svn-id: svn://10.0.0.236/trunk@208487 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
c519f1951d
commit
7f16637e0a
@ -2333,13 +2333,22 @@ CK_RV NSC_Verify(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,
|
||||
{
|
||||
SFTKSession *session;
|
||||
SFTKSessionContext *context;
|
||||
CK_RV crv;
|
||||
CK_RV crv, crv2;
|
||||
SECStatus rv;
|
||||
|
||||
/* make sure we're legal */
|
||||
crv = sftk_GetContext(hSession,&context,SFTK_VERIFY,PR_FALSE,&session);
|
||||
if (crv != CKR_OK) return crv;
|
||||
|
||||
/* multi part Verifying are completely implemented by VerifyUpdate and
|
||||
* VerifyFinal */
|
||||
if (context->multi) {
|
||||
sftk_FreeSession(session);
|
||||
crv = NSC_VerifyUpdate(hSession, pData, ulDataLen);
|
||||
crv2 = NSC_VerifyFinal(hSession, pSignature, ulSignatureLen);
|
||||
return crv == CKR_OK ? crv2 :crv;
|
||||
}
|
||||
|
||||
rv = (*context->verify)(context->cipherInfo,pSignature, ulSignatureLen,
|
||||
pData, ulDataLen);
|
||||
sftk_FreeContext(context);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user