📄 sip_auth_msg.h
字号:
/* $Id: sip_auth_msg.h 974 2007-02-19 01:13:53Z bennylp $ *//* * Copyright (C) 2003-2007 Benny Prijono <benny@prijono.org> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */#ifndef __PJSIP_AUTH_SIP_AUTH_MSG_H__#define __PJSIP_AUTH_SIP_AUTH_MSG_H__#include <pjsip/sip_msg.h>PJ_BEGIN_DECL/** * @addtogroup PJSIP_MSG_HDR * @{ *//** * Common credential structure represents common credential fields * present in Authorization/Proxy-Authorization header. */struct pjsip_common_credential{ pj_str_t realm; /**< Credential's realm. */ pjsip_param other_param; /**< Other parameters. */};/** * @see pjsip_common_credential */typedef struct pjsip_common_credential pjsip_common_credential;/** * This structure describe credential used in Authorization and * Proxy-Authorization header for digest authentication scheme. */struct pjsip_digest_credential{ pj_str_t realm; /**< Realm of the credential */ pjsip_param other_param; /**< Other parameters. */ pj_str_t username; /**< Username parameter. */ pj_str_t nonce; /**< Nonce parameter. */ pj_str_t uri; /**< URI parameter. */ pj_str_t response; /**< Response digest. */ pj_str_t algorithm; /**< Algorithm. */ pj_str_t cnonce; /**< Cnonce. */ pj_str_t opaque; /**< Opaque value. */ pj_str_t qop; /**< Quality of protection. */ pj_str_t nc; /**< Nonce count. */};/** * @see pjsip_digest_credential */typedef struct pjsip_digest_credential pjsip_digest_credential;/** * This structure describe credential used in Authorization and * Proxy-Authorization header for PGP authentication scheme. */struct pjsip_pgp_credential{ pj_str_t realm; /**< Realm. */ pjsip_param other_param; /**< Other parameters. */ pj_str_t version; /**< Version parameter. */ pj_str_t signature; /**< Signature parameter. */ pj_str_t signed_by; /**< Signed by parameter. */ pj_str_t nonce; /**< Nonce parameter. */};/** * @see pjsip_pgp_credential */typedef struct pjsip_pgp_credential pjsip_pgp_credential;/** * This structure describes SIP Authorization header (and also SIP * Proxy-Authorization header). */struct pjsip_authorization_hdr{ /** Standard header fiends. */ PJSIP_DECL_HDR_MEMBER(struct pjsip_authorization_hdr); /** Authorization scheme. */ pj_str_t scheme; /** Type of credentials, depending on the scheme. */ union { pjsip_common_credential common; /**< Common fields. */ pjsip_digest_credential digest; /**< Digest credentials. */ pjsip_pgp_credential pgp; /**< PGP credentials. */ } credential;};/** * @see pjsip_authorization_hdr. */typedef struct pjsip_authorization_hdr pjsip_authorization_hdr;/** SIP Proxy-Authorization header shares the same structure as SIP Authorization header. */typedef struct pjsip_authorization_hdr pjsip_proxy_authorization_hdr;/** * Create SIP Authorization header. * @param pool Pool where memory will be allocated from. * @return SIP Authorization header. */PJ_DECL(pjsip_authorization_hdr*) pjsip_authorization_hdr_create(pj_pool_t *pool);/** * Create SIP Proxy-Authorization header. * @param pool Pool where memory will be allocated from. * @return SIP Proxy-Authorization header. */PJ_DECL(pjsip_proxy_authorization_hdr*) pjsip_proxy_authorization_hdr_create(pj_pool_t *pool);/** * This structure describes common fields in authentication challenge * headers (WWW-Authenticate and Proxy-Authenticate). */struct pjsip_common_challenge{ pj_str_t realm; /**< Realm for the challenge. */ pjsip_param other_param; /**< Other parameters. */};/** * @see pjsip_common_challenge */typedef struct pjsip_common_challenge pjsip_common_challenge;/** * This structure describes authentication challenge used in Proxy-Authenticate * or WWW-Authenticate for digest authentication scheme. */struct pjsip_digest_challenge{ pj_str_t realm; /**< Realm for the challenge. */ pjsip_param other_param; /**< Other parameters. */ pj_str_t domain; /**< Domain. */ pj_str_t nonce; /**< Nonce challenge. */ pj_str_t opaque; /**< Opaque value. */ int stale; /**< Stale parameter. */ pj_str_t algorithm; /**< Algorithm parameter. */ pj_str_t qop; /**< Quality of protection. */};/** * @see pjsip_digest_challenge */typedef struct pjsip_digest_challenge pjsip_digest_challenge;/** * This structure describes authentication challenge used in Proxy-Authenticate * or WWW-Authenticate for PGP authentication scheme. */struct pjsip_pgp_challenge{ pj_str_t realm; /**< Realm for the challenge. */ pjsip_param other_param; /**< Other parameters. */ pj_str_t version; /**< PGP version. */ pj_str_t micalgorithm; /**< micalgorithm parameter. */ pj_str_t pubalgorithm; /**< pubalgorithm parameter. */ pj_str_t nonce; /**< Nonce challenge. */};/** * @see pjsip_pgp_challenge */typedef struct pjsip_pgp_challenge pjsip_pgp_challenge;/** * This structure describe SIP WWW-Authenticate header (Proxy-Authenticate * header also uses the same structure). */struct pjsip_www_authenticate_hdr{ /** Standard header fields. */ PJSIP_DECL_HDR_MEMBER(struct pjsip_www_authenticate_hdr); /** Authentication scheme */ pj_str_t scheme; /** This union contains structures that are only relevant depending on the value of the scheme being used. */ union { pjsip_common_challenge common; /**< Common fields. */ pjsip_digest_challenge digest; /**< Digest challenge. */ pjsip_pgp_challenge pgp; /**< PGP challenge. */ } challenge;};/** * WWW-Authenticate header. */typedef struct pjsip_www_authenticate_hdr pjsip_www_authenticate_hdr;/** * Proxy-Authenticate header. */typedef struct pjsip_www_authenticate_hdr pjsip_proxy_authenticate_hdr;/** * Create SIP WWW-Authenticate header. * * @param pool Pool where memory will be allocated from. * @return SIP WWW-Authenticate header. */PJ_DECL(pjsip_www_authenticate_hdr*) pjsip_www_authenticate_hdr_create(pj_pool_t *pool);/** * Create SIP Proxy-Authenticate header. * * @param pool Pool where memory will be allocated from. * @return SIP Proxy-Authenticate header. */PJ_DECL(pjsip_proxy_authenticate_hdr*) pjsip_proxy_authenticate_hdr_create(pj_pool_t *pool);/** * @} */PJ_END_DECL#endif /* __PJSIP_AUTH_SIP_AUTH_MSG_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -