home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / UTILS2 / SECDR13A.ZIP / SECDRV.H < prev    next >
C/C++ Source or Header  |  1994-01-24  |  3KB  |  93 lines

  1. /* Secure Drive V1.3 */
  2. /* Header file for cryptdsk.c and login.c */
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <conio.h>
  7. #include <bios.h>
  8. #include <dos.h>
  9. #include <string.h>
  10. #include <ctype.h>
  11. #include "md5.h"
  12. #include "usuals.h"
  13.  
  14.  
  15. #define MAXPASS 256 /* Max length of passphrase */
  16. #define ROUNDS  8
  17. #define KEYLEN  (6*ROUNDS+4)    /* length of key schedule */
  18. #define MAXDRV  4
  19. #define PASS_ITER 2048          /* Key hashing iterations */
  20. #define ESC 0x01b               /* Esc code*/
  21.  
  22. struct diskdata
  23.  {
  24.   unsigned char dddrv;
  25.            char drvltr;
  26.   unsigned firstcyl;
  27.   unsigned char firsthd;
  28.   unsigned char firstsec;
  29.   unsigned lastcyl;
  30.   unsigned char maxsec;
  31.   unsigned char maxhd;
  32.   unsigned secsize;
  33.   unsigned serial[2];
  34.   unsigned char active;
  35.   unsigned char pad;
  36.  };
  37.  
  38. struct tsrdata
  39.  {
  40.   unsigned char tsrver[4];
  41.   void far *real_dbios_vect;
  42.   unsigned char fkeychk[4];
  43.   unsigned char fkey[104];
  44.   unsigned char fkeyv10;
  45.            char pad1[3];
  46.   unsigned char hkeychk[4];
  47.   unsigned char hkey[104];
  48.   unsigned char hkeyv10;
  49.            char pad2[3];
  50.  
  51.   struct diskdata fda;
  52.   struct diskdata fdb;
  53.   struct diskdata hd[MAXDRV];
  54.  };
  55.  
  56. void extern far IdeaCFB(void *iv,void *key,void *plain,
  57.                         void *cipher,unsigned len);
  58. void extern far IdeaCFBx(void *iv,void *key,void *cipher,
  59.                          void *plain,unsigned len);
  60.  
  61. void calcdiskparams(unsigned char *buf,unsigned *maxtrack,
  62.                     unsigned *maxhead,unsigned *maxsector,
  63.                     unsigned *secsize,unsigned serial[2]);
  64. void invgets(char *input); /* Get without displaying, allow backspace */
  65. void readsec(unsigned drive,unsigned head,unsigned track,
  66.              unsigned sector,unsigned nsects,void *buffer);
  67. void writesec(unsigned drive,unsigned head,unsigned track,
  68.               unsigned sector,unsigned nsects,void *buffer);
  69. int getyn(void);
  70. void getkey(unsigned char *key,unsigned char *check,int confirm);
  71. void getkeydf(unsigned char *key,unsigned char *check,unsigned char *bufck);
  72. void setkeye(unsigned char *key,unsigned char *check);
  73. void setkeydf(unsigned char *key,unsigned char *check,unsigned char *bufck);
  74. void setkey10(unsigned char *key,unsigned char *check);
  75. void setkey13(unsigned char *key,unsigned char *check);
  76. void set_compat_mode(void);
  77.  
  78. void readptbl(unsigned char letter,unsigned *ptdrive,       /*1.1*/
  79.               unsigned *pthead,unsigned *pttrack);          /*1.1*/
  80. void rdptx(unsigned drive,unsigned head,unsigned track,     /*1.1*/
  81.           unsigned char *letter, unsigned *ptdrive,         /*1.1*/
  82.           unsigned *pthead,unsigned *pttrack,int recurse,   /*1.1*/
  83.           unsigned char *buf);                              /*1.1*/
  84.  
  85. int rldbios(int cmd,int drive, int head, int track,int sect,
  86.             int nsect,void *buf);
  87.  
  88. struct tsrdata far *gettsradr(void);
  89. void en_key_idea(word16 *userkey, word16 *Z);
  90. extern struct tsrdata far *cryptdata;
  91.  
  92.  
  93.