MCPcopy Create free account
hub / github.com/SIPp/sipp / deriveSessionSaltingKey

Method deriveSessionSaltingKey

src/jlsrtp.cpp:1455–1530  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1453}
1454
1455int JLSRTP::deriveSessionSaltingKey()
1456{
1457 std::vector<unsigned char> input_vector; // Input vector (built from applicable keyid_XXXs)
1458 std::vector<unsigned char> keyid_salting;
1459 unsigned int saltSize = 0;
1460 int retVal = -1;
1461
1462 switch (_active_crypto)
1463 {
1464 case PRIMARY_CRYPTO:
1465 {
1466 saltSize = _primary_crypto.master_salt.size();
1467 assert(saltSize == JLSRTP_SALTING_KEY_LENGTH);
1468 if (saltSize == JLSRTP_SALTING_KEY_LENGTH)
1469 {
1470 input_vector.clear();
1471
1472 keyid_salting.clear();
1473 keyid_salting.resize(7);
1474 keyid_salting.push_back(JLSRTP_KEY_SALTING_LABEL);
1475 keyid_salting.push_back(0x00);
1476 keyid_salting.push_back(0x00);
1477 keyid_salting.push_back(0x00);
1478 keyid_salting.push_back(0x00);
1479 keyid_salting.push_back(0x00);
1480 keyid_salting.push_back(0x00);
1481
1482 xorVector(keyid_salting, _primary_crypto.master_salt, input_vector);
1483
1484 retVal = pseudorandomFunction(input_vector, 112, _session_salt_key);
1485 }
1486 else
1487 {
1488 retVal = -1;
1489 }
1490 }
1491 break;
1492
1493 case SECONDARY_CRYPTO:
1494 {
1495 saltSize = _secondary_crypto.master_salt.size();
1496 assert(saltSize == JLSRTP_SALTING_KEY_LENGTH);
1497 if (saltSize == JLSRTP_SALTING_KEY_LENGTH)
1498 {
1499 input_vector.clear();
1500
1501 keyid_salting.clear();
1502 keyid_salting.resize(7);
1503 keyid_salting.push_back(JLSRTP_KEY_SALTING_LABEL);
1504 keyid_salting.push_back(0x00);
1505 keyid_salting.push_back(0x00);
1506 keyid_salting.push_back(0x00);
1507 keyid_salting.push_back(0x00);
1508 keyid_salting.push_back(0x00);
1509 keyid_salting.push_back(0x00);
1510
1511 xorVector(keyid_salting, _secondary_crypto.master_salt, input_vector);
1512

Callers 1

executeActionMethod · 0.80

Calls 1

sizeMethod · 0.80

Tested by

no test coverage detected