Setting Digest-HA1 AVP in MAA(Diameter) using Seagull

222 Views Asked by At

I was trying to use Seagull as a Diameter server for Cx interface. In response to a MAR request, the script needs to send a MAA response with “Digest-HA1” AVP (part of the grouped SIP-Digest-Authenticate AVP, which in turn is part of the SIP-Auth-Data-Item AVP) that contains H(A1). The Diameter Client(CSM) can use H(A1) to calculate the expected Digest response, according to this challenge.

Based on Seagull Documentation, I tried both ways i.e. SIP authentication and Radius authentication, but couldn’t succeed in getting HA1 calculated as expected.

When I tried the SIP Authentication way as below in my scenario file, it threw “2021-10-21.07:20:19.790|T|E_ACTION_SCEN_SET_VALUE_METHOD_EXTERN: problem when using external method (md5 or AKA)” error.

<set-value name="Digest-HA1" method="authenticationSip" 
                           format="username=alice;password=12345;auth=Digest realm=\"open-ims.test\", algorithm=MD5;method=REGISTER;uri=sip:testuri.com"></set-value>

When I tried the Radius Authentication way as below in my scenario file, I see junk value being set for Digest-HA1 AVP.

<set-value name="Digest-HA1" method="authenticationRadius" message_part="all" 
format="[email protected]:open-ims.test:12345"></set-value>
     

Digest-HA1 AVP filled with junk value in MAA response

AVP: Digest-HA1(121) l=24 f=-M- val=a\024\r\030�,����.�\032��\b
    AVP Code: 121 Digest-HA1
    AVP Flags: 0x40, Mandatory: Set
    AVP Length: 24
    Digest-HA1: a\024\r\030�,����.�\032��\b

I tried few combinations like hard coding few/all parameters, reading from previous message with the action “store” etc. but couldn’t succeed. Attaching scenario/dictionary files for your reference.

Can you please suggest if you are aware of any method (like crypto_method_radius for Radius Auth) which I can use to set Digest-HA1 AVP. Thanks in advance.

1

There are 1 best solutions below

0
Agnivesh On

Downloaded source code and enhanced support for Diameter authentication via external-method functionality similar to SIP/Radius authentication. Seagull by default doesn't have support for Diameter Authentication.