/* Copyright Microsoft Corp 1993 * * faxopt.c * * Include file for faxopt.dll * * * Created: 1/10/93 * Author: mikegins */ #ifndef __FAXOPT_H__ #define __FAXOPT_H__ 1 #ifndef __FAXSEC_H__ #define SEC_SUCCESS 0 /* Operation succeeded */ #define SEC_BADFILE 1 /* File cannot be opened */ #define SEC_KEYTOOSMALL 2 /* Keybuffer too small */ #define SEC_NOMATCH 3 /* No key of requested type found for specified keyholder, or too many matches were found (ie: joe@+123 and mart@+123 both match @+123 with equal weight */ #define SEC_FILECORRUPT 4 /* File integrity check failed */ #define SEC_NOMEMORY 5 /* Aborted due to low memory conditions */ #define SEC_BADPTR 6 /* An invalid pointer was passed in */ #define SEC_USERABORT 7 /* User aborted operation */ #define SEC_BADPASS 8 /* Invalid password */ #define SEC_ABORT 9 /* Callback caused abort */ #define SEC_BUSY 10 /* Concurrent job already running */ #define SEC_WRONGKEY 11 /* Wrong key used in decryption */ #define SEC_NEWERVERSION 12 /* File generated by newer version of software, and we cannot decrypt it */ #define SIG_SUCCESS 0 /* Operation succeeded */ #define SIG_BADINFILE 1 /* Bad input file */ #define SIG_BADOUTFILE 2 /* Bad output file */ #define SIG_FORGED 3 /* Signature does not match keyset */ #define SIG_AUTHENTIC 4 /* Signature matches keyset */ #define SIG_NOTVERIFIED 5 /* No key found, so can not verify signature */ #define SIG_BADPASS 6 /* Bad password or incorrect session handle */ #define SIG_NOMEM 7 /* Out of memory error */ #define SIG_ABORT 8 /* Callback caused abort */ #define SIG_BUSY 9 /* Concurrent job already running */ #endif #define FAXOPTBASEATT 0x6000 #define iATTlogostr (FAXOPTBASEATT+ 0) #define iATTlogo1 (FAXOPTBASEATT+ 1) #define iATTlogo2 (FAXOPTBASEATT+ 2) #define iATTlogo3 (FAXOPTBASEATT+ 3) #define iATTlogo4 (FAXOPTBASEATT+ 4) #define iATTlogo5 (FAXOPTBASEATT+ 5) #define iATTinccover (FAXOPTBASEATT+ 6) #define iATTtranshour (FAXOPTBASEATT+ 7) #define iATTtransquart (FAXOPTBASEATT+ 8) #define iATTdelivform (FAXOPTBASEATT+ 9) #define iATTimagequal (FAXOPTBASEATT+10) #define iATTprintorient (FAXOPTBASEATT+11) #define iATTcheapbeghr (FAXOPTBASEATT+13) #define iATTcheapendhr (FAXOPTBASEATT+14) #define iATTcheapbegq (FAXOPTBASEATT+15) #define iATTcheapendq (FAXOPTBASEATT+16) #define iATTnumret (FAXOPTBASEATT+17) #define iATTminbetret (FAXOPTBASEATT+18) #define iATTpapersize (FAXOPTBASEATT+19) #define iATTtransprio (FAXOPTBASEATT+20) #define iATTencrypt (FAXOPTBASEATT+21) #define iATTsign (FAXOPTBASEATT+22) #define iATTIncludeBody (FAXOPTBASEATT+23) #define iATTSimplePwd (FAXOPTBASEATT+24) #define SelectUser Func20 WORD FAR PASCAL SelectUser(LPSTR userid, DWORD userinst, LPSTR olduser, LPSTR selecteduser); #define GetSimplePwd Func21 WORD FAR PASCAL GetSimplePwd(LPSTR pwd); #define ImportKeysDlg Func22 WORD FAR PASCAL ImportKeysDlg(LPSTR filename, HWND hDlg); /* 0 = success, 1 = End of Job, 2 = failure */ typedef WORD FAR PASCAL ReadCB(DWORD hf, LPBUFFER FAR *buf); typedef WORD FAR PASCAL WriteCB(DWORD hf, LPBUFFER buf); typedef void FAR PASCAL LogCB(LPSTR userid, DWORD userinst); /* 0 = continue, 1 = abort */ typedef WORD FAR PASCAL SigCB(DWORD hf, LPSTR username, WORD result); #if FALSE #define MailStarting Func00 void FAR PASCAL MailStarting(LogCB *LoginCB, LogCB *LogoutCB, LPSTR userid); #define MailShutdown Func01 void FAR PASCAL MailShutdown(void); #define EncryptInit Func02 WORD FAR PASCAL EncryptInit(LPSTR userid, DWORD userinst, LPSTR destuser, WORD FAR *instance, LPBUFFER buf); #define EncryptData Func03 WORD FAR PASCAL EncryptData(DWORD userinst, WORD inst, LPBUFFER buf); #define DecryptInit Func04 WORD FAR PASCAL DecryptInit(LPSTR userid, DWORD userinst, LPSTR srcuser, WORD FAR *instance, LPBUFFER buf); #define DecryptData Func05 WORD FAR PASCAL DecryptData(DWORD userinst, WORD inst, LPBUFFER buf); #define SimpleEncryptInit Func06 WORD FAR PASCAL SimpleEncryptInit(LPSTR pwd, WORD FAR *instance, LPBUFFER buf); #define SimpleEncryptData Func07 WORD FAR PASCAL SimpleEncryptData(WORD inst, LPBUFFER buf); #define SimpleDecryptInit Func08 WORD FAR PASCAL SimpleDecryptInit(LPSTR pwd, WORD FAR *instance, LPBUFFER buf); #define SimpleDecryptData Func09 WORD FAR PASCAL SimpleDecryptData(WORD inst, LPBUFFER buf); #ifndef DELRINA #define SignFile Func10 #endif WORD FAR PASCAL SignFile(ReadCB *readCB, DWORD readHand, WriteCB *writeCB, DWORD writeHand, LPSTR userid, DWORD userinst, LPSTR filename, WORD FAR *HeaderSize); #define UnSignFile Func11 WORD FAR PASCAL UnSignFile(ReadCB FAR *readCB, DWORD readHand, WriteCB FAR *writeCB,DWORD writeHand); #ifndef DELRINA #define ExistsPubKey Func12 #endif BOOL FAR PASCAL ExistsPubKey(LPSTR name); #define IsUserLoggedIn Func13 WORD FAR PASCAL IsUserLoggedIn(void); #define SignFileHeaderSize Func14 WORD FAR PASCAL SignFileHeaderSize(ReadCB FAR *readCB, DWORD readHand, WORD FAR *headersize, LPSTR filename); #define GetSignatures Func15 WORD FAR PASCAL GetSignatures(ReadCB FAR *readCB, DWORD readHand, SigCB FAR *sigCB, DWORD sigHand, LPSTR filename); /* Call to start hashing bft header. Returns 0 for failure, or non-zero context for passing to SendBFTHash and DoneBFTHash */ #define StartBFTHash Func23 WORD FAR PASCAL StartBFTHash(void); /* Pass in context from StartBFTHash, and buffer with length */ #define SendBFTHash Func24 void FAR PASCAL SendBFTHash(WORD Context, BYTE FAR *buf, WORD len); /* Pass in context after done calling SendBFTHash. If salt points to 3 bytes which are 0, a salt is generated and returned, else the salt is used. Key must be 5 bytes, from which the actual key is derived. Res must be 16 bytes long to receive hashed encrypted result. */ #define DoneBFTHash Func25 void FAR PASCAL DoneBFTHash(WORD Context, BYTE FAR *salt, BYTE FAR *key, BYTE FAR *res); #endif #endif