X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fuclient.git;a=blobdiff_plain;f=uclient-utils.h;h=83ab09ae1df1393ab8139b8764bd59aac703a635;hp=a7eaf1cabac0a9ce2c5c2c6de2c9bc315accfef4;hb=836aaddaf047e82129446e7c16fef660863fb9ba;hpb=c280d54e1bc79de4424fabc3fad011cc15587b81 diff --git a/uclient-utils.h b/uclient-utils.h index a7eaf1c..83ab09a 100644 --- a/uclient-utils.h +++ b/uclient-utils.h @@ -3,14 +3,28 @@ #include +struct http_digest_data { + const char *uri; + const char *method; + + const char *auth_hash; /* H(A1) */ + const char *qop; + const char *nc; + const char *nonce; + const char *cnonce; +}; + static inline int base64_len(int len) { return ((len + 2) / 3) * 4; } void base64_encode(const void *inbuf, unsigned int len, void *out); +void bin_to_hex(char *dest, const void *buf, int len); int uclient_urldecode(const char *in, char *out, bool decode_plus); +void http_digest_calculate_auth_hash(char *dest, const char *user, const char *realm, const char *password); +void http_digest_calculate_response(char *dest, const struct http_digest_data *data); #endif