13.01.2014 Aufrufe

PDF 941kB - Hochschule Ulm

PDF 941kB - Hochschule Ulm

PDF 941kB - Hochschule Ulm

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Implementierung<br />

5<br />

;<br />

6 this . aes = new Aes ( this . secretKey . ToByteArray ());<br />

7 Checksum c = new Checksum ();<br />

8<br />

9 byte [] dataWithChecksumReceived = this . aes . Decrypt (<br />

ndefMessage [0]. Payload );<br />

10 string message = null ;<br />

11 if(c. IsValid ( dataWithChecksumReceived ))<br />

12 {<br />

13 byte [] messageBytes = c. GetOriginalData (<br />

dataWithChecksumReceived );<br />

14 message = Encoding . UTF8 . GetString (<br />

messageBytes );<br />

15 }<br />

16 else<br />

17 {<br />

18 message = " Invalid Checksum ";<br />

19 }<br />

20 Console . WriteLine ( message + Environment . NewLine );<br />

21 Debug . WriteLine ( message );<br />

22<br />

23 // ...<br />

24 }<br />

Listing 26: Reader überprüft die Gültigkeit der digitalen Signatur der App.<br />

Anschließend erzeugt der Reader eine Instanz der Klasse Aes, der er die Klassenvariable<br />

secretKey als Parameter übergibt. Der Decrypt() Methode wird die erhaltene<br />

Nachricht von der App als Parameter übergeben um die entschlüsselte Nachricht als<br />

Rückgabewert zu erhalten. Der Rückgabewert wird der Variable dataWithChecksumReceived<br />

zugewiesen. Die Variable dataWithChecksumReceived wird der Methode IsValid<br />

() der Instanz der Klasse Checksum übergeben, um zu überprüfen, ob die Daten während<br />

der Übertragung manipuliert wurden. Verläuft die Überprüfung positiv, wird anschließend<br />

mit der GetOrginalData() Methode durch Übergabe der Variable dataWithChecksumReceived<br />

die ursprüngliche Nachricht als Byte-Array wiederhergestellt. Um aus dem<br />

Byte-Array die originale Nachricht zu rekonstruieren, wird das Byte-Array der Methode<br />

GetString() aus dem .NET Framework Namespace System.Text.Encoding.UTF8<br />

übergeben.<br />

Danach führt der Reader dieselben Schritte durch wie die App, um seine Nachricht<br />

mit einer Checksumme und Verschlüsselung zu übermitteln, wie in Listing 27 gezeigt<br />

wird.<br />

1 if( ndefMessage [0]. Id [0] == 5 && this . currentStage == 5)<br />

2 {<br />

69

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!