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 />

1 public byte [] GetOriginalData ( byte [] bytesWithChecksum )<br />

2 {<br />

3 int checksumLength = ( int ) bytesWithChecksum .<br />

LastOrDefault ();<br />

4 int dataLength = bytesWithChecksum . Length -<br />

checksumLength - 1;<br />

5<br />

6 byte [] data = new byte [ dataLength ];<br />

7 for ( int i = 0; i < dataLength ; i ++)<br />

8 {<br />

9 data [i] = bytesWithChecksum [i];<br />

10 }<br />

11<br />

12 return data ;<br />

13 }<br />

Listing 24: Funktionsweise der GetOriginalData() Methode.<br />

Nachdem die App die Nachricht mit der Sequenznummer 4 vom Reader erhalten hat<br />

und die digitale Signatur vom Reader erfolgreich auf Gültigkeit überprüft werden konnte,<br />

überträgt die App eine AES-verschlüsselte Nachricht an den Reader. Welche Schritte<br />

dabei durchgeführt werden müssen, wird in Listing 25 gezeigt.<br />

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

2 {<br />

3 this . readerSignature = ndefMessage [0]. Payload ;<br />

4<br />

5 bool isValid = this . readerRsa . VerifyData ( this .<br />

readerTeilgeheimnis , new SHA256Managed () , this .<br />

readerSignature );<br />

6 if( isValid )<br />

7 {<br />

8 this . secretKey = this . ecdh . GetSecretKey ( this<br />

. readerTeilgeheimnis );<br />

9 this . aes = new Aes ( this . secretKey .<br />

ToByteArray ());<br />

10<br />

11 // ...<br />

12<br />

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

14 byte [] dataWithChecksum = c.<br />

GetBytesWithChecksum (" Encrypted Hello<br />

from App !");<br />

15 byte [] encryptedMessage = this . aes . Encrypt (<br />

dataWithChecksum );<br />

67

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!