| 384 * |
384 * |
| 385 * @return The cipher data |
385 * @return The cipher data |
| 386 */ |
386 */ |
| 387 gpointer gaim_cipher_context_get_data(GaimCipherContext *context); |
387 gpointer gaim_cipher_context_get_data(GaimCipherContext *context); |
| 388 |
388 |
| |
389 /** |
| |
390 * Calculates a session key for HTTP Digest authentation |
| |
391 * |
| |
392 * See RFC 2617 for more information. |
| |
393 * |
| |
394 * @param algorithm The hash algorithm to use |
| |
395 * @param username The username provided by the user |
| |
396 * @param realm The authentication realm provided by the server |
| |
397 * @param password The password provided by the user |
| |
398 * @param nonce The nonce provided by the server |
| |
399 * @param client_nonce The nonce provided by the client |
| |
400 * |
| |
401 * @return The session key, or @c NULL if an error occurred. |
| |
402 */ |
| |
403 gchar *gaim_cipher_http_digest_calculate_session_key( |
| |
404 const gchar *algorithm, const gchar *username, |
| |
405 const gchar *realm, const gchar *password, |
| |
406 const gchar *nonce, const gchar *client_nonce); |
| |
407 |
| |
408 /** Calculate a response for HTTP Digest authentication |
| |
409 * |
| |
410 * See RFC 2617 for more information. |
| |
411 * |
| |
412 * @param algorithm The hash algorithm to use |
| |
413 * @param method The HTTP method in use |
| |
414 * @param digest_uri The URI from the initial request |
| |
415 * @param qop The "quality of protection" |
| |
416 * @param hashed_entity The hashed entity body |
| |
417 * @param hashed_entity_len The length of the data in @a hashed_entity |
| |
418 * @param nonce The nonce provided by the server |
| |
419 * @param nonce_count The nonce count |
| |
420 * @param client_nonce The nonce provided by the client |
| |
421 * @param session_key The session key from gaim_cipher_http_digest_calculate_session_key() |
| |
422 * |
| |
423 * @return The hashed response, or @c NULL if an error occurred. |
| |
424 */ |
| |
425 gchar *gaim_cipher_http_digest_calculate_response( |
| |
426 const gchar *algorithm, const gchar *method, |
| |
427 const gchar *digest_uri, const gchar *qop, |
| |
428 const gchar *hashed_entity, size_t hashed_entity_len, |
| |
429 const gchar *nonce, const gchar *nonce_count, |
| |
430 const gchar *client_nonce, const gchar *session_key); |
| |
431 |
| 389 /*@}*/ |
432 /*@}*/ |
| 390 |
433 |
| 391 #ifdef __cplusplus |
434 #ifdef __cplusplus |
| 392 } |
435 } |
| 393 #endif /* __cplusplus */ |
436 #endif /* __cplusplus */ |