Einzelnen Beitrag anzeigen

flashcoder

Registriert seit: 10. Nov 2013
83 Beiträge
 
#1

C to Delphi: validate Bitcoin wallet address

  Alt 25. Sep 2017, 01:07
I'm trying convert a C code that is able to validate a Bitcoin wallet address and is be very hard because i not know much about C language.

Here is C code used as reference and below is point until where i'm able to make.

So, someone could help me?


Code:
{$APPTYPE CONSOLE}
{$R *.res}

uses
  SysUtils;

const
  TMPL = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ';
  SHA256_DIGEST_LENGTH = 32;

function UnBase58(S: PWideChar; Outter: Byte): Integer;
var
  I, J: Integer;
  C: Extended;
  P: PWideChar;
begin
  Result := 0;
  FillChar(Outter, 0, 25);

  for I := 0 to Length(S) do
  begin
    P := StrPos(PWideChar(TMPL), PWideChar(S[I]));

    if P = nil then
      Exit;

    C := P - PWideChar(TMPL);
    for J := 25 downto 0 do
    begin
      C := C + 58 * Outter[J];
      Outter[J] := C mod 256;
      C := C / 256;
    end;

    // if C then Exit;

  end;

  Result := 1;
end;

function Valid(S: PWideChar): Integer;
var
 d, d1, d2: array[0..SHA256_DIGEST_LENGTH] of Byte;
begin
    if UnBase58(S, d) = 0 then Exit;

    ...

end;

Geändert von flashcoder (25. Sep 2017 um 01:15 Uhr)
  Mit Zitat antworten Zitat