📄 pgputilities.h
字号:
/*____________________________________________________________________________
pgpUtilities.h
Copyright (C) 1997 Network Associates Inc. and affiliated companies.
All rights reserved.
This file contains miscellaneous utility functions needed for the PGPsdk.
$Id: pgpUtilities.h,v 1.68 1999/03/25 01:46:38 heller Exp $
____________________________________________________________________________*/
#ifndef Included_pgpUtilities_h /* [ */
#define Included_pgpUtilities_h
#if PGP_MACINTOSH /* [ */
#include <Files.h>
#endif /* ] PGP_MACINTOSH */
#include "pgpPubTypes.h"
#include "pgpMemoryMgr.h"
#include <time.h>
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=mac68k /* [ */
#endif
#if PGP_MACINTOSH /* [ */
#define kPGPMacFileCreator_Keys 'pgpK'
#define kPGPMacFileCreator_DecryptedBinary '????'
#define kPGPMacFileCreator_DecryptedText 'ttxt'
#define kPGPMacFileCreator_Tools 'pgpM'
#define kPGPMacFileType_ArmorFile 'TEXT'
#define kPGPMacFileType_EncryptedData 'pgEF'
#define kPGPMacFileType_SignedData 'pgSF'
#define kPGPMacFileType_DetachedSig 'pgDS'
#define kPGPMacFileType_RandomSeed 'pgRS'
#define kPGPMacFileType_PrivRing 'pgRR'
#define kPGPMacFileType_PubRing 'pgPR'
#define kPGPMacFileType_Groups 'pgGR'
#define kPGPMacFileType_Preferences 'pref'
#define kPGPMacFileType_DecryptedText 'TEXT'
#define kPGPMacFileType_DecryptedBinary 'BINA'
#define kPGPMacFileType_KeyShares 'pgSK'
#define kPGPMacFileType_Exported509Keys 'pgX5'
#endif /* ] PGP_MACINTOSH */
PGP_BEGIN_C_DECLARATIONS
#if PRAGMA_IMPORT_SUPPORTED
#pragma import on
#endif
/*____________________________________________________________________________
Context routines
____________________________________________________________________________*/
/*____________________________________________________________________________
API version:
Top byte is major, next 3 nibbles minor, next 2 bug fix,
last nibble reserved: 0xMMmmmrrR
example: 1.0.0 = 0x01000000
0x01000000 SDK 1.0.0
0x02000000 SDK 1.1.0
0x02000010 SDK 1.1.1
0x03000000 SDK 1.5
0x03000010 SDK 1.5.1
0x03000020 SDK 1.5.2
0x03001000 SDK 1.6
0x03002000 SDK 1.7
0x03002010 SDK 1.7.1
_____________________________________________________________________________*/
#define kPGPsdkAPIVersion ( (PGPUInt32)0x03002010 )
#define PGPMajorVersion( v ) ( ( ((PGPUInt32)(v)) & 0xFF000000 ) >> 24 )
#define PGPMinorVersion( v ) ( ( ((PGPUInt32)(v)) & 0x00FFF000 ) >> 16 )
#define PGPRevVersion( v ) ( ( ((PGPUInt32)(v)) & 0x00000FF0 ) >> 4 )
typedef struct PGPNewContextStruct
{
/* sizeofStruct must be inited to sizeof( PGPNewContextStruct ) */
PGPUInt32 sizeofStruct;
PGPMemoryMgrRef memoryMgr;
} PGPNewContextStruct;
/* always pass kPGPsdkVersion */
PGPError PGPNewContext( PGPUInt32 clientAPIVersion,
PGPContextRef *newContext );
PGPError PGPNewContextCustom( PGPUInt32 clientAPIVersion,
PGPNewContextStruct const *custom,
PGPContextRef *newContext );
PGPError PGPFreeContext( PGPContextRef context );
PGPError PGPGetContextUserValue( PGPContextRef context,
PGPUserValue *userValue );
PGPError PGPSetContextUserValue( PGPContextRef context,
PGPUserValue userValue );
PGPError PGPContextGetRandomBytes(PGPContextRef context,
void *buf, PGPSize len );
PGPMemoryMgrRef PGPGetContextMemoryMgr( PGPContextRef context );
/*____________________________________________________________________________
FileRefs
____________________________________________________________________________*/
PGPError PGPCopyFileSpec(PGPFileSpecRef fileRef,
PGPFileSpecRef *ref);
PGPError PGPFreeFileSpec(PGPFileSpecRef fileRef);
#if PGP_MACINTOSH /* [ */
PGPError PGPNewFileSpecFromFSSpec(PGPContextRef context,
const FSSpec *spec, PGPFileSpecRef *ref);
PGPError PGPGetFSSpecFromFileSpec(PGPFileSpecRef fileRef,
FSSpec *spec);
#else
PGPError PGPNewFileSpecFromFullPath( PGPContextRef context,
char const *path, PGPFileSpecRef *ref);
/* *fullPathPtr ***must*** be freed with PGPFreeData */
PGPError PGPGetFullPathFromFileSpec( PGPFileSpecRef fileRef,
char ** fullPathPtr);
#endif /* ] PGP_MACINTOSH */
/*____________________________________________________________________________
Time
____________________________________________________________________________*/
PGPTime PGPGetTime(void);
/* these use time_t type as returned by time() in Std C libraries */
time_t PGPGetStdTimeFromPGPTime(PGPTime theTime);
PGPTime PGPGetPGPTimeFromStdTime(time_t theTime);
/* year, month, day may be NULL if desired */
void PGPGetYMDFromPGPTime( PGPTime theTime,
PGPUInt16 *year, PGPUInt16 *month, PGPUInt16 *day );
#if PGP_MACINTOSH /* [ */
PGPUInt32 PGPTimeToMacTime(PGPTime theTime);
PGPTime PGPTimeFromMacTime(PGPUInt32 theTime);
#endif /* ] PGP_MACINTOSH */
/*____________________________________________________________________________
MacBinary support
____________________________________________________________________________*/
/*____________________________________________________________________________
Examine the input file to see if it's a MacBinary file. If it is
not a MacBinary file, then the original file is unaltered.
Otherwise, the file is converted and the original file is deleted.
The resulting file is designated by 'outPGPSpec' and may have a different
name than the original.
If the file is a TEXT file, appropriate line-end conversion is done.
creator and type code pointers may be
null but otherwise contain the mac creator and type.
This routine can be called on a Mac, but generally doesn't need to be.
____________________________________________________________________________*/
PGPError PGPMacBinaryToLocal( PGPFileSpecRef inSpec,
PGPFileSpecRef * outSpec,
PGPUInt32 * macCreator, PGPUInt32 * macTypeCode );
/*____________________________________________________________________________
Library initialization
Call PGPsdkXXXInit() before using that particular library.
Call PGPsdkXXXCleanup() when you are done (but after disposing of any
PGPContexts).
You may call PGPsdkXXXInit multiple times (with no effect), but be sure
to call the matching PGPsdkXXXCleanup() for each call to PGPsdkXXXInit().
____________________________________________________________________________*/
PGPError PGPsdkInit( void );
PGPError PGPsdkCleanup( void );
PGPError PGPsdkNetworkLibInit( void );
PGPError PGPsdkNetworkLibCleanup( void );
PGPError PGPsdkUILibInit( void );
PGPError PGPsdkUILibCleanup( void );
#if PRAGMA_IMPORT_SUPPORTED
#pragma import reset
#endif
PGP_END_C_DECLARATIONS
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=reset /* ] */
#endif
#endif /* ] Included_pgpUtilities_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 + -