From: leslie Date: Mon, 30 Mar 2009 12:24:18 +0000 (+0800) Subject: nagra-0101: (incomplete) map 22,2e,2f,3a,3d,46 (from opensasc) X-Git-Tag: 0.9.2~45 X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=8778a9c6ac9c5ed9f458b89d14455906e6aa77af;p=sasc-ng.git nagra-0101: (incomplete) map 22,2e,2f,3a,3d,46 (from opensasc) --- diff --git a/systems/nagra/nagra2-0101.c b/systems/nagra/nagra2-0101.c index a72de32..0b5f661 100644 --- a/systems/nagra/nagra2-0101.c +++ b/systems/nagra/nagra2-0101.c @@ -190,6 +190,14 @@ bool cMap0101::Map(int f, unsigned char *data, int l) cycles=898; break; case 0x22: +// START INCOMPLETE FIX + BN_zero(B); + BN_set_bit(B,80); + AddMapCycles(644); + BN_zero(B); + BN_set_bit(B,96); + AddMapCycles(76); +// END INCOMPLETE FIX if(BN_is_zero(D)) { cycles=639-6; break; } l&=0x1fff; BN_one(B); @@ -230,6 +238,27 @@ bool cMap0101::Map(int f, unsigned char *data, int l) BN_zero(C); break; } + case 0x2e: +// START INCOMPLETE FIX + BN_rshift(H,H,64); + BN_lshift(H,H,64); + BN_add(H,J,H); + BN_rshift(H,H,16); + BN_copy(J,H); + BN_mask_bits(J,64); +// END INCOMPLETE FIX + break; + case 0x2F: +// START INCOMPLETE FIX + H.GetLE(data,16); + BN_rshift(H,H,64); + BN_lshift(H,H,64); + BN_add(H,H,J); + BN_rshift(J,H,8); + BN_mask_bits(J,64); + cycles = 808; +// END INCOMPLETE FIX + break; case 0x30: case 0x31: BN_sqr(D,B,ctx); @@ -259,6 +288,15 @@ bool cMap0101::Map(int f, unsigned char *data, int l) AddMapCycles(102); MonFin(B,D); break; + case 0x3a: +// START INCOMPLETE FIX (this map is normaly in nagra2.c) + AddMapCycles(192); + IMonInit(); + MonMul(B,A,B); + //MonMul(B,A,B); + BN_zero(B); +// END INCOMPLETE FIX + break; case 0x3b: AddMapCycles(441); IMakeJ(); @@ -268,6 +306,13 @@ bool cMap0101::Map(int f, unsigned char *data, int l) MonMul(B,I,B,l); cycles=tim3b[wordsize-1][l-1]-6; break; + case 0x3d: +// START INCOMPLETE FIX + D.GetLE(data,l<<3); + MakeJ0(J,D,C); + MonMul0(C,B,B,C,D,J,0); +// END INCOMPLETE FIX + break; case 0x3c: case 0x3e: { @@ -297,6 +342,16 @@ bool cMap0101::Map(int f, unsigned char *data, int l) for(int i=0; i