(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:
|
| 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