Hallo,
für eine Schnittstelle muss ich mich mit einer Vorgabe aus C# beschäftigen.
Leider fehlt mir der Ansatz das Ganze mit Delphi Bordmitteln zu lösen.
Hier der Quellcode:
Delphi-Quellcode:
// encode and encrypt secret using .NET classes
// using System.Security.Cryptography;
// using System.IO;
// encode the incremented secret
byte[] encodedSecret = Encoding.UTF8.GetBytes(Convert.ToString(secret));
// prepare TripleDESCryptoServiceProvider for encryption
TripleDESCryptoServiceProvider tdes_enc = new TripleDESCryptoServiceProvider();
tdes_enc.Key = md5PassPhraseHash;
byte[] cIV_enc = new byte[8];
Array.Copy(md5PassPhraseHash, cIV_enc, 8);
tdes_enc.IV = cIV_enc;
// encrypt secret
MemoryStream memstream = new MemoryStream();
CryptoStream cs = new CryptoStream(memstream, tdes_enc.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(encodedSecret, 0, encodedSecret.Length);
cs.FlushFinalBlock();
cs.Close();
byte[] encryptedSecret = memstream.ToArray();
string secret_encrypted = Convert.ToBase64String(encryptedSecret);
Ich habe die
Unit Winapi.Security.Cryptography gefunden und in die Uses hinzugefügt.
Es hat etwas mit "TripleDesCbc" zu tun.
Wie bekomme ich folgende Zeile in Delphi hin: "TripleDESCryptoServiceProvider tdes_enc = new TripleDESCryptoServiceProvider();"