{$MODE OBJFPC} { -*- delphi -*- }
{$INCLUDE settings.inc}
program converter;
uses sysutils;
type
TOldDynastyRecord = record
public
const
MaxUsernameLength = 127; // plus one byte for the length
SaltLength = 8;
SHA256Length = 32;
DynastyServerLength = 255;
var
Username: String[MaxUsernameLength];
Salt: array[0..SaltLength-1] of Byte;
PasswordHash: array[0..SHA256Length-1] of Byte; // SHA256
DynastyServer: String[DynastyServerLength];
end;
TNewDynastyRecord = record
public
const
MaxUsernameLength = 127; // plus one byte for the length
SaltLength = 8;
SHA256Length = 32;
var
Username: String[MaxUsernameLength];
Salt: array[0..SaltLength-1] of Byte;
PasswordHash: array[0..SHA256Length-1] of Byte; // SHA256
DynastyServer: Cardinal;
end;
var
InputFile: File of TOldDynastyRecord;
OutputFile: File of TNewDynastyRecord;
Filename: UTF8String;
InputRecord: TOldDynastyRecord;
OutputRecord: TNewDynastyRecord;
Count: Integer;
begin
if (ParamCount() <> 2) then
begin
Writeln('usage: database-converter