FFmpeg
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavformat
httpauth.h
Go to the documentation of this file.
1
/*
2
* HTTP authentication
3
* Copyright (c) 2010 Martin Storsjo
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
#ifndef AVFORMAT_HTTPAUTH_H
23
#define AVFORMAT_HTTPAUTH_H
24
25
/**
26
* Authentication types, ordered from weakest to strongest.
27
*/
28
typedef
enum
HTTPAuthType
{
29
HTTP_AUTH_NONE
= 0,
/**< No authentication specified */
30
HTTP_AUTH_BASIC
,
/**< HTTP 1.0 Basic auth from RFC 1945
31
* (also in RFC 2617) */
32
HTTP_AUTH_DIGEST
,
/**< HTTP 1.1 Digest auth from RFC 2617 */
33
}
HTTPAuthType
;
34
35
typedef
struct
DigestParams
{
36
char
nonce
[300];
/**< Server specified nonce */
37
char
algorithm
[10];
/**< Server specified digest algorithm */
38
char
qop
[30];
/**< Quality of protection, containing the one
39
* that we've chosen to use, from the
40
* alternatives that the server offered. */
41
char
opaque
[300];
/**< A server-specified string that should be
42
* included in authentication responses, not
43
* included in the actual digest calculation. */
44
char
stale
[10];
/**< The server indicated that the auth was ok,
45
* but needs to be redone with a new, non-stale
46
* nonce. */
47
int
nc
;
/**< Nonce count, the number of earlier replies
48
* where this particular nonce has been used. */
49
}
DigestParams
;
50
51
/**
52
* HTTP Authentication state structure. Must be zero-initialized
53
* before used with the functions below.
54
*/
55
typedef
struct
HTTPAuthState
{
56
/**
57
* The currently chosen auth type.
58
*/
59
HTTPAuthType
auth_type
;
60
/**
61
* Authentication realm
62
*/
63
char
realm
[200];
64
/**
65
* The parameters specifiec to digest authentication.
66
*/
67
DigestParams
digest_params
;
68
/**
69
* Auth ok, but needs to be resent with a new nonce.
70
*/
71
int
stale
;
72
}
HTTPAuthState
;
73
74
void
ff_http_auth_handle_header
(
HTTPAuthState
*
state
,
const
char
*key,
75
const
char
*
value
);
76
char
*
ff_http_auth_create_response
(
HTTPAuthState
*
state
,
const
char
*auth,
77
const
char
*path,
const
char
*method);
78
79
#endif
/* AVFORMAT_HTTPAUTH_H */
Generated on Sat May 25 2013 04:01:17 for FFmpeg by
1.8.2