home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / FORTRAN / CODE3_4.ZIP / PCCODE4.FOR < prev    next >
Encoding:
Text File  |  1986-12-01  |  16.2 KB  |  229 lines

  1. $NODEBUG
  2. $NOFLOATCALLS
  3. $STRICT
  4. $PAGE
  5.       PROGRAM PCCODE4
  6. C
  7. C     ********************************************************
  8. C     *                                                      *
  9. C     *     PC-CODE4 PORTABLE CRYPTOGRAPHY        v6.2       *
  10. C     *     (C) COPYRIGHT RICHARD NOLEN COLVARD   Apr-86     *
  11. C     *         COMMERCIAL RIGHTS RESERVED                   *
  12. C     *                                                      *
  13. C     *         MICROSOFT MS FORTRAN V3.30                   *
  14. C     *                                                      *
  15. C     ********************************************************
  16. C
  17.       INTEGER*2   IERR,ILOW,IHIGH,NKEYS,J,K,M,IFREQ,RECNUM
  18.       INTEGER*2   RANGE,RESULT,RANGE2,IA,IR,ISEC,SIZE99,RECN2
  19.       INTEGER*2   JEOF
  20.       INTEGER*4   KEYS(999),HASHER,JHASH
  21.       CHARACTER*1 IYES,ITRANS,IHDR,IHASH,TEXT(512)
  22.       CHARACTER*1 ICODE,IKEY,IINP,IOUT,TEMP(72)
  23.       CHARACTER*21 VERSION,VERS,FILLER*10
  24. C     CHARACTER*16 TEOF
  25. C     CHARACTER*16 ZEOF
  26. C
  27. C
  28.       PARAMETER (SIZE99=512)
  29. C
  30. C
  31. C     EQUIVALENCE (TEXT(1),TEOF)
  32.       DATA RECNUM / 1 /, RECN2 / 1 /
  33.       DATA IERR / 0 /, JEOF / 0 /
  34.       DATA TEXT / 512 * ' '/
  35.       DATA KEYS / 999 * 0 /
  36.       DATA HASHER / 0 /
  37.       DATA VERSION / '$PC-CODE4 V6.2 APR-86' /
  38. C     DATA ZEOF / '/*END-OF-FILE*/ '/
  39. C
  40. C
  41.    5  FORMAT(1X)
  42.    6  FORMAT(1X,/)
  43.       WRITE(*,6)
  44.       WRITE(*,10)
  45.   10  FORMAT(10X,'PC-CODE4  PORTABLE CRYPTO-SYSTEM  v6.2B',//)
  46.   20  FORMAT(10X,'(c) Copyright R. Nolen COLVARD Company 1986')
  47.   22  FORMAT(10X,'    Commercial Rights Reserved')
  48.   24  FORMAT(10X,'(c) Copyright Microsoft Corp 1985')
  49.   26  FORMAT(10X,'    Microsoft FORTRAN-77 V3.30'//)
  50.       WRITE(*,20)
  51.       WRITE(*,22)
  52.       WRITE(*,24)
  53.       WRITE(*,26)
  54. C
  55. C
  56.       OPEN(9,FILE='CONFIG.PC3',FORM='FORMATTED',ACCESS='SEQUENTIAL',
  57.      +       STATUS='OLD',IOSTAT=IERR)
  58. C
  59. C
  60.   30  FORMAT(5X,'*** PROBLEM MI2-E='CONIA,FORM='FORMATTED',ACCESS='SEQUEN 1985')
  61. *******Mr  ACTeEYS(*,22(oft Corp 1S +       STAT*** len COLVARD Company 2      TER*1 ICODo
  62.       uXT(512)
  63. JEOF /M-vs   uXT(512)
  64. JEOF /M-vs   u FORMATTo',ACC     WbC0)
  65.   10  FORMAT(10X,'PC-CODE4
  66. v,t20)
  67.       WRITE(*,,ACCESS=N(10X,nPï    *,20eaECNUr╤uTTo',uhiF:$NODCTeEYS(*,22(oft Corp 1S +       STAT*CC0)
  68. l2ngCOLVAR
  69. LFORMATToECNUr╤orp 1N>ACC   )r0eaECNUr╤uTTo',uhiF:$NODCTeEEOF c,M-vs   u FORMATTo',ACC     WbC0)
  70.   10  FORMAT(10X,'PC-CODE4
  71. v,t20)
  72.       WRITE(*,,ACCESS=N(10X,nPï    *,20eaECNUr╤uTTo',uhiF:$NODCTeEYS(*,22(ofmA IERR / 0"ER*2  (TERu,,A='OLD',IOSEQUEN WRIpN / '$PC-bC0)
  73. ODE4 ,ACCkS1S DATA KEYS / 999 * 0 /
  74.       DATA HASHEO4A u    rp F985')
  75.   26  FORMAT-FILLATAAo Coml 6  FO2p 1NHn-a HASHEe/
  76. CODE4 PORTABSau    rp sba    *,20|]p Fe.bCc,ACC20|]p Fe.hFILRAN rP')
  77.   26  FORMAT-FILLATAAo ComnbiYr╤uTToWPC-COM MI2-E=l6LV*
  78. C     *     (C) COPYRIG99 C     sD7o   DATA RECKAn9a,A= N EATo',Ahts Ms0)
  79. ODE4 ANGE2,IA,IR4ShsErh SRWRIomE    sDiiu CRMAna HASHEe/,ACCk1N / '$R4SC,HASHEe/Gm)mnbiYr╤uTToWPC-COM MI2-E=lvh                                            *
  80. C     *     PC- MIETE(*l4M$
  81. C bgAhts Ms0)
  82. ODE4 ANGE2,IG.PVa ON0)
  83. O8iRinbiY   nrEuuu9>ACDLFORMA4o⌠aL
  84. C  CO12 nONe/,HmWbC0√n  * ' '/
  85.       DL$NODC$
  86. C bg9(9,FILE
  87.     i
  88. C ***╒S DATA KEYS / 999 * 0 /
  89. 7o',uhiFwie   IER9 u3i.Ruu9HASuS&5in  COIfs/
  90. ORMCOD$NODC$
  91. C bg9(9,FILE
  92.     i
  93. C ***╒S DATA KEYS / 999 * 0 /
  94. 7o',uhiFwie   IER9 u3i.Ruu9HASuS&5in  COIfs/
  95. ORMCOD$NODC$
  96. C bg9(9,FILE
  97.     i
  98. C ***╒S DATA KEYS / 999 * 0 /
  99. APE
  100.     SASu2)
  101.    D3TA T22 (*,22(oft CTnNODC$
  102. C b    IhXrs1w"iiC i
  103. C *[┌I uw7
  104. ORMCOD$*
  105. C     * AN┐*****Isp/G f\ ODC$
  106. hts Ms t r0 /
  107.  ht╖h* 0 /
  108. ***
  109. TA 6UncZ A NODC$OIfs/aD*       NTA KEY,uhINo'CONFIG.PC3',FORM='FORMATTEDaILE='CYS,J,K,MnfaD*    eC0i 9(9,FILE
  110.     i
  111. C ***
  112. TAaENN 10OUT,TeA d0 /
  113. ***
  114. T*****A 6UnvLondthEYS / **
  115. TAORMATTORMATTORMAcvs   uIG.PC3',FORM∙hRMCOD$NO1****A▀4cA▀thET,TeA4S1k.FIN   OUT7o',Eh* 0 *IAMETER (SIZEODC$
  116.    i
  117. C ***ctiET,TeA4OUT,TeA A TeS1C  i
  118. Ct3éPnLD',IOSTAT=IERR)ASHE K,M sba    *,20bHTeA A vLo T2ce  v6.2B: OUT,TeAIHDR,        ,aAMETER ERu,'A Te  6 A50EhSS=N(10X,,'A TebhSSS    *,20|]p Fe.bt A _e(TE(u* 0 /
  119. ***
  120. Tc sbeNCEhSSffATToEC
  121.  K$NODa 5 a1,m bg9(9,slIGfsDaN WRIOLFORMA4YPTOGRAk.FIN  [==   OUT7oa 5 a1,m bg9(9,slIGfsDaN WRIOLFORMA4YPTOGRAk.FIHARACTER*16 TEOF
  122. p* 'oT **OUT7o   DAT           WuEo⌠aL
  123. C1S DATA╡OD$ok FORMAT(10X,'PC59(9,FRsl 6  *  1k.FIN,slRii =4u r1),SFIN   O ¢n_e(TE(NCuau(10X,     (GHT RICbu3SLFORMA4YPTOGRAk.FIN  [
  124. tFORMATPdrPr
  125. Cuu9Hin  C    i
  126.  19  eαuRLE
  127. ) RCuau(102, nsoft FON DATA6 Tn╤oraN  O ¢n_e(TE(NCuau(10X, 
  128.   IS,IHDwg9[kp=  r    Y,uhIm'C FOr    Y,uh       aoG. (GHT RIanN    OC)p≤ sbª      l+1l+AIHDR,        ,aAkE[         g ooEC
  129.  KT     g T )
  130.  
  131.   IS,IHDwg9[kp=  *1 ICODC     (GHT RI0   gM38*Hal  IS,IHDwg9[kIS,Il4K
  132. AaooEC
  133.  KT     g T )
  134.  
  135.   IS,16 TEOF
  136. C     CHARACTER*16 ZEOF
  137. C
  138. C
  139.       PARAMETER (SIZE99=512)
  140. C
  141. C
  142. C     EQUIVALENCE (TEXT(1),TEOF)
  143.       DATA RECNUM / 1 /, RECN2 / 1 /
  144.       DATA IERR / 0 /, JEOF / 0 /
  145.       DATA TEXT / 512 * ' '/
  146.       DATA KEYS / 999 * 0 /
  147.       DATA HASHER / 0 /RlkCN2 / 1 /
  148. Eoeuu9>ACDLFORNODC$T /D>ACE4
  149. aA≤D>A( DATA KEYS / 9eRCuauc 1 /, RECcbg RECNHARACTER*1iC
  150.  K$NOD6nCNUr╤orp
  151.   I
  152. "da, bg   PORTABLE CRYrpaF0$ONe/Cp sbNODC$LRTA 0nrP4K"DLFORNODC$P4K"DLFORNODC$ 1 NODC$ 1 NODC$ k  gl(ieIZE9B,T )
  153.  ET   aLAaooEC
  154.  KM / 1 W1 KEYS / 999 * 0 T   aLA
  155.  ┬T9(9nouPcC5CuaurAaooEC
  156.  K
  157.  DAiEEEEEEiEEEEEEiK
  158.  TERi4KN⌠ t[ñ      *
  159. C     *  NUr╤uTTo',9(9n9
  160. En9b.DE4NFORMATTo'9eRCuauc 1 /, RECcbg RECNHARACTER*1iC
  161.  K$NOD6T  ╟
  162. CE (TETETETETETETETETO *
  163. C  m- aLAiEEEEfIS,IHDwg9[kIS,IHDwg9T  ╟
  164. CEeCD3Y        v6.2       *
  165. C     *     (Cñ 'TERu,uTTo',9(9n9
  166. En9b.DE4NFORMATTo'9eRCuauc 1 /, RECcbg RECNHARACTER*1iC
  167.  K$NOD6T  ╟
  168. CE (TETETETETETETETETO *
  169. C  m- aLAiEEEEfIS,IHDwg9[kIS,IHDwg9T  ╟
  170. CEeCD3Y        v6.2       *
  171. C     *     (Cñ 'TERu,uTTo',9(9n9
  172. En9b.DE4NFORMATTo'9eRCuauc 1 /, RECcbg RECNHARACTER*r(Dwg9[ki sbkS='OLD',IOSTAT=IERR)
  173. C
  174. C
  175.   30  FORMAT(5X,'*** PR r╤uTTuTToWP1no2 / 1 /
  176. AT(5X,SNO¿lmRn, RR    bONe/Cp79 *Oo / E**     *e NO¿ß)FOR
  177. C
  178.    Ti7S,IHDwg9   g T )t12 * 'iEEEEiEEEEfI WRIOLFORMA4Y      NTA En9EfI W/ E**  O1S1k.FIN   OUT7o'iW4s/
  179. ORMCwNF W/ E*F╟
  180. CE,.f"M COM MI2    OC)p≤ sbª      l+1l+AIHDR,        ,aAkE[         g ooEC
  181.  KT     g T )
  182.  
  183.   IS,IHDwg9Dwg9[ki sbkS='OaA≤B)
  184.   ',9(9g              o /        ,aAkE[         g :CDR,r    Y,uhImteNO0IToWP1no2 / 1 /
  185. ATIS,IHDwgeC
  186.  KT     g T )
  187.  
  188.   IS,IHDwg9Dwg9[ki sbkS='OaA≤B)
  189.   ',9(9g              o /        ,a   gIfs/
  190. O   OC)p≤ sEso LENCE (TEXT(1),TEOF)
  191.       DATA RECNUM / ECNHARAECN2 / 1 /
  192. /Pï    *,20e ,a   gIfs/
  193. O   OC)p≤ sEso LENCE (T
  194. ,a;ETETa   gIfs/
  195. O   OC)p≤ kT     g T )
  196.  
  197.   IS,IHDwg9Dwg9[ki sbkS='OaA≤B)
  198.   ',9(9g              o /        ,aAkE[         g :CDR,r    Y,uhImteNO0IToWP1no2 / 1 /
  199. ATIS,IHDwgeC
  200.  KT     g_OaA≤U NUr╤uTTo',9(9n9
  201. En9b.DE4NFORMATTo'9eRCuauc 1 /, RECcbg RECNHARACTER*1iC
  202.  K$NOD6T  ╟
  203. CE (TETETETETETETETETO *
  204. C  m- aLAiEEEEfIS,IHDwg9[kIS,IHDwg9T  ╟
  205. CEeCD3Y        v6.2       *
  206. C     *     (Cña   OC)p≤ kT     g T )
  207.  
  208.   IS,IHDwg9Dwg9[ki sbkS='OaA≤B)
  209.   ',9(9g              o /        ,aAkE[         g :CDR,r    Y,uhImteNO0IToWP1no2 / 1 /
  210. ATIS,IHDwgeC
  211.  KT     g_OaA≤U NUr╤uTTo',9(9n9
  212. En9b.DE4NFORMAMφEATISdL(9n9      oeeARACTER*r(Dwg9[ki sbkSm7ECcbg1T     g_To'9eRCuIS,
  213.  NUr╤uTT,a          $.aS,
  214.  NUr╤uhImteNO0ITdthEY  xSdL(9n9  _To'9eRr    Y,uh     RS DATh:RiDwg9[ki sbkSm7ECcbg1T     g_To'9eRCuIS,
  215.  NUr╤uTT,a          $.aS,
  216.  NUr╤uhImteNO0ITdthEY  xSdL(9n9  _To'9eRr    Y,uh     RS DATh:RiDwg9[ki sbkSm7ECcbg1T     g_To'9eRCuIS,
  217.  NUr╤uTT,a          $.aS,
  218.  NUr╤uhImteNO0ITdthEY  xSdL(9(9(9g       bg1T:CD eDm2  RS DATh:RiDwg9[ki sbkSm7ECcbg1T     g_To'9eRCuIS,
  219.  NUr╤uTT,a          $.aS,
  220.  NUr╤ NUr:CD 
  221.  T )
  222.  
  223.   IS,td
  224.   IS,IHDwg9[DATh:R(y NUr╤uSSSSSSSSNCc.aS,
  225.  N
  226. CE_,a      cORMATTn9
  227. ╠IL(9(9(-   **O0)
  228. mChπNUr╤uTr    Y,uhImteNO0IToWP1noHIHDwD9e  RS DATh:RiDwg9[ki sbkSm7ECcbg1To'9eRr    :CD eDm2  RS DAThgpR,euTTDLFORNODC$'9eR)  *    0 GGGGlcbg1To'9eRr    :CD eDm2  RS DAThgpRxl rGGlcbg    fOilb   nE5IImteIHDw sleuTTDLFORNODC$'9eR)  *    0 GGGGlce╖ 0 aS,IH   cOReRC"u╜TERC$'lsl1.slns8or▌    ER*16 TEOF
  229. p* 'oT **OUT7o   DAT           WuEo⌠aL
  230. C1S DATA╡OD$ok FORMAT(10X,'PC59(9,FRsl 6  *  1k.FIN,slRii =4u r1),SFIN   O ¢n_e(TE(NCuau(10X,     (GHT RICbu3SLFORMA4YPTOGRAk.FIN  [
  231. tFORMATPdrPr
  232. Cuu9Hin  C    i
  233.  19  eαuRLE
  234. ) 1S DATAIirORMAECNR4-,EEu g**
  235. Tc0 f4AcLsbkSm7ECcbg1    f
  236.  N
  237. CEm u4-,EEf,/
  238. a'lsl1DbDATAIS▌   C59(9,1S DADsiu io9b.DE4    0 GG WuE3a'lsac10X,   i
  239.  OF
  240. p* 'oT **OUT0)
  241. ORiDwg9[k:*OUT(10
  242. g TEHYPT-(C     (GHT RNTETETO *
  243. C  m- aLAiEEEEfIS,IHDwg9[kIS,IHDwg9T  ╟
  244. CEeCD3Y        v6.2       *
  245. C     *     (Cña   OC)p≤ kT     g T )
  246.  
  247.   IS,IHD w)*1 ICO/
  248.  999 * 0 T   aLoT )
  249. Ur╤uTTo',9no9(9,FRsaTPdrP0X,p sbNODC$T   aLoT )-    (GHT ahEEfIS,Iicr2  RS [
  250. CñfIS,I 9[kI.T )-   OaTPdrP0X,p sbNODC$d  (TI0  lNcLsbk,0  c1bECcbg1T     C
  251. C
  252. C    0 Iast75aAkE[
  253. 0 IpddrP0X,p sbNODC$T   aLoT )-    (GHT ahEEfIS,Iicr2  RS [
  254. CñfIS,I 9[kI.T )-   OaTPdrP0X,p sbNODC$d  (TI0  lNcLsbk,0  c1bECcbg1T     C
  255. C
  256. C    0 Iast75aAkE[
  257. 0 IpddrP0X,p sbNODC$T   aLoT )-    (GHT ahEEfIS,Iicr2  RS [
  258. CceATTn9hgpR,pR,pR,i
  259.    DlpR,pR,i
  260.   9T in $.aS,k OC)cp sCcbgvaAkE[
  261. 0 IpEtI.T )-   OnoDwg9[u(10
  262.   c1bECcbg1T     C
  263. CuECcm    (∩SLFORMWP1no2 / 1 /
  264. ATIS,IHDwgeC
  265.  KT     g_OaA≤U NUr╤uTTo',9(9n9
  266. En9b.DE4NFORMAMφEATISdL(9n9      oT╟
  267. CE,.fa,
  268. DR Ip   OaTPdA
  269. En9bGHT ahEEfIS,Iicr2  Yk9 *Oo /mo
  270. AK:s1 ImteNi8,IHDwg9[_iRC    L(9NHARAECN2 / 1 /
  271. 2 / 1 /
  272. xT ahEEfIS,IicwNin rMi,k OC)cp   aLoT  /
  273. iC
  274.  Kog R  sA   eF [lT )
  275.  oll'IS,IHDwg9aRMWP1nofIS,IiNO0ITrnoDwg9[u(105 *    X $.aeT Iog:RiAw1
  276. iC
  277.  Kog R  sA   eF [lT ie1S DATA╡OD$oS *
  278. C   ≤ T )
  279. go X $.aRGHT1 KEYYS /=LhE3 gIfsNECcA Te   /
  280. iC
  281.  Ko2oD:3 gIfsNEC
  282.   IS,IHDwg9Dwg9[ki sbkS='OaA≤B)
  283.   ',9(9g              o /        RE5⌠ost9[kuECcm (105 RMATtr2 CE WP1n'E
  284.  KogNO0DwgIHDwg9Dwge*   )
  285.  R   ╩ECcaK     K[:RiI 9wge*   )
  286.  R   ╩ECcaK     K[:RiI 9wge*   )
  287.  R   ╩IHDwgeC
  288.  s 3_e(TE(MoD:3 _e(TE(MoD:3 _e(:nK     ∞╩ECca)
  289.  R╙LÉL:Uvr:nKñfIS,I OUTi sbkSmr)
  290. S='OaA≤rra sbkbD )
  291.  3 fIHn0 'Ccaisbk)-    o / IHnRiI 9wge oT╟
  292. CE,.fE(MoDl
  293. 0 R   ╩IHKñfR╙miC
  294.  K/
  295. A Te   fOiL
  296.   ',9(*Oo / $.aS    *
  297.  fIS,LY  E9NHARA-'α)-    (GHT ahEE 
  298.  3 fUTi sR1no2 / 1 A
  299. En9-,EEf,/
  300. a'lsl1DbDATAIS▌   C59(9,1S DADsiu io9b.DE4    0 GG WuE3a'lsac10X,   i
  301.  OF
  302. p* 'oT **OUT0)
  303. ORiDwg9[k:*OUT(10
  304. g TEHYPT-(C     (GHT RNTETETO *
  305. C  m- aLAiEEEEfIS,IHDwg9[kIS,IHDwg9T  ╟
  306. CEeCD3Y        v6.2       *
  307. C     *     (Cña   OC)p≤ kT     g{   fO:r RECNHb.DE4 4GGuT     FORNODC$lcP0X7m:r RLnn9
  308. ╠IL(9(9ya  yaETO 3bD   g{   f= [:RiI 9wge*   )
  309.  R  ECcbg1RytR  ECcbg1RyaF0$(YPT-(O0I9wge*  OTEHio9
  310.         a8r9wgICb   /
  311. i4GGuT     FORNODC$lcP0X7m:rkI wg9[ki1EEfiL
  312. 7g{   0IToWc@*)yu4-,5REe0)
  313. ORiDwgl┌=   e  fO ahEEL╜p=  teNO0IToWP1no2 / 1 /
  314. ATIS,IHDwgeC
  315.  KT     g_OaA≤U NUr╤uTTo',9(9n9
  316. En9b.DE4NFORMATTo'9eRCuauc 1 /, RECcbg RECNHARACTER*1iC
  317.  K$NOD6T  ╟
  318. CE (TETETETETETETETETO *
  319.     *     (Cñ '-s RECNH*
  320. g9[.T )-   OnoDwg9Y        wg9[k-   Onuth2 * 'ia
  321. aTPdEk7TETO *ORTABLE CRY  'C"n9
  322. u'9eRCul          ─ECNH*
  323.  
  324. g TEHYPl  o
  325. ╠IL(9(9(-so LENsIS,Il4K
  326. AaeATTnoDwg9Y        wg9[k-   Onuth2 * 'ia
  327. aTPdb     *
  328. C =[ki1EERECNHAC   g_O      E< sA   eF [lT )
  329.  oll'IS,IHDwg9aiC
  330.  K$NOD6T  ╟
  331. CE (TETETETETm:r RLnn9
  332. ╠IL(9(9ya  yaETO 3bD   g{   f= [:RiI 9wge*   )
  333.  R  ECcbg1RytR  ECcbg1Ry)[
  334. ifRMAMφEATISdL(9n9      oeeARACTER*r(Dwg9[ki sbkSm7ECcbg1T     g_To'9eRCuscg T )
  335. L(9NHARAEi sbkR,eEL╜p=  teECctahg1    f )
  336. 7  █NHARAEi sDwg9ATI WuE31,SAEi sDwg9ATI xSdL(9(
  337. =YPT-(C[:RocE5⌠oseNO0IT0 GG  sDw mSm7Eg9[M    (∩SÆ47,0  c1bECSÆ4geC
  338.  KWr 'TERu,ui6mSm7Eg9[M  Ccbg RECco LT IHDwtFD3Y   rNbg REC(∩Sa9
  339. Enu,uill'IS,IHDwgOn',9(9n9
  340. En9   0, RECcIHDwgOtn)-    (GHNUr╤uT  KWos,IHDST 1 / *    
  341. En9o [
  342. iflW$SUr╤uT  a sa sa sa saTOth2 * 'ia
  343. aTmr)
  344. ENO0IDwg9ATI WuE31,SAEi sDwWd*)yuestmEEIHDwg9Dw    * C$'9eR (TETETET IoT  KlETE)
  345.  ET   aLA
  346. E4NWuE31,SAEi tM  OC)p≤ kRW$SUrsbkkiNO¿╤uT  KWIlETE)
  347.  DwgOtnhYPT-u,uisE)yueC
  348. WT  KIs╓ss ╫
  349. w