]> www.vanbest.org Git - sasc-ng.git/commitdiff
nagra 0101: update BEV Algo
authoranisota <unknown>
Thu, 24 Jan 2008 21:43:08 +0000 (22:43 +0100)
committeranisota <unknown>
Thu, 24 Jan 2008 21:43:08 +0000 (22:43 +0100)
systems/nagra/nagra2-0101.c
systems/nagra/nagra2.c

index 0a999d2798f5dc278623652ba0da54ba1f17d6d5..dc247c1c4b81d971017be4d1f7fa49db5279cc48 100644 (file)
@@ -619,6 +619,7 @@ bool cN2Prov0101::Algo(int algo, const unsigned char *hd, unsigned char *hw)
   SetSp(0x0FFF,0x0EF8);
   ClearBreakpoints();
   SetMem(0x0100,mecmCode+8,0x100-8);
+  SetMem(0xa00,hd,seedSize);
   SetMem(0x0ba2,hw,0x80);
   AddBreakpoint(0x0000);
   AddRomCallbacks();
@@ -765,6 +766,19 @@ bool cN2Prov0101::ProcessMap(int f)
       DoMap(f,tmp,Get(0x48));
       AddCycles(MapCycles());
       break;
+    case 0x43:
+      DoMap(f);
+      break;
+    case 0x44:
+      GetMem(0x400,tmp,64,0);
+      DoMap(f,tmp);
+      SetMem(0x440,tmp,20,0);
+      break;
+    case 0x45:
+      GetMem(0x400,tmp,64,0);
+      DoMap(f,tmp,Get(0x48));
+      SetMem(0x440,tmp,20,0);
+      break; 
     case 0x4d:
       DoMap(f,tmp,-((Get(0x48)<<16)|(Get(0x49)<<8)|Get(0x4a)));
       SetMem(0x400,tmp,53,0);
index 5a474885486e4d91174fdaea20137513f9d443be..4b9a81fda7c077597cf13f83da13a6abbfbee262 100644 (file)
@@ -532,12 +532,12 @@ bool cMapCore::DoMap(int f, unsigned char *data, int l)
       BYTE4_LE(data+16,sctx.h0);
       break;
     case 0x45: // add wordsize bytes to SHA1 buffer and finalize SHA result
-      if(wordsize) {
-        if(wordsize>1) RotateBytes(data,wordsize);
-        SHA1_Update(&sctx,data,wordsize);
+      if(dl) {
+        if(dl>1) RotateBytes(data,dl);
+        SHA1_Update(&sctx,data,dl);
         }
-      memset(data,0,64);
-      SHA1_Final(data+64,&sctx);
+      SHA1_Final(data,&sctx);
+      RotateBytes(data,20);
       break;
     default:
       return false;