Mercurial > dovecot > core-2.2
view src/lib-http/http-auth.h @ 18956:3e1ab97a392c
lib-http auth: Implemented client-side handling of basic authentication scheme.
author | Stephan Bosch <stephan@rename-it.nl> |
---|---|
date | Tue, 18 Aug 2015 20:39:24 +0300 |
parents | 9d530e890669 |
children | 07ceb84bf899 |
line wrap: on
line source
#ifndef HTTP_AUTH_H #define HTTP_AUTH_H #include "array-decl.h" struct http_auth_param; struct http_auth_challenge; struct http_auth_credentials; ARRAY_DEFINE_TYPE(http_auth_param, struct http_auth_param); ARRAY_DEFINE_TYPE(http_auth_challenge, struct http_auth_challenge); struct http_auth_param { const char *name; const char *value; }; struct http_auth_challenge { const char *scheme; const char *data; ARRAY_TYPE(http_auth_param) params; }; struct http_auth_credentials { const char *scheme; const char *data; ARRAY_TYPE(http_auth_param) params; }; /* * Parsing */ int http_auth_parse_challenges(const unsigned char *data, size_t size, ARRAY_TYPE(http_auth_challenge) *chlngs); int http_auth_parse_credentials(const unsigned char *data, size_t size, struct http_auth_credentials *crdts); /* * Construction */ void http_auth_create_challenge(string_t *out, const struct http_auth_challenge *chlng); void http_auth_create_challenges(string_t *out, const ARRAY_TYPE(http_auth_challenge) *chlngs); void http_auth_create_credentials(string_t *out, const struct http_auth_credentials *crdts); /* * Manipulation */ void http_auth_challenge_copy(pool_t pool, struct http_auth_challenge *dst, const struct http_auth_challenge *src); struct http_auth_challenge * http_auth_challenge_clone(pool_t pool, const struct http_auth_challenge *src); /* * Simple schemes */ void http_auth_basic_challenge_init(struct http_auth_challenge *chlng, const char *realm); void http_auth_basic_credentials_init(struct http_auth_credentials *crdts, const char *username, const char *password); #endif