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

📄 recpass.c

📁 vc环境下的pgp源码
💻 C
字号:
/*____________________________________________________________________________
	Copyright (C) 1997 Network Associates Inc. and affiliated companies.
	All rights reserved.

	$Id: recpass.c,v 1.21 1999/04/13 17:29:54 wjb Exp $
____________________________________________________________________________*/
#include "precomp.h"

void FreePhrases(MYSTATE *ms)
{
	if(ms->PassPhrase)
	{
		PGPclFreeCachedPhrase(ms->PassPhrase);
		ms->PassPhrase=NULL;
	}

	if(ms->PassKey)
	{
		memset(ms->PassKey,0x00,ms->PassKeyLen);
		PGPFreeData(ms->PassKey);
		ms->PassKey=NULL;
	}

	if(ms->ConvPassPhrase)
	{
		PGPclFreePhrase(ms->ConvPassPhrase);
		ms->ConvPassPhrase=NULL;
	}
}

/*Returns TRUE if the user hit cancel*/

BOOL GetDecryptPhrase(PGPContextRef context,
					  PGPKeySetRef MainKeySet,
					  HWND hwnd, 
					  char **EnteredOrCachedPhrase,
					  unsigned short *PassPhraseCount,
					  char *KeyForPhrase,
					  PGPKeySetRef KeySet,
					  PGPKeyID *RecipientKeyIDArray,
					  DWORD dwKeyIDCount,
					  PGPByte **PassKey,
					  PGPUInt32 *PassKeyLen,
				  	  PGPtlsContextRef tlsContext,
					  PGPKeySetRef	*AddedKeys,
					  char *szTitle)
{
	BOOL UserCancel = FALSE;
	BOOL ForceEntry = FALSE;
	char PhraseTitle[256];

	assert(EnteredOrCachedPhrase);

	if(*EnteredOrCachedPhrase)
	{
		PGPclFreeCachedPhrase(*EnteredOrCachedPhrase);
		*EnteredOrCachedPhrase = NULL;
	}

	if(PassPhraseCount && *PassPhraseCount > 0)
	{
		LoadString(g_hinst, IDS_WRONG_PHRASE, PhraseTitle, sizeof(PhraseTitle));
		ForceEntry = TRUE;
	}
	else 
	{
		LoadString(g_hinst, IDS_ENTER_PHRASE, PhraseTitle, sizeof(PhraseTitle));
		lstrcat (PhraseTitle, KeyForPhrase);
	}


	if(PGPclGetCachedDecryptionPhrase (context,
					tlsContext,
					MainKeySet,
					hwnd, 
					PhraseTitle, 
					ForceEntry,
					EnteredOrCachedPhrase,
					KeySet,
					RecipientKeyIDArray,
					dwKeyIDCount,
					PassKey,PassKeyLen,
					AddedKeys,szTitle)!= kPGPError_NoErr)
	{
		UserCancel = TRUE;
	}
	if(PassPhraseCount)
		++(*PassPhraseCount);

	return(UserCancel);
}


/*__Editor_settings____

	Local Variables:
	tab-width: 4
	End:
	vi: ts=4 sw=4
	vim: si
_____________________*/

⌨️ 快捷键说明

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