Mercurial > trustbridge > nss-cmake-static
view nss/lib/ckfw/crypto.c @ 4:b513267f632f tip
Build DBM module
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Tue, 05 Aug 2014 18:58:03 +0200 |
parents | 1e5118fa0cb1 |
children |
line wrap: on
line source
/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ /* * crypto.c * * This file implements the NSSCKFWCryptoOperation type and methods. */ #ifndef CK_T #include "ck.h" #endif /* CK_T */ /* * NSSCKFWCryptoOperation * * -- create/destroy -- * nssCKFWCrytoOperation_Create * nssCKFWCryptoOperation_Destroy * * -- implement public accessors -- * nssCKFWCryptoOperation_GetMDCryptoOperation * nssCKFWCryptoOperation_GetType * * -- private accessors -- * * -- module fronts -- * nssCKFWCryptoOperation_GetFinalLength * nssCKFWCryptoOperation_GetOperationLength * nssCKFWCryptoOperation_Final * nssCKFWCryptoOperation_Update * nssCKFWCryptoOperation_DigestUpdate * nssCKFWCryptoOperation_UpdateFinal */ struct NSSCKFWCryptoOperationStr { /* NSSArena *arena; */ NSSCKMDCryptoOperation *mdOperation; NSSCKMDSession *mdSession; NSSCKFWSession *fwSession; NSSCKMDToken *mdToken; NSSCKFWToken *fwToken; NSSCKMDInstance *mdInstance; NSSCKFWInstance *fwInstance; NSSCKFWCryptoOperationType type; }; /* * nssCKFWCrytoOperation_Create */ NSS_EXTERN NSSCKFWCryptoOperation * nssCKFWCryptoOperation_Create( NSSCKMDCryptoOperation *mdOperation, NSSCKMDSession *mdSession, NSSCKFWSession *fwSession, NSSCKMDToken *mdToken, NSSCKFWToken *fwToken, NSSCKMDInstance *mdInstance, NSSCKFWInstance *fwInstance, NSSCKFWCryptoOperationType type, CK_RV *pError ) { NSSCKFWCryptoOperation *fwOperation; fwOperation = nss_ZNEW(NULL, NSSCKFWCryptoOperation); if (!fwOperation) { *pError = CKR_HOST_MEMORY; return (NSSCKFWCryptoOperation *)NULL; } fwOperation->mdOperation = mdOperation; fwOperation->mdSession = mdSession; fwOperation->fwSession = fwSession; fwOperation->mdToken = mdToken; fwOperation->fwToken = fwToken; fwOperation->mdInstance = mdInstance; fwOperation->fwInstance = fwInstance; fwOperation->type = type; return fwOperation; } /* * nssCKFWCryptoOperation_Destroy */ NSS_EXTERN void nssCKFWCryptoOperation_Destroy ( NSSCKFWCryptoOperation *fwOperation ) { if ((NSSCKMDCryptoOperation *) NULL != fwOperation->mdOperation) { if (fwOperation->mdOperation->Destroy) { fwOperation->mdOperation->Destroy( fwOperation->mdOperation, fwOperation, fwOperation->mdInstance, fwOperation->fwInstance); } } nss_ZFreeIf(fwOperation); } /* * nssCKFWCryptoOperation_GetMDCryptoOperation */ NSS_EXTERN NSSCKMDCryptoOperation * nssCKFWCryptoOperation_GetMDCryptoOperation ( NSSCKFWCryptoOperation *fwOperation ) { return fwOperation->mdOperation; } /* * nssCKFWCryptoOperation_GetType */ NSS_EXTERN NSSCKFWCryptoOperationType nssCKFWCryptoOperation_GetType ( NSSCKFWCryptoOperation *fwOperation ) { return fwOperation->type; } /* * nssCKFWCryptoOperation_GetFinalLength */ NSS_EXTERN CK_ULONG nssCKFWCryptoOperation_GetFinalLength ( NSSCKFWCryptoOperation *fwOperation, CK_RV *pError ) { if (!fwOperation->mdOperation->GetFinalLength) { *pError = CKR_FUNCTION_FAILED; return 0; } return fwOperation->mdOperation->GetFinalLength( fwOperation->mdOperation, fwOperation, fwOperation->mdSession, fwOperation->fwSession, fwOperation->mdToken, fwOperation->fwToken, fwOperation->mdInstance, fwOperation->fwInstance, pError); } /* * nssCKFWCryptoOperation_GetOperationLength */ NSS_EXTERN CK_ULONG nssCKFWCryptoOperation_GetOperationLength ( NSSCKFWCryptoOperation *fwOperation, NSSItem *inputBuffer, CK_RV *pError ) { if (!fwOperation->mdOperation->GetOperationLength) { *pError = CKR_FUNCTION_FAILED; return 0; } return fwOperation->mdOperation->GetOperationLength( fwOperation->mdOperation, fwOperation, fwOperation->mdSession, fwOperation->fwSession, fwOperation->mdToken, fwOperation->fwToken, fwOperation->mdInstance, fwOperation->fwInstance, inputBuffer, pError); } /* * nssCKFWCryptoOperation_Final */ NSS_EXTERN CK_RV nssCKFWCryptoOperation_Final ( NSSCKFWCryptoOperation *fwOperation, NSSItem *outputBuffer ) { if (!fwOperation->mdOperation->Final) { return CKR_FUNCTION_FAILED; } return fwOperation->mdOperation->Final( fwOperation->mdOperation, fwOperation, fwOperation->mdSession, fwOperation->fwSession, fwOperation->mdToken, fwOperation->fwToken, fwOperation->mdInstance, fwOperation->fwInstance, outputBuffer); } /* * nssCKFWCryptoOperation_Update */ NSS_EXTERN CK_RV nssCKFWCryptoOperation_Update ( NSSCKFWCryptoOperation *fwOperation, NSSItem *inputBuffer, NSSItem *outputBuffer ) { if (!fwOperation->mdOperation->Update) { return CKR_FUNCTION_FAILED; } return fwOperation->mdOperation->Update( fwOperation->mdOperation, fwOperation, fwOperation->mdSession, fwOperation->fwSession, fwOperation->mdToken, fwOperation->fwToken, fwOperation->mdInstance, fwOperation->fwInstance, inputBuffer, outputBuffer); } /* * nssCKFWCryptoOperation_DigestUpdate */ NSS_EXTERN CK_RV nssCKFWCryptoOperation_DigestUpdate ( NSSCKFWCryptoOperation *fwOperation, NSSItem *inputBuffer ) { if (!fwOperation->mdOperation->DigestUpdate) { return CKR_FUNCTION_FAILED; } return fwOperation->mdOperation->DigestUpdate( fwOperation->mdOperation, fwOperation, fwOperation->mdSession, fwOperation->fwSession, fwOperation->mdToken, fwOperation->fwToken, fwOperation->mdInstance, fwOperation->fwInstance, inputBuffer); } /* * nssCKFWCryptoOperation_DigestKey */ NSS_EXTERN CK_RV nssCKFWCryptoOperation_DigestKey ( NSSCKFWCryptoOperation *fwOperation, NSSCKFWObject *fwObject /* Key */ ) { NSSCKMDObject *mdObject; if (!fwOperation->mdOperation->DigestKey) { return CKR_FUNCTION_FAILED; } mdObject = nssCKFWObject_GetMDObject(fwObject); return fwOperation->mdOperation->DigestKey( fwOperation->mdOperation, fwOperation, fwOperation->mdToken, fwOperation->fwToken, fwOperation->mdInstance, fwOperation->fwInstance, mdObject, fwObject); } /* * nssCKFWCryptoOperation_UpdateFinal */ NSS_EXTERN CK_RV nssCKFWCryptoOperation_UpdateFinal ( NSSCKFWCryptoOperation *fwOperation, NSSItem *inputBuffer, NSSItem *outputBuffer ) { if (!fwOperation->mdOperation->UpdateFinal) { return CKR_FUNCTION_FAILED; } return fwOperation->mdOperation->UpdateFinal( fwOperation->mdOperation, fwOperation, fwOperation->mdSession, fwOperation->fwSession, fwOperation->mdToken, fwOperation->fwToken, fwOperation->mdInstance, fwOperation->fwInstance, inputBuffer, outputBuffer); } /* * nssCKFWCryptoOperation_UpdateCombo */ NSS_EXTERN CK_RV nssCKFWCryptoOperation_UpdateCombo ( NSSCKFWCryptoOperation *fwOperation, NSSCKFWCryptoOperation *fwPeerOperation, NSSItem *inputBuffer, NSSItem *outputBuffer ) { if (!fwOperation->mdOperation->UpdateCombo) { return CKR_FUNCTION_FAILED; } return fwOperation->mdOperation->UpdateCombo( fwOperation->mdOperation, fwOperation, fwPeerOperation->mdOperation, fwPeerOperation, fwOperation->mdSession, fwOperation->fwSession, fwOperation->mdToken, fwOperation->fwToken, fwOperation->mdInstance, fwOperation->fwInstance, inputBuffer, outputBuffer); }