Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/Trip.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.3 by yoffy, Sat Oct 9 15:07:20 2004 UTC revision 1.3.12.1 by h677, Sat Aug 5 03:44:24 2006 UTC
# Line 33  function get_2ch_trip( Line 33  function get_2ch_trip(
33          const pw : PChar          const pw : PChar
34  ) : string;  ) : string;
35    
36    {!
37    \brief  トリップの生成に必要なsaltの生成
38    \parm   pw  saltの元になるパスワード
39    \param  salt    生成したsaltが格納される (array[0..2] of char)
40    }
41    procedure get_salt(
42        const pw : PChar;
43        salt : PChar
44    );
45    
46  const  const
47          kCryptInitialTr : CryptOrdering = ( o_data: (          kCryptInitialTr : CryptOrdering = ( o_data: (
48                  #58,#50,#42,#34,#26,#18,#10, #2,#60,#52,#44,#36,#28,#20,#12, #4,                  #58,#50,#42,#34,#26,#18,#10, #2,#60,#52,#44,#36,#28,#20,#12, #4,
# Line 413  function get_2ch_trip( Line 423  function get_2ch_trip(
423  var  var
424          s : CryptData;          s : CryptData;
425          salt : array [0..2] of char;          salt : array [0..2] of char;
   
         i : Integer;  
         len : Integer;  
426  begin  begin
427    
         salt[ 0 ] := #0;  
428          if pw[ 0 ] = #0 then          if pw[ 0 ] = #0 then
429          begin          begin
430                  Result := '';                  Result := '';
431                  Exit;                  Exit;
432          end;          end;
433    
434        get_salt( pw, salt );
435    
436    
437            Result := Copy( crypt_r( pw, salt, s ), 4, 100 );
438    
439    end;
440    
441    procedure get_salt(
442        const pw : PChar;
443        salt : PChar
444    );
445    var
446        i, len : Integer;
447    begin
448            salt[ 0 ] := #0;
449    
450          if pw[ 1 ] <> #0 then          if pw[ 1 ] <> #0 then
451          begin          begin
452                  if pw[ 2 ] <> #0 then                  if pw[ 2 ] <> #0 then
# Line 438  begin Line 460  begin
460                          else                          else
461                                  salt[ i ] := '.';                                  salt[ i ] := '.';
462    
463                          if Pos( salt[ i ], ':;<=>?@[\\]^_`' ) > 0 then              if Pos ( salt[ i ], ':;<=>?@' ) > 0 then begin
464                                  salt[ i ] := Char( Integer( salt[ i ] ) + 7 );                  salt[ i ] := Char( Integer( salt[ i ] ) + 7 );
465                end else if Pos( salt[ i ], '[\\]^_`' ) > 0 then begin
466                                    salt[ i ] := Char( Integer( salt[ i ] ) + 6 );
467                end;
468                  end;                  end;
469                  if len = 1 then                  if len = 1 then
470                          salt[ 1 ] := 'H';                          salt[ 1 ] := 'H';
# Line 448  begin Line 473  begin
473                  salt[ 0 ] := 'H';                  salt[ 0 ] := 'H';
474                  salt[ 1 ] := '.';                  salt[ 1 ] := '.';
475          end;          end;
   
         Result := Copy( crypt_r( pw, salt, s ), 4, 100 );  
   
476  end;  end;
477    
478  end.  end.

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.3.12.1

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26