/****************************************************************************** ** ** $Id: p11_verify.c,v 1.2 2003/02/13 20:06:39 ghoo Exp $ ** ** Package: PKCS-11 ** Author : Chris Osgood ** License: Copyright (C) 2002 Schlumberger Network Solutions ** ** Purpose: Verifying signatures and MACs ** ******************************************************************************/ #include "cryptoki.h" /* C_VerifyInit initializes a verification operation, where the * signature is an appendix to the data, and plaintext cannot * cannot be recovered from the signature (e.g. DSA). */ CK_DEFINE_FUNCTION(CK_RV, C_VerifyInit) ( CK_SESSION_HANDLE hSession, /* the session's handle */ CK_MECHANISM_PTR pMechanism, /* the verification mechanism */ CK_OBJECT_HANDLE hKey /* verification key */ ) { CK_RV rv = CKR_OK; P11_LOG_START("C_VerifyInit"); thread_MutexLock(st.async_lock); rv = CKR_FUNCTION_NOT_SUPPORTED; log_Log(LOG_MED, "Function not supported"); thread_MutexUnlock(st.async_lock); P11_LOG_END("C_VerifyInit"); return rv; } /* C_Verify verifies a signature in a single-part operation, * where the signature is an appendix to the data, and plaintext * cannot be recovered from the signature. */ CK_DEFINE_FUNCTION(CK_RV, C_Verify) ( CK_SESSION_HANDLE hSession, /* the session's handle */ CK_BYTE_PTR pData, /* signed data */ CK_ULONG ulDataLen, /* length of signed data */ CK_BYTE_PTR pSignature, /* signature */ CK_ULONG ulSignatureLen /* signature length*/ ) { CK_RV rv = CKR_OK; P11_LOG_START("C_Verify"); thread_MutexLock(st.async_lock); rv = CKR_FUNCTION_NOT_SUPPORTED; log_Log(LOG_MED, "Function not supported"); thread_MutexUnlock(st.async_lock); P11_LOG_END("C_Verify"); return rv; } /* C_VerifyUpdate continues a multiple-part verification * operation, where the signature is an appendix to the data, * and plaintext cannot be recovered from the signature. */ CK_DEFINE_FUNCTION(CK_RV, C_VerifyUpdate) ( CK_SESSION_HANDLE hSession, /* the session's handle */ CK_BYTE_PTR pPart, /* signed data */ CK_ULONG ulPartLen /* length of signed data */ ) { CK_RV rv = CKR_OK; P11_LOG_START("C_VerifyUpdate"); thread_MutexLock(st.async_lock); rv = CKR_FUNCTION_NOT_SUPPORTED; log_Log(LOG_MED, "Function not supported"); thread_MutexUnlock(st.async_lock); P11_LOG_END("C_VerifyUpdate"); return rv; } /* C_VerifyFinal finishes a multiple-part verification * operation, checking the signature. */ CK_DEFINE_FUNCTION(CK_RV, C_VerifyFinal) ( CK_SESSION_HANDLE hSession, /* the session's handle */ CK_BYTE_PTR pSignature, /* signature to verify */ CK_ULONG ulSignatureLen /* signature length */ ) { CK_RV rv = CKR_OK; P11_LOG_START("C_VerifyFinal"); thread_MutexLock(st.async_lock); rv = CKR_FUNCTION_NOT_SUPPORTED; log_Log(LOG_MED, "Function not supported"); thread_MutexUnlock(st.async_lock); P11_LOG_END("C_VerifyFinal"); return rv; } /* C_VerifyRecoverInit initializes a signature verification * operation, where the data is recovered from the signature. */ CK_DEFINE_FUNCTION(CK_RV, C_VerifyRecoverInit) ( CK_SESSION_HANDLE hSession, /* the session's handle */ CK_MECHANISM_PTR pMechanism, /* the verification mechanism */ CK_OBJECT_HANDLE hKey /* verification key */ ) { CK_RV rv = CKR_OK; P11_LOG_START("C_VerifyRecoverInit"); thread_MutexLock(st.async_lock); rv = CKR_FUNCTION_NOT_SUPPORTED; log_Log(LOG_MED, "Function not supported"); thread_MutexUnlock(st.async_lock); P11_LOG_END("C_VerifyRecoverInit"); return rv; } /* C_VerifyRecover verifies a signature in a single-part * operation, where the data is recovered from the signature. */ CK_DEFINE_FUNCTION(CK_RV, C_VerifyRecover) ( CK_SESSION_HANDLE hSession, /* the session's handle */ CK_BYTE_PTR pSignature, /* signature to verify */ CK_ULONG ulSignatureLen, /* signature length */ CK_BYTE_PTR pData, /* gets signed data */ CK_ULONG_PTR pulDataLen /* gets signed data len */ ) { CK_RV rv = CKR_OK; P11_LOG_START("C_VerifyRecover"); thread_MutexLock(st.async_lock); rv = CKR_FUNCTION_NOT_SUPPORTED; log_Log(LOG_MED, "Function not supported"); thread_MutexUnlock(st.async_lock); P11_LOG_END("C_VerifyRecover"); return rv; }