}
KeyImpl::KeyImpl(const CSP &csp, const CSSM_DATA &keyData) : ObjectImpl(csp),
-CssmKey(keyData.Length, csp->allocator().alloc<uint8>(keyData.Length))
+CssmKey((uint32)keyData.Length, csp->allocator().alloc<uint8>((UInt32)keyData.Length))
{
memcpy(KeyData.Data, keyData.Data, keyData.Length);
mActive=true;
}
KeyImpl::~KeyImpl()
+try
+{
+ deactivate();
+}
+catch (...)
{
- try
- {
- deactivate();
- }
- catch(...) {}
}
void
KeyImpl::deleteKey(const CSSM_ACCESS_CREDENTIALS *cred)
{
+ StLock<Mutex> _(mActivateMutex);
if (mActive)
{
mActive=false;
void KeyImpl::activate()
{
+ StLock<Mutex> _(mActivateMutex);
mActive=true;
}
void KeyImpl::deactivate()
{
+ StLock<Mutex> _(mActivateMutex);
if (mActive)
{
mActive=false;