HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

XML aláírás transzformációkkal


Példaprogram letöltése

9398 bájt

A .NET Framework System.Security.Cryptography.Xml névterében találjuk azokat az osztályokat, melyek segítségével elkészíthetjük az XML állományaink digitális aláírását, és le is ellenőrizhetjük azt. A digitálisan aláírt XML állományok még biztonságosabbá tehetik az alkalmazások közötti XML-alapú kommunikációt. Cikkünkben a XmlDsigC14NTransform osztály lehetőségeivel ismerkedhetünk meg részleteiben.

A mellékelt példában digitálisan aláírjuk, egy tanúsítvánnyal hitelesítjük a PersonalInfo.xml állományt. Az alkalmazás felületén két műveletet tudunk elvégezni. Az „XML aláírása” feliratú nyomógomb segítségével aláírhatjuk az állományt, míg az „Ellenőrzés” feliratú megnyomásával leellenőrizhetjük annak helyességét.
Állomány aláírása
Miután a programunk elindult, a PersonalInfo.xml állomány betöltődik a böngészőkontrolba, amely a Form-on található.
Első lépésben létrehozunk egy RSACryptoServiceProvider objektumot a titkosítási algoritmushoz.
RSACryptoServiceProvider key = new RSACryptoServiceProvider();
Betöltjük a PersonalInfo.xml állományt egy XmlDocument objektumba.
XmlDocument xmldoc = new XmlDocument();
xmldoc.PreserveWhitespace = false;
xmldoc.Load(new XmlTextReader("PersonalInfo.xml"));
Létrehozunk egy SignedXml objektumot az aláírás tárolására, és a generált kulcsot megadjuk a SigningKey property-ben.
SignedXml signedXml = new SignedXml(xmldoc);
signedXml.SigningKey = key;
Szükségünk van egy referenciaosztályra is az aláíráshoz.
Reference reference = new Reference();
reference.Uri = "";
Ezután hozzuk létre az XmlDsigC14NTransform objektumot, majd a Reference objektum AddTransform metódusával adjuk át az aláíró algoritmusnak.
Transform trans = new XmlDsigC14NTransform();
reference.AddTransform(trans);
Szükségünk van egy XmlDsigEnvelopedSignatureTransform objektumra is, mely egy borítékot reprezentál az aláírás számára. Ezt is a referenciák listájához adjuk. Ennek elhagyása azt eredményezi, hogy az aláírás nem lesz megfelelő.
XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform();
reference.AddTransform(env);
Az aláírt XML-t reprezentáló objektum megfelelő metódusával pedig a Reference objektumot adjuk meg az objektumnak.
signedXml.AddReference(reference);
Most már csak annyit kell tennünk, hogy az aláírási algoritmus kulcsát átadjuk a SignedXml objektumnak. A kulcsot a fent példányosított osztály biztosítja.
KeyInfo keyInfo = new KeyInfo();
keyInfo.AddClause(new RSAKeyValue((RSA)key));
signedXml.KeyInfo = keyInfo;
A ComputeSignature metódussal generáljuk az aláírást.
signedXml.ComputeSignature();
Utolsó lépésként az eredeti XML-hez fűzzük az aláírást és generálunk egy új állományt.
A Verification metódus segítségével ellenőrizhetjük az aláírás helyességét. Itt beolvassuk az aláírt XML-t egy SignedXml objektumba, megkeressük a Signature tagot az XML-ben, majd ellenőrizzük a CheckSignarture metódussal.
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("SignedPersonalInfo.xml");
SignedXml signedXml = new SignedXml(xmldoc);
XmlNodeList nodeList = xmldoc.GetElementsByTagName("Signature");
...
return signedXml.CheckSignature();
Az állományokat a böngészőkontrol Navigate metódusával töltjük be. A megjelenítésnek köszönhetően rögtön látható a fájlok közötti eltérés. A ComboBox-ban elegendő kiválasztani a megfelelőt.
axWebBrowser1.Navigate(Application.StartupPath + "\\" + comboBox1.Text,ref m,ref m,ref m,ref m);

Cikksorozat

#IDKategóriaCikk címeSorozat
3643DelphiFormEditor1. rész
3689DelphiProject és modul információk2. rész
3719DelphiMegnyitás, mentés3. rész
3749DelphiKódszerkesztő4. rész
3778DelphiForráskód írása, olvasása5. rész
3809DelphiInterfész a kódszerkesztő ablakhoz6. rész
3839DelphiKijelölt blokkok7. rész
3869DelphiA buffer beállításai8. rész
3899DelphiKörnyezeti és Project opciók9. rész
3929DelphiKurzor a kódszerkesztőben10. rész
3959DelphiKeresés és csere beállításai11. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 681. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |