Module: kamailio Branch: master Commit: 090a1903a3f8cc0fc4789fdd75405d5eed92a2e7 URL: https://github.com/kamailio/kamailio/commit/090a1903a3f8cc0fc4789fdd75405d5eed92a2e7
Author: Daniel-Constantin Mierla <[email protected]> Committer: Daniel-Constantin Mierla <[email protected]> Date: 2026-05-06T09:50:05+02:00 core: parser/digest - extended for sha hashing algoritms --- Modified: src/core/parser/digest/digest.c Modified: src/core/parser/digest/digest_parser.c Modified: src/core/parser/digest/digest_parser.h --- Diff: https://github.com/kamailio/kamailio/commit/090a1903a3f8cc0fc4789fdd75405d5eed92a2e7.diff Patch: https://github.com/kamailio/kamailio/commit/090a1903a3f8cc0fc4789fdd75405d5eed92a2e7.patch --- diff --git a/src/core/parser/digest/digest.c b/src/core/parser/digest/digest.c index 7e7deda2fa7..8bd0a692384 100644 --- a/src/core/parser/digest/digest.c +++ b/src/core/parser/digest/digest.c @@ -185,6 +185,24 @@ void print_cred(dig_cred_t *_c) case ALG_MD5SESS: printf("ALG_MD5SESS\n"); break; + case ALG_SHA256: + printf("ALG_SHA256\n"); + break; + case ALG_SHA256SESS: + printf("ALG_SHA256SESS\n"); + break; + case ALG_SHA512: + printf("ALG_SHA512\n"); + break; + case ALG_SHA512SESS: + printf("ALG_SHA512SESS\n"); + break; + case ALG_SHA512_256: + printf("ALG_SHA512_256\n"); + break; + case ALG_SHA512_256SESS: + printf("ALG_SHA512_256SESS\n"); + break; case ALG_OTHER: printf("ALG_OTHER\n"); break; diff --git a/src/core/parser/digest/digest_parser.c b/src/core/parser/digest/digest_parser.c index eb772ba5090..8a0a52396d1 100644 --- a/src/core/parser/digest/digest_parser.c +++ b/src/core/parser/digest/digest_parser.c @@ -52,6 +52,24 @@ #define ALG_MD5SESS_STR "MD5-sess" #define ALG_MD5SESS_STR_LEN 8 +#define ALG_SHA256_STR "SHA-256" +#define ALG_SHA256_STR_LEN 7 + +#define ALG_SHA256SESS_STR "SHA-256-sess" +#define ALG_SHA256SESS_STR_LEN 12 + +#define ALG_SHA512_STR "SHA-512" +#define ALG_SHA512_STR_LEN 7 + +#define ALG_SHA512SESS_STR "SHA-512-sess" +#define ALG_SHA512SESS_STR_LEN 12 + +#define ALG_SHA512_256_STR "SHA-512-256" +#define ALG_SHA512_256_STR_LEN 11 + +#define ALG_SHA512_256SESS_STR "SHA-512-256-sess" +#define ALG_SHA512_256SESS_STR_LEN 16 + /* * Parse quoted string in a parameter body @@ -283,6 +301,28 @@ static inline void parse_algorithm(struct algorithm *_a) } else if((s.len == ALG_MD5SESS_STR_LEN) && !strncasecmp(s.s, ALG_MD5SESS_STR, ALG_MD5SESS_STR_LEN)) { _a->alg_parsed = ALG_MD5SESS; + } else if((s.len == ALG_SHA256_STR_LEN) + && !strncasecmp(s.s, ALG_SHA256_STR, ALG_SHA256_STR_LEN)) { + _a->alg_parsed = ALG_SHA256; + } else if((s.len == ALG_SHA256SESS_STR_LEN) + && !strncasecmp( + s.s, ALG_SHA256SESS_STR, ALG_SHA256SESS_STR_LEN)) { + _a->alg_parsed = ALG_SHA256SESS; + } else if((s.len == ALG_SHA512_STR_LEN) + && !strncasecmp(s.s, ALG_SHA512_STR, ALG_SHA512_STR_LEN)) { + _a->alg_parsed = ALG_SHA512; + } else if((s.len == ALG_SHA512SESS_STR_LEN) + && !strncasecmp( + s.s, ALG_SHA512SESS_STR, ALG_SHA512SESS_STR_LEN)) { + _a->alg_parsed = ALG_SHA512SESS; + } else if((s.len == ALG_SHA512_256_STR_LEN) + && !strncasecmp( + s.s, ALG_SHA512_256_STR, ALG_SHA512_256_STR_LEN)) { + _a->alg_parsed = ALG_SHA512_256; + } else if((s.len == ALG_SHA512_256SESS_STR_LEN) + && !strncasecmp(s.s, ALG_SHA512_256SESS_STR, + ALG_SHA512_256SESS_STR_LEN)) { + _a->alg_parsed = ALG_SHA512_256SESS; } else { _a->alg_parsed = ALG_OTHER; } diff --git a/src/core/parser/digest/digest_parser.h b/src/core/parser/digest/digest_parser.h index f52894abfce..c27d0c0da02 100644 --- a/src/core/parser/digest/digest_parser.h +++ b/src/core/parser/digest/digest_parser.h @@ -40,10 +40,16 @@ /* Type of algorithm used */ typedef enum alg { - ALG_UNSPEC = 0, /* Algorithm parameter not specified */ - ALG_MD5 = 1, /* MD5 - default value*/ - ALG_MD5SESS = 2, /* MD5-Session */ - ALG_OTHER = 4 /* Unknown */ + ALG_UNSPEC = 0, /* Algorithm parameter not specified */ + ALG_MD5 = 1, /* MD5 - default value*/ + ALG_MD5SESS = 2, /* MD5-Session */ + ALG_SHA256 = 3, /* SHA-256 */ + ALG_SHA256SESS = 4, /* SHA-256-sess */ + ALG_SHA512 = 5, /* SHA-512 */ + ALG_SHA512SESS = 6, /* SHA-512-sess */ + ALG_SHA512_256 = 7, /* SHA-512-256 */ + ALG_SHA512_256SESS = 8, /* SHA-512-256-sess */ + ALG_OTHER = 255 /* Unknown */ } alg_t; _______________________________________________ Kamailio - Development Mailing List -- [email protected] To unsubscribe send an email to [email protected] Important: keep the mailing list in the recipients, do not reply only to the sender!
