Blame view

sip/Utils/HTTPDigest.h 1.3 KB
c887a0f0   Hu Chunming   提交初成版代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  #define HASHLEN 16

  typedef char HASH[HASHLEN];

  #define HASHHEXLEN 32

  typedef char HASHHEX[HASHHEXLEN+1];

  #define IN

  #define OUT

  /* calculate H(A1) as per HTTP Digest spec */

  void DigestCalcHA1 (IN const char *pszAlg,

                 IN const char *pszUserName,

                 IN const char *pszRealm,

                 IN const char *pszPassword,

                 IN const char *pszNonce,

                 IN const char *pszCNonce,

                 OUT HASHHEX SessionKey);

  /* calculate request-digest/response-digest as per HTTP Digest spec */

  void DigestCalcResponse (IN HASHHEX HA1,     /* H(A1) */

                      IN const char *pszNonce,    /* nonce from server */

                      IN const char *pszNonceCount,       /* 8 hex digits */

                      IN const char *pszCNonce,   /* client nonce */

                      IN const char *pszQop,      /* qop-value: "", "auth", "auth-int" */

                      IN int Aka, /* Calculating AKAv1-MD5 response */

                      IN const char *pszMethod,   /* method from the request */

                      IN const char *pszDigestUri,        /* requested URL */

                      IN HASHHEX HEntity, /* H(entity body) if qop="auth-int" */

                      OUT HASHHEX Response

                      /* request-digest or response-digest */ );