Einzelnen Beitrag anzeigen

HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
972 Beiträge
 
Delphi 6 Professional
 
#4

AW: Problem mit PAnsiChar und Rückgabewert einer Funktion CryptoSys PKI

  Alt 7. Sep 2015, 12:32
Frage vorweg:
Hast Du Dir die Beschreibung der API mal angeschaut?

http://www.cryptosys.net/pki/manpki/...aToString.html

Zitat:
Remarks
This function extracts the signed data from the signed-data CMS object without making any attempt to verify it. Call the function with an empty or NULL szOutput string or zero nOutChars parameter to find out the required length of the output string.

Aus dem Bauch heraus:

Code:
function ReadSigData(AFileName : AnsiString):AnsiString;
var
  tmpBuffer : PChar;
  tmpBuferSize : integer;
  tmpRead : integer;
  tmpResult : integer;
begin
  // Benötigten Buffer ermitteln
  tmpBuferSize := CMS_ReadSigDataToString(nil, 0,AFileName,0);
  if tmpBuferSize > 0 then begin
    // Buffer anlegen
    tmpBuffer := AllocMem(tmpBuferSize+1);
    try
      // Sicherheitshalber löschen
      FillChar(tmpBuffer,tmpBuferSize+1,0);
      // Funktionsaufruf
      tmpRead := CMS_ReadSigDataToString(tmpBuffer, tmpBuferSize,AFileName,0);
      // Wenn (wirklich) Daten vorhanden
      if (tmpRead > 0) then begin
        // .. zurückgeben.
        result := tmpBuffer;
      end;
    finally
      // Buffer wiedere freigeben
      FreeMem(tmpBuffer);
    end;
  end;
end;
  Mit Zitat antworten Zitat