_SignStream

(dim F              : File;
     FNameData      : String;
     FNameSign      : String;
     StoreName      : String;
     CertThumbPrint : String;
     Detach         : Byte;
     HashAlg        : String;
 dim TextError      : String) : Byte

Funkce podepíše data ve streamu a pak tento stream uloží do souboru nebo souborů.

Jméno parametru

Popis

F

Vstupní proud, ve kterém je textový (může být Base64) soubor k podpisu. Dělá se to takto kvůli normalizaci dat.

FNameData Jméno výstupního ( datového ) souboru. Je to vlastně soubor z proudu F, který má na konci každé řádky znak CRLF. Jestliže bude jméno souboru prázdné, soubor se neuloží.
FNameSign Jméno výstupního souboru, kam bude podpis uložen.
StoreName

Název úložiště dat. Osobní úložiště se nazývá "MY". V tomto případě, parametr CertThumbPrint obsahuje otisk certifikátu ve formátu Base64.

Jestliže do tohoto parametru vložíte text "FLX_DB", bude podpisový certifikát hledán v databázi dokumentů, kam byl vložen makrofunkcí _DocFromFileToDatabase jako typ PFX. Certifikát bude hledán podle Uid dokumentu, který bude nalezen v parametru CertThumbPrint. Heslo bude rovněž použito od nalezeného dokumentu.

CertThumbPrint Obsahuje otisk certifikátu ve formátu Base64. Jestliže je certifikát hledán v databázi dokumentů (viz parametr StoreName), je zde Uid hledaného dokumentu.
Detach Informuje o tom, že true = soubory dat a podpisu budou rozděleny, false = soubor podpisu bude obsahovat i soubor dat.
HashAlg

Definuje algoritmus vytvoření podpisu. Používejte konstanty:

  • OID_RSA_RSA
  • OID_RSA_MD2RSA
  • OID_RSA_MD4RSA
  • OID_RSA_MD5RSA
  • OID_RSA_SHA1RSA
  • OID_RSA_SETOAEP_RSA
  • OID_RSAES_OAEP
  • OID_RSA_MGF1
  • OID_RSA_PSPECIFIED
  • OID_RSA_SSA_PSS
  • OID_RSA_SHA256RSA
  • OID_RSA_SHA384RSA
  • OID_RSA_SHA512RSA
  • OID_NIST_sha256
  • OID_NIST_sha384
  • OID_NIST_sha512
TextError Jestliže vznikne chyba, vrací funkce false a tento parametr bude obsahovat text chyby.

Podívejte se na: Procedury a funkce - Certifikáty a podpisy

Příklad:

procedure TestSign
    dim F               : File;
    dim CertThumbPrint  : String;
    dim TextError       : String;	

    SRewrite(F, "", true);
    SPut(F, 1, "aaaa bbbb ccccc dd eeeeeeee");
    SPut(F, 2, "ooo  gg g hmn ůkjlh jkl§j ůlj ůlk ");
    SPut(F, 3, "kjyh kjůlh khů hiuoy kjhb gklylk njk kůlu ůu");
    SPut(F, 4, "iuo ioy jh fyjhgžý jhjkáoáíé jkhg kjhio");

    Trace(_CertSelect("MY", CertThumbPrint, TextError),"  ",CertThumbPrint, "   ",TextError);		
    Trace(_SignStream(F, "W:\TestData.dta", "W:\TestData.sgn", "MY", CertThumbPrint, true, OID_NIST_sha256, TextError), "   ",TextError);
endproc