diff options
author | ptrkrysik <ptrkrysik@gmail.com> | 2015-02-07 19:51:03 +0100 |
---|---|---|
committer | ptrkrysik <ptrkrysik@gmail.com> | 2015-02-07 19:51:03 +0100 |
commit | 4739c94cfc20cf6f067447005745d84e303cb119 (patch) | |
tree | fb80b49060854bd974e874186c1e27bafea10965 /lib/decryption | |
parent | d8d4fbc6afd13efab40d284999d9dd1ce9624746 (diff) |
DECRYPTION NOW WORKS! (Corrected decryption block)
Diffstat (limited to 'lib/decryption')
-rw-r--r-- | lib/decryption/decryption_impl.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/decryption/decryption_impl.cc b/lib/decryption/decryption_impl.cc index 60409c7..ecf97ce 100644 --- a/lib/decryption/decryption_impl.cc +++ b/lib/decryption/decryption_impl.cc @@ -27,6 +27,8 @@ #include <grgsm/gsmtap.h> #include "decryption_impl.h" #include "a5_1_2.h" +#include "stdio.h"//!! +#include <algorithm>//!! const uint32_t BURST_SIZE=148; @@ -80,16 +82,16 @@ namespace gr { } else { uint8_t decrypted_data[BURST_SIZE]; - uint8_t AtoBkeystream[15]; - uint8_t BtoAkeystream[15]; + uint8_t AtoBkeystream[114]; + uint8_t BtoAkeystream[114]; uint8_t * keystream; pmt::pmt_t header_plus_burst = pmt::cdr(msg); gsmtap_hdr * header = (gsmtap_hdr *)pmt::blob_data(header_plus_burst); uint8_t * burst_binary = (uint8_t *)(pmt::blob_data(header_plus_burst))+sizeof(gsmtap_hdr); - uint32_t frame_number = be32toh(header->frame_number) & 0x3fff; - bool uplink_burst = (be32toh(header->frame_number) & 0x4000) ? true : false; + uint32_t frame_number = be32toh(header->frame_number); + bool uplink_burst = (be16toh(header->arfcn) & 0x4000) ? true : false; uint32_t t1 = frame_number / (26*51); uint32_t t2 = frame_number % 26; uint32_t t3 = frame_number % 51; |