mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-11-11 20:17:05 +00:00
update libsrtp to use openssl
This commit is contained in:
1 parent
365f81b412
commit
80c7eb85e6
36 files changed
+3541
-197
No files matched your search
@@ -32,10 +32,14 @@ err_check(err_status_t s) {
|
||||
|
||||
int
|
||||
main (int argc, char *argv[]) {
|
||||
uint8_t buffer[2500];
|
||||
uint8_t buffer[2532];
|
||||
unsigned int buf_len = 2500;
|
||||
int i, j;
|
||||
extern cipher_type_t aes_icm;
|
||||
#ifdef OPENSSL
|
||||
extern cipher_type_t aes_gcm_128_openssl;
|
||||
extern cipher_type_t aes_gcm_256_openssl;
|
||||
#endif
|
||||
cipher_t *c;
|
||||
uint8_t key[46] = {
|
||||
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
|
||||
@@ -73,8 +77,8 @@ main (int argc, char *argv[]) {
|
||||
for (i=0; i < 2500; i++)
|
||||
buffer[i] = 0;
|
||||
err_check(cipher_type_alloc(&aes_icm, &c, 30));
|
||||
err_check(cipher_init(c, key, direction_encrypt));
|
||||
err_check(cipher_set_iv(c, &nonce));
|
||||
err_check(cipher_init(c, key));
|
||||
err_check(cipher_set_iv(c, &nonce, direction_encrypt));
|
||||
err_check(cipher_encrypt(c, buffer, &buf_len));
|
||||
/* run tests on cipher outout */
|
||||
printf("monobit %d\n", stat_test_monobit(buffer));
|
||||
@@ -89,7 +93,7 @@ main (int argc, char *argv[]) {
|
||||
for (i=0; i < 2500; i++)
|
||||
buffer[i] = 0;
|
||||
nonce.v32[3] = i;
|
||||
err_check(cipher_set_iv(c, &nonce));
|
||||
err_check(cipher_set_iv(c, &nonce, direction_encrypt));
|
||||
err_check(cipher_encrypt(c, buffer, &buf_len));
|
||||
if (stat_test_runs(buffer)) {
|
||||
num_fail++;
|
||||
@@ -107,8 +111,8 @@ main (int argc, char *argv[]) {
|
||||
for (i=0; i < 2500; i++)
|
||||
buffer[i] = 0;
|
||||
err_check(cipher_type_alloc(&aes_icm, &c, 46));
|
||||
err_check(cipher_init(c, key, direction_encrypt));
|
||||
err_check(cipher_set_iv(c, &nonce));
|
||||
err_check(cipher_init(c, key));
|
||||
err_check(cipher_set_iv(c, &nonce, direction_encrypt));
|
||||
err_check(cipher_encrypt(c, buffer, &buf_len));
|
||||
/* run tests on cipher outout */
|
||||
printf("monobit %d\n", stat_test_monobit(buffer));
|
||||
@@ -123,13 +127,75 @@ main (int argc, char *argv[]) {
|
||||
for (i=0; i < 2500; i++)
|
||||
buffer[i] = 0;
|
||||
nonce.v32[3] = i;
|
||||
err_check(cipher_set_iv(c, &nonce));
|
||||
err_check(cipher_set_iv(c, &nonce, direction_encrypt));
|
||||
err_check(cipher_encrypt(c, buffer, &buf_len));
|
||||
if (stat_test_runs(buffer)) {
|
||||
num_fail++;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef OPENSSL
|
||||
{
|
||||
printf("running stat_tests on AES-128-GCM, expecting success\n");
|
||||
/* set buffer to cipher output */
|
||||
for (i=0; i < 2500; i++) {
|
||||
buffer[i] = 0;
|
||||
}
|
||||
err_check(cipher_type_alloc(&aes_gcm_128_openssl, &c, 30));
|
||||
err_check(cipher_init(c, key));
|
||||
err_check(cipher_set_iv(c, &nonce, direction_encrypt));
|
||||
err_check(cipher_encrypt(c, buffer, &buf_len));
|
||||
/* run tests on cipher outout */
|
||||
printf("monobit %d\n", stat_test_monobit(buffer));
|
||||
printf("poker %d\n", stat_test_poker(buffer));
|
||||
printf("runs %d\n", stat_test_runs(buffer));
|
||||
fflush(stdout);
|
||||
num_fail = 0;
|
||||
v128_set_to_zero(&nonce);
|
||||
for(j=0; j < num_trials; j++) {
|
||||
for (i=0; i < 2500; i++) {
|
||||
buffer[i] = 0;
|
||||
}
|
||||
nonce.v32[3] = i;
|
||||
err_check(cipher_set_iv(c, &nonce, direction_encrypt));
|
||||
err_check(cipher_encrypt(c, buffer, &buf_len));
|
||||
buf_len = 2500;
|
||||
if (stat_test_runs(buffer)) {
|
||||
num_fail++;
|
||||
}
|
||||
}
|
||||
|
||||
printf("running stat_tests on AES-256-GCM, expecting success\n");
|
||||
/* set buffer to cipher output */
|
||||
for (i=0; i < 2500; i++) {
|
||||
buffer[i] = 0;
|
||||
}
|
||||
err_check(cipher_type_alloc(&aes_gcm_256_openssl, &c, 46));
|
||||
err_check(cipher_init(c, key));
|
||||
err_check(cipher_set_iv(c, &nonce, direction_encrypt));
|
||||
err_check(cipher_encrypt(c, buffer, &buf_len));
|
||||
/* run tests on cipher outout */
|
||||
printf("monobit %d\n", stat_test_monobit(buffer));
|
||||
printf("poker %d\n", stat_test_poker(buffer));
|
||||
printf("runs %d\n", stat_test_runs(buffer));
|
||||
fflush(stdout);
|
||||
num_fail = 0;
|
||||
v128_set_to_zero(&nonce);
|
||||
for(j=0; j < num_trials; j++) {
|
||||
for (i=0; i < 2500; i++) {
|
||||
buffer[i] = 0;
|
||||
}
|
||||
nonce.v32[3] = i;
|
||||
err_check(cipher_set_iv(c, &nonce, direction_encrypt));
|
||||
err_check(cipher_encrypt(c, buffer, &buf_len));
|
||||
buf_len = 2500;
|
||||
if (stat_test_runs(buffer)) {
|
||||
num_fail++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
printf("%d failures in %d tests\n", num_fail, num_trials);
|
||||
printf("(nota bene: a small fraction of stat_test failures does not \n"
|
||||
"indicate that the random source is invalid)\n");
|
||||
|
||||
Reference in new issue
Block a user