Fix RC4 'Pop' on DMR when VC6 is Null; Fix Align;
This commit is contained in:
parent
15a12acfd3
commit
b6a12b6ceb
|
|
@ -1606,7 +1606,7 @@ getFrameSync (dsd_opts * opts, dsd_state * state)
|
||||||
if ((opts->errorbars == 1) && (opts->verbose > 1) && (state->carrier == 1))
|
if ((opts->errorbars == 1) && (opts->verbose > 1) && (state->carrier == 1))
|
||||||
{
|
{
|
||||||
fprintf (stderr,"Sync: no sync\n");
|
fprintf (stderr,"Sync: no sync\n");
|
||||||
fprintf (stderr,"Press CTRL + C to close.\n");
|
// fprintf (stderr,"Press CTRL + C to close.\n");
|
||||||
|
|
||||||
}
|
}
|
||||||
noCarrier (opts, state);
|
noCarrier (opts, state);
|
||||||
|
|
|
||||||
|
|
@ -17,16 +17,17 @@
|
||||||
|
|
||||||
#include "dsd.h"
|
#include "dsd.h"
|
||||||
|
|
||||||
//test for potential clashing with other key loading mechanisms (bp key loading on tgid, nxdn key loading, etc)
|
//NOTE: I attempted to fix the atrocious tab/space alignnment issues that happened in this file,
|
||||||
|
//it looks fine in VSCodium, but no telling how it will translate when pushed to Github or another editor
|
||||||
|
|
||||||
void keyring(dsd_opts * opts, dsd_state * state)
|
void keyring(dsd_opts * opts, dsd_state * state)
|
||||||
{
|
{
|
||||||
//keys now loaded from csv files with the -K key.csv file (capital K)
|
|
||||||
if (state->currentslot == 0)
|
if (state->currentslot == 0)
|
||||||
state->R = state->rkey_array[state->payload_keyid];
|
state->R = state->rkey_array[state->payload_keyid];
|
||||||
|
|
||||||
if (state->currentslot == 1)
|
if (state->currentslot == 1)
|
||||||
state->RR = state->rkey_array[state->payload_keyidR];
|
state->RR = state->rkey_array[state->payload_keyidR];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RC4(int drop, uint8_t keylength, uint8_t messagelength, uint8_t key[], uint8_t cipher[], uint8_t plain[])
|
void RC4(int drop, uint8_t keylength, uint8_t messagelength, uint8_t key[], uint8_t cipher[], uint8_t plain[])
|
||||||
|
|
@ -132,9 +133,7 @@ void playMbeFiles (dsd_opts * opts, dsd_state * state, int argc, char **argv)
|
||||||
|
|
||||||
if (opts->audio_out == 1)
|
if (opts->audio_out == 1)
|
||||||
{
|
{
|
||||||
|
|
||||||
playSynthesizedVoice (opts, state);
|
playSynthesizedVoice (opts, state);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (state->mbe_file_type > 0) //ambe files
|
else if (state->mbe_file_type > 0) //ambe files
|
||||||
|
|
@ -572,7 +571,14 @@ processMbeFrame (dsd_opts * opts, dsd_state * state, char imbe_fr[8][23], char a
|
||||||
cipher[o] = b;
|
cipher[o] = b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//only run keystream application if errs < 3 -- this is a fix to the pop sound
|
||||||
|
//that may occur on some systems that preempt VC6 voice for a RC opportuninity (TXI)
|
||||||
|
//this occurs because we are supposed to either have a a 'repeat' frame, or 'silent' frame play
|
||||||
|
//due to the error, but the keystream application makes it random 'pfft pop' sound instead
|
||||||
|
if (state->errs < 3)
|
||||||
RC4(state->dropL, 9, 7, rckey, cipher, plain);
|
RC4(state->dropL, 9, 7, rckey, cipher, plain);
|
||||||
|
else memcpy (plain, cipher, sizeof(plain));
|
||||||
|
|
||||||
state->dropL += 7;
|
state->dropL += 7;
|
||||||
|
|
||||||
short z = 0;
|
short z = 0;
|
||||||
|
|
@ -851,7 +857,13 @@ processMbeFrame (dsd_opts * opts, dsd_state * state, char imbe_fr[8][23], char a
|
||||||
cipher[o] = b;
|
cipher[o] = b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//only run keystream application if errs < 3 -- this is a fix to the pop sound
|
||||||
|
//that may occur on some systems that preempt VC6 voice for a RC opportuninity (TXI)
|
||||||
|
//this occurs because we are supposed to either have a a 'repeat' frame, or 'silent' frame play
|
||||||
|
//due to the error, but the keystream application makes it random 'pfft pop' sound instead
|
||||||
|
if (state->errsR < 3)
|
||||||
RC4(state->dropR, 9, 7, rckey, cipher, plain);
|
RC4(state->dropR, 9, 7, rckey, cipher, plain);
|
||||||
|
else memcpy (plain, cipher, sizeof(plain));
|
||||||
state->dropR += 7;
|
state->dropR += 7;
|
||||||
|
|
||||||
short z = 0;
|
short z = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue