From f8a7c0e3e1fb5220d8aad101e5a25144a25a405e Mon Sep 17 00:00:00 2001 From: leslie Date: Thu, 14 May 2009 13:37:27 +0800 Subject: [PATCH] nagra-0101: (temp) fix map 2e/3b/4f (from opensasc) --- systems/nagra/nagra2-0101.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/systems/nagra/nagra2-0101.c b/systems/nagra/nagra2-0101.c index 9bf3a52..0e688dd 100644 --- a/systems/nagra/nagra2-0101.c +++ b/systems/nagra/nagra2-0101.c @@ -244,7 +244,8 @@ bool cMap0101::Map(int f, unsigned char *data, int l) BN_rshift(H,H,64); BN_lshift(H,H,64); BN_add(H,J,H); - BN_rshift(H,H,16); + const int ti=1; + BN_rshift(H,H,ti<<3); BN_copy(J,H); BN_mask_bits(J,64); cycles=864; @@ -317,7 +318,11 @@ bool cMap0101::Map(int f, unsigned char *data, int l) // START INCOMPLETE FIX D.GetLE(data,l<<3); MakeJ0(J,D,C); - MonMul0(C,B,B,C,D,J,0); + BN_rshift(A,A,64); + BN_mask_bits(A,64); + BN_lshift(A,A,64); + BN_add(C,A,C); + //MonMul0(C,B,B,C,D,J,0); // END INCOMPLETE FIX break; case 0x3c: @@ -373,6 +378,11 @@ bool cMap0101::Map(int f, unsigned char *data, int l) // START INCOMPLETE FIX //MakePrime(B,data); BN_copy(D,B); +// END INCOMPLETE FIX + break; + case 0x4f: +// START INCOMPLETE FIX + BN_copy(D,B); // END INCOMPLETE FIX break; case 0x57: @@ -729,6 +739,7 @@ bool cN2Prov0101::ProcessMap(int f) case 0x38: case 0x3a: case 0x43: + case 0x4f: DoMap(f); break; case 0x44: -- 2.39.5