使用 Convert.FromBase64String 从 SIP SDP 检索主密钥和盐
我有一个解密媒体数据包的应用程序。 它需要我提供主密钥和盐密钥。
我的 SDP 为我提供(谈判结束后) AES_CM_128_HMAC_SHA1_80 inline:Fu8vxnU4x1fcCzbhNrtDV0eq4RnaK4n2/jarOigZ
根据 SDP rfc “inline:”之后的字符串是: “连接主密钥和盐,base64 编码” 当主密钥是 X 字节并且盐是 Y 字节时。
我正在努力:
byte[] masterAndSalt = Convert.FromBase64String("Fu8vxnU4x1fcCzbhNrtDV0eq4RnaK4n2/jarOigZ")
然后将前 x 个字节发送给 master,将另一个 Y 发送给 salt。
但我的应用程序说我的密钥错误,我不明白 - 我应该使用 Convert.FromBase64String 以外的其他密钥吗?
I have an application to decrypt media packets.
it require me to provide Master key and salt key.
my SDP provide me (after negotiation ended) with
AES_CM_128_HMAC_SHA1_80 inline:Fu8vxnU4x1fcCzbhNrtDV0eq4RnaK4n2/jarOigZ
according to SDP rfc the string after the "inline:" is:
"concatenated master key and salt, base64 encoded"
when the master key is X bytes and the salt is Y bytes.
I am tyring :
byte[] masterAndSalt = Convert.FromBase64String("Fu8vxnU4x1fcCzbhNrtDV0eq4RnaK4n2/jarOigZ")
and then get the first x bytes to the master and the other Y for salt.
but my app says my keys are wrong, i don't understand - should i use some else than Convert.FromBase64String ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,我猜对了。
在 AES_CM_128_HMAC_SHA1_80 密码上,主密钥为 16 字节,盐为 14 字节长。
应该做的是在键上使用 Convert.FromBase64String ,
它产生了一个30字节长的数组,将前16个作为master,最后14个作为salt。
解密算法应该生成会话密钥和盐(以及其他信息)。
OK, i got it right.
on AES_CM_128_HMAC_SHA1_80 cipher the Master key is 16 byte, and the salt is 14 byte long.
what should be done is to use Convert.FromBase64String on the key,
which produced a 30 byte long array, take the first 16 as master, and the last 14 as salt.
the decryption algorithm should produce the session key and salt from it (along with other info).