⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pgpevent.c

📁 vc环境下的pgp源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/*____________________________________________________________________________
	pgpEvent.c
	Handle application event callbacks
	
	Copyright (C) 1997 Network Associates Inc. and affiliated companies.
	All rights reserved.

	$Id: pgpEvent.c,v 1.33 1999/05/07 23:47:45 hal Exp $
____________________________________________________________________________*/
#include "pgpConfig.h"	/* or pgpConfig.h in the CDK */

#include <string.h>

/* Public headers */
#include "pgpPubTypes.h"
#include "pgpContext.h"
#include "pgpEncode.h"
#include "pgpErrors.h"
#include "pgpKeys.h"
#include "pgpMem.h"

/* Private headers */
#include "pgpEventPriv.h"
#include "pgpEncodePriv.h"

/************************** User event callback ****************************/

	PGPError
pgpEventNull(
	PGPContextRef		context,
	PGPOptionListRef   *newOptionList,	/* Output parameter */
	PGPEventHandlerProcPtr func,
	PGPUserValue		userValue,
	PGPFileOffset		soFar,
	PGPFileOffset		total
	)
{	
	PGPJob				job;
	PGPEvent			event;
	PGPError			err;

	*newOptionList = NULL;
	if( IsNull( func ) )
		return kPGPError_NoErr;

	job.context			= context;
	job.newOptionList	= NULL;

	pgpClearMemory( &event, sizeof( event ) );
	event.job							= &job;
	event.type							= kPGPEvent_NullEvent;
	event.data.nullData.bytesWritten	= soFar;
	event.data.nullData.bytesTotal		= total;

	err = func( context, &event, userValue );

	*newOptionList = job.newOptionList;
	return err;
}


	PGPError
pgpEventInitial(
	PGPContextRef		context,
	PGPOptionListRef   *newOptionList,	/* Output parameter */
	PGPEventHandlerProcPtr func,
	PGPUserValue		userValue
	)
{
	PGPJob				job;
	PGPEvent			event;
	PGPError			err;

	*newOptionList = NULL;
	if( IsNull( func ) )
		return kPGPError_NoErr;

	job.context			= context;
	job.newOptionList	= NULL;

	pgpClearMemory( &event, sizeof( event ) );
	event.job							= &job;
	event.type							= kPGPEvent_InitialEvent;

	err = func( context, &event, userValue );

	*newOptionList = job.newOptionList;
	return err;
}


	PGPError
pgpEventFinal(
	PGPContextRef		context,
	PGPOptionListRef   *newOptionList,	/* Output parameter */
	PGPEventHandlerProcPtr func,
	PGPUserValue		userValue
	)
{
	PGPJob				job;
	PGPEvent			event;
	PGPError			err;

	*newOptionList = NULL;
	if( IsNull( func ) )
		return kPGPError_NoErr;

	job.context			= context;
	job.newOptionList	= NULL;

	pgpClearMemory( &event, sizeof( event ) );
	event.job							= &job;
	event.type							= kPGPEvent_FinalEvent;

	err = func( context, &event, userValue );

	*newOptionList = job.newOptionList;
	return err;
}


	PGPError
pgpEventError(
	PGPContextRef		context,
	PGPOptionListRef   *newOptionList,	/* Output parameter */
	PGPEventHandlerProcPtr func,
	PGPUserValue		userValue,
	PGPError			error,
	void			   *errorArg
	)
{
	PGPJob				job;
	PGPEvent			event;
	PGPError			err;

	*newOptionList = NULL;
	if( IsNull( func ) )
		return kPGPError_NoErr;

	job.context			= context;
	job.newOptionList	= NULL;

	pgpClearMemory( &event, sizeof( event ) );
	event.job							= &job;
	event.type							= kPGPEvent_ErrorEvent;
	event.data.errorData.error			= error;
	event.data.errorData.errorArg		= errorArg;

	err = func( context, &event, userValue );

	*newOptionList = job.newOptionList;
	return err;
}

	PGPError
pgpEventWarning(
	PGPContextRef		context,
	PGPOptionListRef   *newOptionList,	/* Output parameter */
	PGPEventHandlerProcPtr func,
	PGPUserValue		userValue,
	PGPError			warning,
	void			   *warningArg
	)
{
	PGPJob				job;
	PGPEvent			event;
	PGPError			err;

	*newOptionList = NULL;
	if( IsNull( func ) )
		return kPGPError_NoErr;

	job.context			= context;
	job.newOptionList	= NULL;

	pgpClearMemory( &event, sizeof( event ) );
	event.job							= &job;
	event.type							= kPGPEvent_WarningEvent;
	event.data.warningData.warning		= warning;
	event.data.warningData.warningArg	= warningArg;

	err = func( context, &event, userValue );

	*newOptionList = job.newOptionList;
	return err;
}

	PGPError
pgpEventEntropy(
	PGPContextRef		context,
	PGPOptionListRef   *newOptionList,	/* Output parameter */
	PGPEventHandlerProcPtr func,
	PGPUserValue		userValue,
	PGPUInt32			entropyBitsNeeded
	)
{
	PGPJob				job;
	PGPEvent			event;
	PGPError			err;

	*newOptionList = NULL;
	if( IsNull( func ) )
		return kPGPError_NoErr;

	job.context			= context;
	job.newOptionList	= NULL;

	pgpClearMemory( &event, sizeof( event ) );
	event.job									= &job;
	event.type									= kPGPEvent_EntropyEvent;
	event.data.entropyData.entropyBitsNeeded	= entropyBitsNeeded;

	err = func( context, &event, userValue );

	*newOptionList = job.newOptionList;
	return err;
}

	PGPError
pgpEventPassphrase(
	PGPContextRef		context,
	PGPOptionListRef   *newOptionList,	/* Output parameter */
	PGPEventHandlerProcPtr func,
	PGPUserValue		userValue,
	PGPBoolean			fConventional,
	PGPKeySetRef		keyset
	)
{
	PGPJob				job;
	PGPEvent			event;
	PGPError			err;

	*newOptionList = NULL;
	if( IsNull( func ) )
		return kPGPError_NoErr;

	job.context			= context;
	job.newOptionList	= NULL;

	pgpClearMemory( &event, sizeof( event ) );
	event.job									= &job;
	event.type									= kPGPEvent_PassphraseEvent;
	event.data.passphraseData.fConventional		= fConventional;
	event.data.passphraseData.keyset			= keyset;

	err = func( context, &event, userValue );

	*newOptionList = job.newOptionList;
	return err;
}

	PGPError
pgpEventAnalyze(
	PGPContextRef		context,
	PGPOptionListRef   *newOptionList,	/* Output parameter */
	PGPEventHandlerProcPtr func,
	PGPUserValue		userValue,
	PGPAnalyzeType		type
	)
{
	PGPJob				job;
	PGPEvent			event;
	PGPError			err;

	*newOptionList = NULL;
	if( IsNull( func ) )
		return kPGPError_NoErr;

	job.context			= context;
	job.newOptionList	= NULL;

	pgpClearMemory( &event, sizeof( event ) );
	event.job									= &job;
	event.type									= kPGPEvent_AnalyzeEvent;
	event.data.analyzeData.sectionType			= type;

	err = func( context, &event, userValue );

	*newOptionList = job.newOptionList;
	return err;
}

	PGPError
pgpEventRecipients(
	PGPContextRef		context,
	PGPOptionListRef   *newOptionList,	/* Output parameter */
	PGPEventHandlerProcPtr func,
	PGPUserValue		userValue,
	PGPKeySetRef		recipientSet,
	PGPKeyID			*keyIDArray,
	PGPUInt32			passphraseCount,
	PGPUInt32			keyCount
	)
{
	PGPJob				job;
	PGPEvent			event;
	PGPError			err;

	*newOptionList = NULL;
	if( IsNull( func ) )
		return kPGPError_NoErr;

	job.context			= context;
	job.newOptionList	= NULL;

	pgpClearMemory( &event, sizeof( event ) );
	event.job									= &job;
	event.type									= kPGPEvent_RecipientsEvent;
	event.data.recipientsData.recipientSet		= recipientSet;
	event.data.recipientsData.keyIDArray		= keyIDArray;
	event.data.recipientsData.conventionalPassphraseCount
												= passphraseCount;
	event.data.recipientsData.keyCount			= keyCount;

	err = func( context, &event, userValue );

	*newOptionList = job.newOptionList;
	return err;
}

	PGPError
pgpEventKeyFound(
	PGPContextRef		context,
	PGPOptionListRef   *newOptionList,	/* Output parameter */
	PGPEventHandlerProcPtr func,
	PGPUserValue		userValue,
	PGPKeySetRef		keySet
	)
{
	PGPJob				job;
	PGPEvent			event;
	PGPError			err;

	*newOptionList = NULL;
	if( IsNull( func ) )
		return kPGPError_NoErr;

	job.context			= context;
	job.newOptionList	= NULL;

	pgpClearMemory( &event, sizeof( event ) );
	event.job									= &job;
	event.type									= kPGPEvent_KeyFoundEvent;
	event.data.keyFoundData.keySet				= keySet;

	err = func( context, &event, userValue );

	*newOptionList = job.newOptionList;
	return err;
}

	PGPError
pgpEventOutput(
	PGPContextRef		context,
	PGPOptionListRef   *newOptionList,	/* Output parameter */
	PGPEventHandlerProcPtr func,
	PGPUserValue		userValue,
	PGPUInt32			messageType,
	char const		   *suggestedName,
	PGPBoolean			FYEO
	)
{
	PGPJob		job;
	PGPEvent	event;
	PGPError	err;
	char		*canonicalName = NULL;
	
	*newOptionList = NULL;
	if( IsNull( func ) )
		return kPGPError_NoErr;

	job.context			= context;
	job.newOptionList	= NULL;

	if( IsntNull( suggestedName ) )
	{
		/* Convert all illegal characters to underscores */
		
		canonicalName = (char *) PGPNewData( PGPGetContextMemoryMgr( context ),
								strlen( suggestedName ) + 1, 0 );
		if( IsntNull( canonicalName ) )
		{
			char	*cur = canonicalName;
			
			strcpy( canonicalName, suggestedName );
			
		#if PGP_MACINTOSH
			/* Macs are unhappy with filenames starting with '.' */
			if( *cur == '.' )

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -