Esempio n. 1
0
        public static string Decrypt(string CipherText, string mod, string exp)
        {
            var Modulus  = HelperFunctions.FromHexToByte(mod);
            var Exponent = HelperFunctions.FromHexToByte(exp);

            var CipherTextBytes = Convert.FromBase64String(CipherText);

            var modulus  = new BigInteger(1, Modulus);
            var exponent = new BigInteger(1, Exponent);

            var Parameters = new RsaKeyParameters(true, modulus, exponent);
            var RSAengine  = new RsaEngine();

            RSAengine.Init(false, Parameters);

            var blockSize = RSAengine.GetInputBlockSize();

            var output = new List <byte>();

            for (var chunkPosition = 0; chunkPosition < CipherTextBytes.Length; chunkPosition += blockSize)
            {
                var chunkSize = Math.Min(blockSize, CipherTextBytes.Length - chunkPosition * blockSize);
                output.AddRange(RSAengine.ProcessBlock(CipherTextBytes, chunkPosition, chunkSize));
            }

            var output2   = output.ToArray();
            var PlainText = Encoding.ASCII.GetString(output2);

            return(PlainText);
        }
        public static void CheckDigitalSignature_FromString(string text, string signatureFile, string RSApublicKeyFile, TextBox outputTextBox, HashingMode mode)
        {
            var signature = FileManager.Read_Signature(signatureFile);

            var publicKey      = FileManager.Read_RSAKey(RSApublicKeyFile);
            var signatureBytes = HelperFunctions.FromHexToByte(signature);

            var decoded = RSA.Decrypt(Convert.ToBase64String(signatureBytes), publicKey.Modulus, publicKey.Exponent);
            var hash    = SHA.Hash(text, mode);

            outputTextBox.Text = hash == decoded ? "Potpis je valjan!" : "Potpis nije valjan!";
        }
        public static void OpenDigitalEnvelope(string envelopeFile, string RSAprivateKey, string outputFile, EncryptionMode mode, SymetricAlgorithm algorithm)
        {
            var envelope   = FileManager.Read_Envelope(envelopeFile);
            var privateKey = FileManager.Read_RSAKey(RSAprivateKey);

            var keyCipher = Convert.ToBase64String(HelperFunctions.FromHexToByte(envelope.Key));
            var key       = RSA.Decrypt(keyCipher, privateKey.Modulus, privateKey.Exponent);


            var input    = Convert.FromBase64String(envelope.Data);
            var keyBytes = HelperFunctions.FromHexToByte(key);
            var vector   = FileManager.ReadFile_IVector("IVector.txt");

            var data = algorithm == SymetricAlgorithm.THREE_DES ? THREE_DES.Decrypt(input, keyBytes, mode) : AES.Decrypt(input, keyBytes, vector, mode);

            var envelopeText = Encoding.ASCII.GetString(data);

            FileManager.Write(envelopeText, outputFile);
        }
Esempio n. 4
0
        public static byte[] ReadFile_IVector(string file)
        {
            var vectorFile = new StreamReader(Program.Direktorij + file);

            string currentLine;
            var    vector = "";

            while (vectorFile.ReadLine() != "Initialization vector:")
            {
            }
            while ((currentLine = vectorFile.ReadLine()) != "---END OS2 CRYPTO DATA---" && currentLine != "")
            {
                vector += currentLine?.Substring(4);
            }

            var vectorBytes = HelperFunctions.FromHexToByte(vector);

            return(vectorBytes);
        }