Die einfache Blob, die erzeugt wird unter VerwendungManaged SIMPLEBLOB blob Unmanaged SIMPLEBLOB (RSA -Cryptography)
CryptExportKey(hKey, hPublicKey, SIMPLEBLOB, 0, lpData, &nSize);
nicht entspricht nicht der aus dem folgenden Code erzeugt überein (beachten Sie, dass client.key die Ebene ist Text Schlüsselwert von hKey gefunden mit http://www.codeproject.com/KB/security/plaintextsessionkey.aspx)
CspParameters cspParams = new CspParameters();
cspParams.KeyContainerName = "Container Name";
cspParams.KeyNumber = (int)KeyNumber.Exchange;
cspParams.ProviderType = 1;
cspParams.ProviderName = "Microsoft Enhanced Cryptographic Provider v1.0"; cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
RSACryptoServiceProvider rsaClient = new RSACryptoServiceProvid(cspParams);
rsaClient.ImportCspBlob(File.ReadAllBytes(@"C:\client.key"));//Generate a SIMPLEBLOB session key
byte[] session = GetRC4SessionBlobFromKey(keyMaterial, rsaClient);//Encrypt a key using public key and write it in a SIMPLEBLOB format
public byte[] GetRC4SessionBlobFromKey(byte[] keyData, RSACryptoServiceProvider publicKey)
{
using(MemoryStream ms = new MemoryStream())
using(BinaryWriter w = new BinaryWriter(ms))
{
w.Write((byte) 0x01); // SIMPLEBLOB
w.Write((byte) 0x02); // Version 2
w.Write((byte) 0x00); // Reserved
w.Write(0x00006801); // ALG_ID = RC4 for the encrypted key.
w.Write(0x0000a400); // CALG_RSA_KEYX
w.Write(publicKey.Encrypt(keyData, false));
w.Flush();
return ms.ToArray();
}
}
Warum ist das?
Meinen Sie den tatsächlichen SIMPLEBLOB-Inhalt anhängen oder kopieren? Ich kann das machen. –
Ja, bitte fügen Sie den Inhalt des CryptExportKey() - Blobs und des GetRC4SessionBlobFromKey() - Blobs hinzu. (Hex-codiert oder Base64-codiert oder was auch immer). –
Hallo Rasmus, Entschuldigung für die verzögerte Antwort und Danke für Ihre Antwort, ich war für eine Weile weg und schaute auf Ihren Kommentar bis heute. Das Kommentar-Textfeld erlaubt es nicht, mehr als 300 Zeichen einzugeben oder Dateien hochzuladen.Bitte lassen Sie mich wissen, wenn es eine andere Möglichkeit gibt, wie ich Sie erreichen kann (z. B. E-Mail). Danke –