Ejemplo n.º 1
0
        /// <summary>
        /// Создание ЭЦП файла
        /// </summary>
        /// <param name="filename">Имя файла, который мы хотим подписать</param>
        static void CreateFilesOfSign(string filename)
        {
            Encoding enc = Encoding.Default;

            byte[] test_byte = File.ReadAllBytes(filename);    // байтовое представление исходного файла

            FileStream   Stream = new FileStream("SecretKey.txt", FileMode.Open, FileAccess.Read);
            StreamReader Reader = new StreamReader(Stream);
            string       D      = Reader.ReadLine();
            string       N      = Reader.ReadLine();

            Reader.Close();
            Stream.Close();

            BigInt32 d    = new BigInt32(D);
            BigInt32 n    = new BigInt32(N);
            BigInt32 Sign = RSA.CreateSignature(test_byte, d, n);      // ЭЦП файла
            string   FileNameIsSignature = "Sign_" + filename;

            Stream = new FileStream(FileNameIsSignature, FileMode.Create, FileAccess.Write);
            StreamWriter Writer = new StreamWriter(Stream);

            Writer.WriteLine(Sign);
            Writer.WriteLine(filename);
            Writer.Close();
            Stream.Close();

            Stream = new FileStream(FileNameIsSignature, FileMode.Append, FileAccess.Write);
            BinaryWriter WriterByte = new BinaryWriter(Stream);

            WriterByte.Write(test_byte);
            WriterByte.Close();
            Console.WriteLine("Cоздан файл: {0}", FileNameIsSignature);
        }