получение мастер-ключа и соли из SIP SDP с помощью Convert.FromBase64String - PullRequest
0 голосов
/ 18 июля 2011

У меня есть приложение для расшифровки медиапакетов. мне нужно предоставить мастер-ключ и солевой ключ.

мой SDP предоставит мне (после окончания переговоров) AES_CM_128_HMAC_SHA1_80 встроенный: Fu8vxnU4x1fcCzbhNrtDV0eq4RnaK4n2 / jarOigZ

в соответствии с SDP rfc строка после "inline:": "сцепленный главный ключ и соль, закодированный base64" когда главный ключ - X байтов, а соль - Y байтов.

Я набираюсь:

byte[] masterAndSalt = Convert.FromBase64String("Fu8vxnU4x1fcCzbhNrtDV0eq4RnaK4n2/jarOigZ")

и затем получите первые x байтов для мастера, а другой Y для соли.

но мое приложение говорит, что мои ключи неверны, я не понимаю - я должен использовать что-то еще, кроме Convert.FromBase64String?

1 Ответ

2 голосов
/ 25 августа 2011

ОК, я правильно понял.в шифре AES_CM_128_HMAC_SHA1_80 главный ключ имеет длину 16 байт, а длина соли - 14 байт.

Что нужно сделать, это использовать Convert.FromBase64String для ключа, который создал массив длиной 30 байт, взять первыекак мастер, а последние 14 как соль.

алгоритм дешифрования должен получить ключ сеанса и соль из него (вместе с другой информацией).

...