]>
git.saurik.com Git - apple/security.git/blob - AppleCSP/MiscCSPAlgs/DigestContext.cpp
2 * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
4 * The contents of this file constitute Original Code as defined in and are
5 * subject to the Apple Public Source License Version 1.2 (the 'License').
6 * You may not use this file except in compliance with the License. Please obtain
7 * a copy of the License at http://www.apple.com/publicsource and read it before
10 * This Original Code and all software distributed under the License are
11 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
12 * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
13 * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
15 * specific language governing rights and limitations under the License.
22 #include "DigestContext.h"
23 #include <AppleCSP/AppleCSPUtils.h>
26 * Just field the expected/required calls from CSPFullPluginSession,
27 * and dispatch them to mDigest.
29 void DigestContext::init(const Context
&context
, bool)
34 void DigestContext::update(const CssmData
&data
)
36 mDigest
.digestUpdate((const UInt8
*)data
.data(), data
.length());
39 void DigestContext::final(CssmData
&data
)
41 data
.length(mDigest
.digestSizeInBytes());
42 mDigest
.digestFinal((UInt8
*)data
.data());
45 CSPFullPluginSession::CSPContext
*DigestContext::clone(CssmAllocator
&)
47 /* first clone the low-level digest object */
48 DigestObject
*newDigest
= mDigest
.digestClone();
50 /* now construct a new context */
51 return new DigestContext(session(), *newDigest
);
54 size_t DigestContext::outputSize(bool, size_t)
56 return mDigest
.digestSizeInBytes();