mirror of https://github.com/PentHertz/liba53.git
28 lines
569 B
C++
28 lines
569 B
C++
#include "a53.h"
|
|
#include "a5.h"
|
|
#include <stdio.h>
|
|
|
|
void A53_GSM( u8 *key, int klen, int count, u8 *block1, u8 *block2 )
|
|
{
|
|
ubit_t dl[120];
|
|
ubit_t ul[120];
|
|
static bool first = true;
|
|
if (first) {
|
|
printf("public A5/3\n");
|
|
first = false;
|
|
}
|
|
osmo_a5_3(key, (uint32_t)count, dl, ul);
|
|
for (int i = 0; i < 15; i++) {
|
|
unsigned char acc1 = 0;
|
|
unsigned char acc2 = 0;
|
|
for (int j = 0; j < 8; j++) {
|
|
acc1 |= (dl[i*8+j] & 1) << (7-j);
|
|
acc2 |= (ul[i*8+j] & 1) << (7-j);
|
|
}
|
|
block1[i] = acc1;
|
|
block2[i] = acc2;
|
|
}
|
|
block1[14] &= 0xC0;
|
|
block2[14] &= 0xC0;
|
|
}
|