ุงุณุชู
ุฑุงุฑ ุงูุญูุงุฑ ุญูู ู
ูุถูุน ุงูุชูููุนุงุช ุงูุฅููุชุฑูููุฉ (ูุดุงุฑ ุฅููู ููู
ุง ุจุนุฏ ุจุงูุชูููุน ุงูุฅููุชุฑููู) ุ ููุจุบู ุฃู ููุงู ุนู ุงูุชุญูู. ูู ุงูู
ูุงูุฉ ุงูุณุงุจูุฉ ุ ูู
ุช ุจุชุญููู ุงูุฌุฒุก ุงูุฃูุซุฑ ุตุนูุจุฉ ู
ู ุงูู
ูู
ุฉ - ุฅูุดุงุก ุชูููุน. ูุฐู ุงูู
ูุงูุฉ ุฃุจุณุท ููููุงู. ู
ุนุธู
ุงูููุฏ ูู ุชููู ุฃู
ุซูุฉ ู
ู Crypto PRO .NET SDK. ุณูู ูุชุญูู ุฃููุงู ู
ู ุฌู
ูุน ุงูุชูููุนุงุช ููููุง ูู GOST R 34.10-2001 ู GOST R 34.10-2012 ุ ูุฐูู ูุญุชุงุฌ ุฅูู CRYPTO PRO.
ุชููุณู
ุงูู
ูู
ุฉ ุจุงููุณุจุฉ ููุง ุฅูู 3 ุฃุฌุฒุงุก: ุชูููุน ู
ููุตู ุ ุชูููุน ูู PDF ูุชูููุน ูู MS Word.
ุงูุชุญูู ู
ู ุงูุชูููุน ุงูู
ููุตู:
ุงูุชุนูููุงุช ูููุง ูู ุงูุฑู
ุฒ ุ ูุณุฃููุช ุงูุชุจุงูู ููุท ุฅูู ุงูุญุตูู ุนูู ุดูุงุฏุฉ ุ ูุณูุญุชุงุฌูุง ูุงุญููุง ุ ูุฃู ุณูู ูุชุญูู ู
ู ุงูุดูุงุฏุฉ ุจุดูู ู
ููุตู.
ุญุณููุง ุ ูุง ุชูุณ ุฃู ุชูุชู ูู ุดูุก ูู ุชุฌุฑุจุฉ ุงุณุชุฎุฏุงู
ูุงุณุชุฎุฏุงู
ุงูุขุฎุฑูู. ูู ุงูู
ุซุงู ุ ุฃูุง ูุง ุฃููู
ุจุฐูู ุนู ูุตุฏ ูุชูููู ุงูุญุฌู
ุงูุชุญูู ู
ู ุตุญุฉ ุงูุชูููุน ูู PDF. ููุง ูุญุชุงุฌ ุฅูู iTextSharp (ุงูุฅุตุฏุงุฑ ุงูุญุงูู ููุช ูุชุงุจุฉ 5.5.13):
using (MemoryStream fileStream = new MemoryStream(dataFileRawBytes)) using (PdfReader pdfReader = new PdfReader(fileStream)) { AcroFields acroFields = pdfReader.AcroFields;
ู
ุฑุฉ ุฃุฎุฑู ุ ูุง ููุฌุฏ ุดูุก ุฎุงุต ููุชุนููู ุนููู. ู
ุง ูู
ููู ุนูู ุฃู ุฃููู ุนู Oid ุ "1.2.840.113549.1.9.5" ูู Oid ูุชุงุฑูุฎ ุงูุชูููุน.
ูุงูุฃุฎูุฑ ูู ูุงุฆู
ุชูุง ูู docx ุ ูุฑุจู
ุง ูููู ุงูุฎูุงุฑ ุงูุฃุณูู:
using (MemoryStream fileStream = new MemoryStream(dataFileRawBytes)) using (Package filePackage = Package.Open(fileStream)) { PackageDigitalSignatureManager digitalSignatureManager = new PackageDigitalSignatureManager(filePackage); if (!digitalSignatureManager.IsSigned) {
ุงูุขู ุณูููู
ุจุชุญููู ุงูุดูุงุฏุฉ ูุงูุชุญูู ู
ู ุณูุณูุฉ ุงูุดูุงุฏุงุช ุจุฃูู
ููุง. ูุฐูู ุ ูุฌุจ ุฃู ุชุนู
ู ุงูุชุฌู
ูุน ู
ู ุชุญุช ู
ุณุชุฎุฏู
ูุฏูู ุญู ุงููุตูู ุฅูู ุงูุดุจูุฉ.
ุซู
ูุจุฏุฃ ุงูุฌุญูู
ุ ูุฃูู ูุง ุฃุนุฑู ููููุฉ ุงูุญุตูู ุนูู ู
ุนููู
ุงุช ุญูู ู
ุงูู ุงูุดูุงุฏุฉ ู
ู ุฎูุงู Oid ุ ูุฐุง ุณุฃููู
ุจุชุญููู ุงูุณูุณูุฉ. ุชุถุญู ุจุตูุช ุฃุนูู: ูุจุฏุฃ ุงูุณูุฑู.
ูููู ุจุฌุฏูุฉ ุ ูุฑุญุจ ุจู ููุชุนููู ุนูู ุฃููุฆู ุงูุฐูู ูุนุฑููู ููููุฉ ุงูููุงู
ุจุฐูู ู
ู ุฎูุงู Oid's:
private static void FillElectronicSignature(X509Certificate2 certificate) { foreach (KeyValuePair<string, string> item in ParseCertificatesSubject(certificate.Subject)) { switch (item.Key) { case "C": string certificatesCountryName = item.Value; break; case "S": string certificatesState = item.Value; break; case "L": string certificatesLocality = item.Value; break; case "O": string certificatesOrganizationName = item.Value; break; case "OU": string certificatesOrganizationalUnitName = item.Value; break; case "CN": string certificatesCommonName = item.Value; break; case "E": string certificatesEmail = item.Value; break; case "STREET": string certificatesStreet = item.Value; break;
ุงูุฑู
ุฒ ูุตูุฑ ูุฏุฑ ุงูุฅู
ูุงู ุ ูููู
ุงูุฌููุฑ ุจุดูู ุฃูุถู.
ุจุดูู ุนุงู
ุ ูุฐุง ูู ุดูุก ุ ุฃูุง ุจุงูุชุธุงุฑ ุชุนูููุงุช ุญูู ุงูุญุตูู ุนูู Oid ู
ู ุงูุดูุงุฏุฉ ูุฃู ููุฏ ู
ูุทูู.