]>
git.ipfire.org Git - thirdparty/squid.git/blob - include/rfc2617.h
2 * Copyright (C) 1996-2016 The Squid Software Foundation and contributors
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
9 /* The source in this file is derived from the reference implementation
11 * RFC 2617 is Copyright (C) The Internet Society (1999). All Rights Reserved.
13 * The following copyright and licence statement covers all changes made to the
14 * reference implementation.
16 * Key changes to the reference implementation were:
17 * alteration to a plain C layout.
18 * Create CvtBin function
19 * Allow CalcHA1 to make use of precaculated username:password:realm hash's
20 * to prevent squid knowing the users password (idea suggested in RFC 2617).
23 #ifndef SQUID_RFC2617_H
24 #define SQUID_RFC2617_H
31 typedef char HASH
[HASHLEN
];
33 typedef char HASHHEX
[HASHHEXLEN
+ 1];
35 /* calculate H(A1) as per HTTP Digest spec */
36 extern void DigestCalcHA1(
38 const char *pszUserName
,
40 const char *pszPassword
,
42 const char *pszCNonce
,
47 /* calculate request-digest/response-digest as per HTTP Digest spec */
48 extern void DigestCalcResponse(
49 const HASHHEX HA1
, /* H(A1) */
50 const char *pszNonce
, /* nonce from server */
51 const char *pszNonceCount
, /* 8 hex digits */
52 const char *pszCNonce
, /* client nonce */
53 const char *pszQop
, /* qop-value: "", "auth", "auth-int" */
54 const char *pszMethod
, /* method from the request */
55 const char *pszDigestUri
, /* requested URL */
56 const HASHHEX HEntity
, /* H(entity body) if qop="auth-int" */
57 HASHHEX Response
/* request-digest or response-digest */
60 extern void CvtHex(const HASH Bin
, HASHHEX Hex
);
62 extern void CvtBin(const HASHHEX Hex
, HASH Bin
);
67 #endif /* SQUID_RFC2617_H */