X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/libsecurity_apple_csp/lib/SignatureContext.cpp diff --git a/libsecurity_apple_csp/lib/SignatureContext.cpp b/libsecurity_apple_csp/lib/SignatureContext.cpp deleted file mode 100644 index f7085c7d..00000000 --- a/libsecurity_apple_csp/lib/SignatureContext.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2000-2001 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. - */ - - -/* - * SignatureContext.h - AppleCSPContext sublass for generic sign/verify - */ - -#include "SignatureContext.h" -#include "AppleCSPUtils.h" -#include "AppleCSPSession.h" -#include - -#include - -#define cspSigDebug(args...) secdebug("cspSig", ## args) - -SignatureContext::~SignatureContext() -{ - delete &mDigest; - delete &mSigner; - mInitFlag = false; -} - -/* both sign & verify */ -void SignatureContext::init( - const Context &context, - bool isSigning) -{ - mDigest.digestInit(); - mSigner.signerInit(context, isSigning); - mInitFlag = true; -} - -/* both sign & verify */ -void SignatureContext::update( - const CssmData &data) -{ - mDigest.digestUpdate(data.Data, data.Length); -} - -/* sign only */ -void SignatureContext::final( - CssmData &out) -{ - void *digest; - size_t digestLen; - void *sig = out.data(); - size_t sigLen = out.length(); - - /* first obtain the digest */ - digestLen = mDigest.digestSizeInBytes(); - digest = session().malloc(digestLen); - mDigest.digestFinal(digest); - - /* now sign */ - try { - mSigner.sign(digest, - digestLen, - sig, - &sigLen); - } - catch(...) { - session().free(digest); - throw; - } - session().free(digest); - if(out.length() < sigLen) { - cspSigDebug("SignatureContext: mallocd sig too small!"); - CssmError::throwMe(CSSMERR_CSP_INTERNAL_ERROR); - } - out.length(sigLen); -} - -/* verify only */ -void SignatureContext::final( - const CssmData &in) -{ - void *digest; - size_t digestLen; - - /* first obtain the digest */ - digestLen = mDigest.digestSizeInBytes(); - digest = session().malloc(digestLen); - mDigest.digestFinal(digest); - - /* now verify */ - try { - mSigner.verify(digest, - digestLen, - in.Data, - in.Length); - } - catch(...) { - session().free(digest); - throw; - } - session().free(digest); -} - -size_t SignatureContext::outputSize( - bool final, - size_t inSize) -{ - return mSigner.maxSigSize(); -} - -/* for raw sign/verify - optionally called after init */ -void SignatureContext::setDigestAlgorithm( - CSSM_ALGORITHMS digestAlg) -{ - mSigner.setDigestAlg(digestAlg); -}