06.11.2014 Views

A User Centric Security Model for Tamper-Resistant Devices

A User Centric Security Model for Tamper-Resistant Devices

A User Centric Security Model for Tamper-Resistant Devices

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C.9 Plat<strong>for</strong>m Binding Protocol<br />

501 phMacGenerator . i n i t ( sessionGenKey , S i g n a t u r e .MODE_SIGN,<br />

502 I n i t i a l i s a t i o n V e c t o r , ( short ) 0 , ( short )<br />

503 I n i t i a l i s a t i o n V e c t o r . l e n g t h ) ;<br />

504 phMacGenerator . s i g n ( keyGenMacData , ( short ) 0 , ( short )<br />

505 keyGenMacData . length , SCBSCADHGeneratedValue ,<br />

506 ( short ) 0) ;<br />

507 this . phMacGeneratorKey . setKey ( SCBSCADHGeneratedValue , ( short ) 0) ;<br />

508 SCBSCADHGeneratedValue = null ;<br />

509 JCSystem . r e q u e s t O b j e c t D e l e t i o n ( ) ;<br />

510 }<br />

511 void messageEncryption ( byte [ ] i n b u f f , short i n b u f f O f f s e t , short<br />

512 inbuffLength ) {<br />

513 syCipher . i n i t ( phCipherKey , Cipher .MODE_ENCRYPT,<br />

514 I n i t i a l i s a t i o n V e c t o r , ( short ) 0 , ( short )<br />

515 I n i t i a l i s a t i o n V e c t o r . l e n g t h ) ;<br />

516 this . shortToBytes ( i n b u f f , ( short ) ( i n b u f f O f f s e t − 3) , ( short )<br />

517 syCipher . doFinal ( i n b u f f , i n b u f f O f f s e t ,<br />

518 inbuffLength , i n b u f f , i n b u f f O f f s e t ) ) ;<br />

519 }<br />

520 void phDecryption ( byte [ ] i n b u f f , short i n b u f f O f f s e t , short<br />

521 inbuffLength ) {<br />

522 syCipher . i n i t ( phCipherKey , Cipher .MODE_DECRYPT,<br />

523 I n i t i a l i s a t i o n V e c t o r , ( short ) 0 , ( short )<br />

524 I n i t i a l i s a t i o n V e c t o r . l e n g t h ) ;<br />

525 syCipher . doFinal ( i n b u f f , i n b u f f O f f s e t , inbuffLength , i n b u f f ,<br />

526 i n b u f f O f f s e t ) ;<br />

527 }<br />

528 boolean macGenerate ( byte [ ] i n b u f f , short i n b u f f O f f s e t , short<br />

529 inbuffLength , short macMode) {<br />

530 i f (macMode == S i g n a t u r e .MODE_SIGN) {<br />

531 phMacGenerator . i n i t ( phMacGeneratorKey , S i g n a t u r e .MODE_SIGN,<br />

532 I n i t i a l i s a t i o n V e c t o r , ( short ) 0 , ( short )<br />

533 I n i t i a l i s a t i o n V e c t o r . l e n g t h ) ;<br />

534 try {<br />

535 copyPointer = U t i l . arrayCopyNonAtomic ( this . MACedDataTag ,<br />

536 ( short ) 0 , this . r e c e i v i n g B u f f e r , copyPointer , ( short )<br />

537 this . MACedDataTag . l e n g t h ) ;<br />

538 copyPointer += 2 ;<br />

539 } catch ( Exception ce ) {<br />

540 ISOException . throwIt ( ( short ) 0xFA17) ;<br />

541 }<br />

542 try {<br />

543 short l e n g t h = ( short ) phMacGenerator . s i g n<br />

544 ( this . r e c e i v i n g B u f f e r , i n b u f f O f f s e t ,<br />

545 inbuffLength , i n b u f f , copyPointer ) ;<br />

546 this . shortToBytes ( i n b u f f , ( short ) ( copyPointer − ( short ) 2) ,<br />

547 l e n g t h ) ;<br />

548 copyPointer += l e n g t h ;<br />

549 } catch ( Exception ce ) {<br />

550 ISOException . throwIt ( ( short ) 0 x0987 ) ;<br />

551 }<br />

428

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!