1/* 2 * Copyright (c) 2004 Apple Computer, Inc. All Rights Reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. Please obtain a copy of the License at 10 * http://www.opensource.apple.com/apsl/ and read it before using this 11 * file. 12 * 13 * The Original Code and all software distributed under the License are 14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 18 * Please see the License for the specific language governing rights and 19 * limitations under the License. 20 * 21 * @APPLE_LICENSE_HEADER_END@ 22 */ 23 24/*! 25 @header SecCmsDigestContext.h 26 @copyright 2004 Apple Computer, Inc. All Rights Reserved. 27 28 @availability 10.4 and later 29 @abstract Interfaces of the CMS implementation. 30 @discussion The functions here implement functions calculating digests. 31 */ 32 33#ifndef _SECURITY_SECCMSDIGESTCONTEXT_H_ 34#define _SECURITY_SECCMSDIGESTCONTEXT_H_ 1 35 36#include <Security/SecCmsBase.h> 37 38 39#if defined(__cplusplus) 40extern "C" { 41#endif 42 43 44/*! 45 @function 46 @abstract Start digest calculation using all the digest algorithms in "digestalgs" in parallel. 47 */ 48extern SecCmsDigestContextRef 49SecCmsDigestContextStartMultiple(SECAlgorithmID **digestalgs); 50 51/*! 52 @function 53 @abstract Feed more data into the digest machine. 54 */ 55extern void 56SecCmsDigestContextUpdate(SecCmsDigestContextRef cmsdigcx, const unsigned char *data, size_t len); 57 58/*! 59 @function 60 @abstract Cancel digesting operation. 61 @discussion Cancel a DigestContext created with @link SecCmsDigestContextStartMultiple SecCmsDigestContextStartMultiple function@/link. 62 */ 63extern void 64SecCmsDigestContextCancel(SecCmsDigestContextRef cmsdigcx); 65 66/*! 67 @function 68 @abstract Finish the digests and put them into an array of CSSM_DATAs (allocated on arena) 69 */ 70extern OSStatus 71SecCmsDigestContextFinishMultiple(SecCmsDigestContextRef cmsdigcx, SecArenaPoolRef arena, 72 CSSM_DATA_PTR **digestsp); 73 74#if defined(__cplusplus) 75} 76#endif 77 78#endif /* _SECURITY_SECCMSDIGESTCONTEXT_H_ */ 79