Skip to content

Instantly share code, notes, and snippets.

@62mkv
Created October 11, 2016 05:01
Show Gist options
  • Save 62mkv/1e04a7c13b0bfe99ae7280adca3e494d to your computer and use it in GitHub Desktop.
Save 62mkv/1e04a7c13b0bfe99ae7280adca3e494d to your computer and use it in GitHub Desktop.
Python script to calculate SIP REGISTER Digest authentication (in order to check password validity)
from md5 import md5
# header from 401 response on REGISTER
# Authorization: Digest username="883140776410950", realm="gw_youmagic", algorithm=MD5, uri="sip:GW_Youmagic", nonce="1476157437:0a1418a40f8ee1c9a55f1587ab931c14", response="3ff479ccc24874f66aae45dac889d099"
login = '883140776410950'
uri = 'sip:GW_Youmagic'
nonce = '1476157437:0a1418a40f8ee1c9a55f1587ab931c14'
realm = 'gw_youmagic'
password = '----------'
str1 = md5("{}:{}:{}".format(login,realm,password)).hexdigest()
str2 = md5("REGISTER:{}".format(uri)).hexdigest()
str3 = md5("{}:{}:{}".format(str1,nonce,str2)).hexdigest()
print str3
@beneditomarques
Copy link

How can I calculate this, when the authenticate header comes with "qop", "cnonce", "opaque" and "nc" parameters? applying this scripts in this kind of headers, the response is not correct.

@62mkv
Copy link
Author

62mkv commented Dec 10, 2021

I have no idea :) this is something I've put here for myself as a quick hack to validate signature and probably only ever used once. feel free to expand as you wish

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment