Commit 8b37a2bc authored by aligungr's avatar aligungr

UE authentication procedure improvements

parent c50e6308
......@@ -147,4 +147,11 @@ OctetString DeriveAmfPrimeInMobility(bool isUplink, const NasCount &count, const
return crypto::CalculateKdfKey(kAmf, 0x72, params, 2);
}
OctetString CalculateAuts(const OctetString &sqn, const OctetString &ak, const OctetString &macS)
{
OctetString auts = OctetString::Xor(sqn, ak);
auts.append(macS);
return auts;
}
} // namespace nr::ue::keys
\ No newline at end of file
......@@ -71,4 +71,9 @@ OctetString CalculateKAusfForEapAkaPrime(const OctetString &mk);
OctetString CalculateResStar(const OctetString &key, const std::string &snn, const OctetString &rand,
const OctetString &res);
} // namespace nr::ue::keys
\ No newline at end of file
/*
* Calculates AUTS according to the given parameters
*/
OctetString CalculateAuts(const OctetString &sqn, const OctetString &ak, const OctetString &macS);
} // namespace nr::ue::keys
......@@ -304,6 +304,7 @@ void NasMm::receiveAuthenticationRequest5gAka(const nas::AuthenticationRequest &
auto ckIk = OctetString::Concat(ck, ik);
auto &milenageAk = milenage.ak;
auto &milenageMac = milenage.mac_a;
auto &milenageMacS = milenage.mac_s;
auto sqnXorAk = OctetString::Xor(m_usim->m_sqn, milenageAk);
auto snn = keys::ConstructServingNetworkName(*m_usim->m_currentPlmn);
......@@ -337,7 +338,7 @@ void NasMm::receiveAuthenticationRequest5gAka(const nas::AuthenticationRequest &
}
else if (autnCheck == EAutnValidationRes::SYNCHRONISATION_FAILURE)
{
sendFailure(nas::EMmCause::SYNCH_FAILURE);
sendFailure(nas::EMmCause::SYNCH_FAILURE, keys::CalculateAuts(m_usim->m_sqn, milenageAk, milenageMacS));
}
else
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment