X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/libsecurity_apple_csp/lib/AppleCSPKeys.cpp diff --git a/libsecurity_apple_csp/lib/AppleCSPKeys.cpp b/libsecurity_apple_csp/lib/AppleCSPKeys.cpp deleted file mode 100644 index 957c72f1..00000000 --- a/libsecurity_apple_csp/lib/AppleCSPKeys.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2003 Apple Computer, Inc. All Rights Reserved. - * - * The contents of this file constitute Original Code as defined in and are - * subject to the Apple Public Source License Version 1.2 (the 'License'). - * You may not use this file except in compliance with the License. Please - * obtain a copy of the License at http://www.apple.com/publicsource and - * read it before using this file. - * - * This Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - */ -/* - * AppleCSPKeys.cpp - Key support - */ - -#include "AppleCSPKeys.h" -#include "AppleCSPUtils.h" -/* - * CSPKeyInfoProvider for symmetric keys. - */ -CSPKeyInfoProvider *SymmetricKeyInfoProvider::provider( - const CssmKey &cssmKey, - AppleCSPSession &session) -{ - if(cssmKey.blobType() != CSSM_KEYBLOB_RAW) { - errorLog0("KeyInfoProvider deals only with RAW keys!\n"); - CssmError::throwMe(CSSMERR_CSP_INTERNAL_ERROR); - } - if(cssmKey.keyClass() != CSSM_KEYCLASS_SESSION_KEY) { - /* that's all we need to know */ - return NULL; - } - return new SymmetricKeyInfoProvider(cssmKey, session); -} - -SymmetricKeyInfoProvider::SymmetricKeyInfoProvider( - const CssmKey &cssmKey, - AppleCSPSession &session) : - CSPKeyInfoProvider(cssmKey, session) -{ -} - -/* cook up a Binary key */ -void SymmetricKeyInfoProvider::CssmKeyToBinary( - CssmKey *paramKey, // ignored - CSSM_KEYATTR_FLAGS &attrFlags, // IN/OUT - BinaryKey **binKey) -{ - CASSERT(mKey.keyClass() == CSSM_KEYCLASS_SESSION_KEY); - SymmetricBinaryKey *symBinKey = new SymmetricBinaryKey( - mKey.KeyHeader.LogicalKeySizeInBits); - copyCssmData(mKey, - symBinKey->mKeyData, - symBinKey->mAllocator); - *binKey = symBinKey; -} - -/* obtain key size in bits */ -void SymmetricKeyInfoProvider::QueryKeySizeInBits( - CSSM_KEY_SIZE &keySize) -{ - /* FIXME - do we ever need to calculate RC2 effective size here? */ - keySize.LogicalKeySizeInBits = keySize.EffectiveKeySizeInBits = - (uint32)(mKey.length() * 8); -} - -/* - * Obtain blob suitable for hashing in CSSM_APPLECSP_KEYDIGEST - * passthrough. - */ -bool SymmetricKeyInfoProvider::getHashableBlob( - Allocator &allocator, - CssmData &blob) // blob to hash goes here -{ - /* - * This is trivial: the raw key is already in the "proper" format. - */ - assert(mKey.blobType() == CSSM_KEYBLOB_RAW); - const CssmData &keyBlob = CssmData::overlay(mKey.KeyData); - copyCssmData(keyBlob, blob, allocator); - return true; -} -