You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.6 KiB
56 lines
1.6 KiB
using System;
|
|
using System.IO;
|
|
using System.Security.Cryptography;
|
|
|
|
namespace XLua
|
|
{
|
|
public class FilesSignature
|
|
{
|
|
static void useage()
|
|
{
|
|
Console.WriteLine("FilesSignature from_path to_path");
|
|
}
|
|
|
|
static void doSignature(string from, string to, SHA1 sha, RSACryptoServiceProvider rsa)
|
|
{
|
|
if(!Directory.Exists(to))
|
|
{
|
|
Directory.CreateDirectory(to);
|
|
}
|
|
foreach(var filename in Directory.GetFiles(from, "*.lua"))
|
|
{
|
|
byte[] filecontent = File.ReadAllBytes(filename);
|
|
byte[] sig = rsa.SignData(filecontent, sha);
|
|
FileStream fs = new FileStream(to + "/" + Path.GetFileName(filename), FileMode.Create);
|
|
fs.Write(sig, 0, sig.Length);
|
|
fs.Write(filecontent, 0, filecontent.Length);
|
|
fs.Close();
|
|
}
|
|
foreach(var dir in Directory.GetDirectories(from))
|
|
{
|
|
|
|
doSignature(dir, to + "/" + new DirectoryInfo(dir).Name, sha, rsa);
|
|
}
|
|
}
|
|
|
|
public static void Main(string[] args)
|
|
{
|
|
if (!File.Exists("key_ras"))
|
|
{
|
|
Console.WriteLine("no key_ras!");
|
|
return;
|
|
}
|
|
|
|
if (args.Length != 2)
|
|
{
|
|
useage();
|
|
return;
|
|
}
|
|
|
|
SHA1 sha = new SHA1CryptoServiceProvider();
|
|
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
|
|
rsa.FromXmlString(File.ReadAllText("key_ras"));
|
|
doSignature(args[0], args[1], sha, rsa);
|
|
}
|
|
}
|
|
}
|