PDF 941kB - Hochschule Ulm
PDF 941kB - Hochschule Ulm
PDF 941kB - Hochschule Ulm
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