OsmoMSC doesn't check if CIPHER MODE COMPLETE contains cipher that matches REQUEST
When the MSC requests a cipher from a set of ciphers as stated in the BSSMAP CIPHER MODE REQUEST, we should check if the (bsc-)chosen cipher actually is within that set.
Care must be taken as the 'chosen algorithm' IE is optional.
A corresponding TTCN-3 test case should be developed, trying to COMPLETE with a cipher that's not in the set of those REQUESTed
This proposed patch adds a TTCN3 test for this issue:
At present the MSC responds with a LU reject after receiving a CIPHER MODE COMPLETE with an invalid cipher.
The test looks for this LU reject and passes when it is received.
Is this the correct behaviour? Should the MSC respond in some other way?
this issue says that osmo-msc should check that the cipher matches the request,
and the issue implies that osmo-msc doesn't check that.
If it turns out that osmo-msc does indeed reject a mismatch already, that's nice.
How about the side thing there, if the chosen algorithm is not provided in the response?
I guess osmo-msc should accept then. Does it? (If they mismatch then, the ciphered data will not be decipherable anyway.)
Maybe duplicate the test for that situation.
See https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/12347 for additional tests,
and https://gerrit.osmocom.org/c/osmo-msc/+/12349 for related osmo-msc changes.
The tests are not complete yet -- they pass both with and without the osmo-msc changes
because they don't verify which cipher the MSC really ends up using. Could you suggest
a good way of doing that?