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

📄 pgpsymmetriccipher.h

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 H
字号:
/*____________________________________________________________________________
	Copyright (C) 2002 PGP Corporation
	All rights reserved.
	
	$Id: pgpSymmetricCipher.h,v 1.6 2002/08/06 20:11:16 dallen Exp $
____________________________________________________________________________*/

#ifndef Included_pgpSymmetricCipher_h	/* [ */
#define Included_pgpSymmetricCipher_h

#include "pgpPubTypes.h"

PGP_BEGIN_C_DECLARATIONS

/*____________________________________________________________________________
	Create a new cipher of the specified algorithm.  The cipher cannot be used
	until PGPInitSymmetricCipher() has been called.
	
	If the algorithm is not available then kPGPError_AlgorithmNotAvailable is
	returned.
____________________________________________________________________________*/

PGPError 	PGPNewSymmetricCipherContext( PGPContextRef context,
					PGPCipherAlgorithm algorithm,
					PGPSymmetricCipherContextRef *outRef );

/*____________________________________________________________________________
	Disposal clears all data in memory before releasing it.
____________________________________________________________________________*/

PGPError 	PGPFreeSymmetricCipherContext( PGPSymmetricCipherContextRef ref );

/*____________________________________________________________________________
	Make an exact copy of the cipher, including the key.
____________________________________________________________________________*/

PGPError 	PGPCopySymmetricCipherContext( PGPSymmetricCipherContextRef ref,
					PGPSymmetricCipherContextRef *outRef );

/*____________________________________________________________________________
	The key must be set before using; a cipher can be repeatedly reset and
	reused with different keys to avoid having to create and destroy new
	contexts each time (and it's also cryptographically better not to reuse
	a key).
	
	Key size is implicit based on algorithm.  'key' is *copied*.  Caller
	may want to destroy the original after passing it in.
____________________________________________________________________________*/

PGPError 	PGPInitSymmetricCipher( PGPSymmetricCipherContextRef ref,
					const void *key );
					
/*____________________________________________________________________________
	Wipe any sensitive data in the cipher.  Cipher remains alive, but
	key must be set before any data is encrypted.
____________________________________________________________________________*/

PGPError 	PGPWipeSymmetricCipher( PGPSymmetricCipherContextRef ref );

/*____________________________________________________________________________
	"Wash" the symmetric cipher
____________________________________________________________________________*/

PGPError 	PGPWashSymmetricCipher( PGPSymmetricCipherContextRef ref,
					void const *buf, PGPSize len);

/*____________________________________________________________________________
	Encrypt or decrypt one "block" of data.  The block size is determined
	by the cipher (see PGPGetSymmetricCipherSizes()).
____________________________________________________________________________*/

PGPError 	PGPSymmetricCipherEncrypt( PGPSymmetricCipherContextRef ref,
					const void *in, void *out );
					
PGPError 	PGPSymmetricCipherDecrypt( PGPSymmetricCipherContextRef ref,
					const void *in, void *out );
									
/*____________________________________________________________________________
	Determine key and block size for specified algorithm.  Stateless routine
	does not need a context.
____________________________________________________________________________*/
PGPError 	PGPGetSymmetricCipherSizes( PGPSymmetricCipherContextRef ref,
					PGPSize *keySize, PGPSize *blockSize );


PGP_END_C_DECLARATIONS

#endif /* ] Included_pgpSymmetricCipher_h */


/*__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 + -