亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? spnegohelp.c

?? 代理服務器 squid-2.6.STABLE16
?? C
字號:
/* -----------------------------------------------------------------------------
 * spnegohelp.c defines RFC 2478 SPNEGO GSS-API mechanism APIs.
 *
 * Author: Frank Balluffi
 *
 * Copyright (C) 2002-2003 All rights reserved.
 *
 *   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.
 *
 * -----------------------------------------------------------------------------
 */

#include "spnegohelp.h"
#include "spnego.h"

#include <stdlib.h>

int makeNegTokenTarg (const unsigned char *  kerberosToken,
                      size_t                 kerberosTokenLength,
                      const unsigned char ** negTokenTarg,
                      size_t *               negTokenTargLength)
{
    SPNEGO_TOKEN_HANDLE hSpnegoToken = NULL;
    int                 rc1          = 1;
    int                 rc2          = SPNEGO_E_SUCCESS;

    /* Check arguments. */

    if (!kerberosToken ||
        !negTokenTarg  ||
        !negTokenTargLength)
        return 10;

    /* Does IIS reply with 1.2.840.48018.1.2.2 or 1.2.840.113554.1.2.2? */

    /* Does IIS always reply with accept_completed? */

    /* IIS does not include a MIC. */

    rc2 = spnegoCreateNegTokenTarg (spnego_mech_oid_Kerberos_V5_Legacy,
                                    spnego_negresult_success,
                                    (unsigned char *) kerberosToken,
                                    kerberosTokenLength,
                                    NULL,
                                    0,
                                    &hSpnegoToken);

    if (rc2 != SPNEGO_E_SUCCESS)
    {
        rc1 = abs(rc2)+100;
        goto cleanup;
    }

    /* Get NegTokenTarg length. */

    rc2 = spnegoTokenGetBinary (hSpnegoToken,
                                NULL,
                                (unsigned long*) negTokenTargLength);

    if (rc2 != SPNEGO_E_BUFFER_TOO_SMALL)
    {
        rc1 = abs(rc2)+200;
        goto cleanup;
    }

    *negTokenTarg = malloc (*negTokenTargLength);

    if (!*negTokenTarg)
    {
        rc1 = abs(rc2)+300;
        goto cleanup;
    }

    /* Get NegTokenTarg data. */

    rc2 = spnegoTokenGetBinary (hSpnegoToken,
                              (unsigned char *) *negTokenTarg,
                              (unsigned long*) negTokenTargLength);


    if (rc2 != SPNEGO_E_SUCCESS)
    {
        rc1 = abs(rc2)+400;
        goto error;
    }

    rc1 = 0;

    goto cleanup;

error:

    if (*negTokenTarg)
    {
        free ((unsigned char *) *negTokenTarg);
        *negTokenTarg = NULL;
        *negTokenTargLength = 0;
    }

cleanup:

    if (hSpnegoToken)
        spnegoFreeData (hSpnegoToken);

    LOG(("makeNegTokenTarg returned %d\n",rc1));
    return rc1;
}

int parseNegTokenInit (const unsigned char *  negTokenInit,
                       size_t                 negTokenInitLength,
                       const unsigned char ** kerberosToken,
                       size_t *               kerberosTokenLength)
{
    SPNEGO_TOKEN_HANDLE hSpnegoToken = NULL;
    int                 pindex       = -1;
    int                 rc1          = 1;
    int                 rc2          = SPNEGO_E_SUCCESS;
    unsigned char       reqFlags     = 0;
    int                 tokenType    = 0;

    /* Check arguments. */

    if (!negTokenInit  ||
        !kerberosToken ||
        !kerberosTokenLength)
        return 10;

    /* Decode SPNEGO token. */

    rc2 = spnegoInitFromBinary ((unsigned char *) negTokenInit,
                                negTokenInitLength,
                                &hSpnegoToken);

    if (rc2 != SPNEGO_E_SUCCESS)
    {
        rc1 = abs(rc2)+100;
        goto cleanup;
    }

    /* Check for negTokenInit choice. */

    rc2 = spnegoGetTokenType (hSpnegoToken,
                              &tokenType);

    if (rc2 != SPNEGO_E_SUCCESS)
    {
        rc1 = abs(rc2)+200;
        goto cleanup;
    }

    if (tokenType != SPNEGO_TOKEN_INIT)
    {
        rc1 = abs(rc2)+300;
        goto cleanup;
    }

   /*
    Check that first mechType is 1.2.840.113554.1.2.2 or 1.2.840.48018.1.2.2.
    */

   /*
    IE seems to reply with 1.2.840.48018.1.2.2 and then 1.2.840.113554.1.2.2.
    */

    rc2 = spnegoIsMechTypeAvailable (hSpnegoToken,
                                     spnego_mech_oid_Kerberos_V5_Legacy,
                                     &pindex);

    if (rc2 != SPNEGO_E_SUCCESS ||
        pindex != 0)
    {
        rc2 = spnegoIsMechTypeAvailable (hSpnegoToken,
                                         spnego_mech_oid_Kerberos_V5,
                                         &pindex);

        if (rc2 != SPNEGO_E_SUCCESS ||
            pindex != 0)
        {
            rc1 = abs(rc2)+400;
            goto cleanup;
        }
    }

    /* Check for no reqFlags. */

    /* Does IE ever send reqFlags? */

    rc2 = spnegoGetContextFlags (hSpnegoToken,
                                 &reqFlags);

    if (rc2 == SPNEGO_E_SUCCESS)
    {
        rc1 = abs(rc2)+500;
        goto cleanup;
    }

    /* Get mechanism token length. */

    rc2 = spnegoGetMechToken (hSpnegoToken,
                              NULL,
                              (unsigned long*) kerberosTokenLength);

    if (rc2 != SPNEGO_E_BUFFER_TOO_SMALL)
    {
        rc1 = abs(rc2)+600;
        goto cleanup;
    }

    *kerberosToken = malloc (*kerberosTokenLength);

    if (!*kerberosToken)
    {
        rc1 = abs(rc2)+700;
        goto cleanup;
    }

    /* Get mechanism token data. */

    rc2 = spnegoGetMechToken (hSpnegoToken,
                              (unsigned char *) *kerberosToken,
                              (unsigned long*) kerberosTokenLength);

    if (rc2 != SPNEGO_E_SUCCESS)
    {
        rc1 = abs(rc2)+800;
        goto error;
    }

    /* According to Microsoft, IE does not send a MIC. */

    rc1 = 0;

    goto cleanup;

error:

    if (*kerberosToken)
    {
        free ((unsigned char *) *kerberosToken);
        *kerberosToken = NULL;
        *kerberosTokenLength = 0;
    }

cleanup:

    if (hSpnegoToken)
        spnegoFreeData (hSpnegoToken);

    LOG(("parseNegTokenInit returned %d\n",rc1));
    return rc1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费看片在线观看| 精品国产网站在线观看| 久久精品国产一区二区| 欧美国产日韩在线观看| 欧美高清dvd| 91精品国产综合久久福利| 亚洲欧美韩国综合色| 精品福利一区二区三区| 欧美色图激情小说| 成人av在线一区二区三区| 另类成人小视频在线| 亚洲va欧美va国产va天堂影院| 国产精品麻豆网站| 久久综合久久99| 欧美一级在线视频| 欧美日本精品一区二区三区| 色综合久久精品| 99精品欧美一区二区三区综合在线| 国产乱子轮精品视频| 免费在线观看日韩欧美| 午夜av区久久| 一区二区三区在线播| 亚洲欧美日本韩国| 欧美高清在线视频| 久久久91精品国产一区二区精品| 日韩视频在线永久播放| 欧美老女人在线| 欧美私人免费视频| 欧美丝袜第三区| 欧美怡红院视频| 91精彩视频在线观看| 色哟哟亚洲精品| 972aa.com艺术欧美| 91亚洲精华国产精华精华液| 成人av在线一区二区三区| 国产suv精品一区二区三区| 国产真实乱偷精品视频免| 九色|91porny| 激情偷乱视频一区二区三区| 久久成人久久鬼色| 久久激情五月激情| 国产乱色国产精品免费视频| 国产盗摄女厕一区二区三区| 国产成人超碰人人澡人人澡| 国产精品18久久久久久久久 | 蜜桃av噜噜一区| 日本亚洲三级在线| 精品综合久久久久久8888| 国产真实乱子伦精品视频| 国产98色在线|日韩| 国产激情偷乱视频一区二区三区| 国产福利精品一区二区| av午夜精品一区二区三区| 一本久久精品一区二区| 欧美偷拍一区二区| 欧美一级欧美三级在线观看| 欧美va亚洲va香蕉在线| 国产视频一区二区在线观看| 中文字幕在线视频一区| 亚洲一区二区四区蜜桃| 午夜欧美视频在线观看 | 色综合天天综合网天天看片| 91色视频在线| 欧美年轻男男videosbes| 日韩区在线观看| 国产精品亲子伦对白| 亚洲永久精品国产| 美女视频黄 久久| 不卡电影一区二区三区| 欧美日韩中文字幕一区| 日韩美女一区二区三区四区| 中文字幕不卡一区| 亚洲激情欧美激情| 久久精品国产成人一区二区三区 | 成人黄色a**站在线观看| 91网站最新网址| 欧美一区在线视频| 国产香蕉久久精品综合网| 亚洲少妇30p| 男女男精品视频网| 成人精品视频.| 欧美日韩激情一区| 国产精品视频看| 青青国产91久久久久久| 成人国产精品免费观看视频| 欧美色综合网站| 国产欧美视频一区二区| 午夜久久电影网| 国产大陆亚洲精品国产| 欧美日韩一本到| 欧美国产乱子伦| 午夜精品视频在线观看| 成人精品一区二区三区中文字幕| 欧美精品久久99久久在免费线| 欧美国产一区在线| 日本女人一区二区三区| 一道本成人在线| 国产日韩一级二级三级| 奇米影视7777精品一区二区| 99国产一区二区三精品乱码| 亚洲精品一区二区三区影院 | 福利电影一区二区| 69堂成人精品免费视频| 亚洲欧美一区二区三区孕妇| 国产一区久久久| 91精品国产91久久综合桃花| 亚洲精品ww久久久久久p站| 国产成人在线影院| 日韩亚洲欧美中文三级| 亚洲电影你懂得| 91视视频在线观看入口直接观看www | 美脚の诱脚舐め脚责91| 在线观看日韩电影| 国产精品国产馆在线真实露脸| 久久99久久久久久久久久久| 欧美精品在线观看播放| 亚洲一区二区av在线| 91麻豆国产福利在线观看| 中文字幕免费观看一区| 国产成人亚洲综合色影视| 精品乱人伦一区二区三区| 男人的j进女人的j一区| 欧美精品乱人伦久久久久久| 一个色妞综合视频在线观看| 91免费小视频| 日韩一区在线播放| 99久久夜色精品国产网站| 国产精品久久久久婷婷二区次| 国产盗摄一区二区| 国产日韩av一区| 国产成人av福利| 国产亚洲欧美日韩俺去了| 国产福利精品导航| 久久九九影视网| 东方欧美亚洲色图在线| 国产精品乱码妇女bbbb| av中文一区二区三区| 国产精品大尺度| 99视频超级精品| 亚洲男同1069视频| 欧美怡红院视频| 日韩一区精品视频| 欧美成人精品1314www| 韩国精品一区二区| 国产色产综合色产在线视频| 成人黄色一级视频| 亚洲黄色在线视频| 91精品国产91久久久久久一区二区| 日韩激情视频在线观看| 精品国产免费一区二区三区四区| 国产一区二区按摩在线观看| 国产精品国产精品国产专区不蜜| 色综合天天综合网国产成人综合天| 亚洲免费在线看| 欧美高清你懂得| 国产一区二区不卡在线| 中文字幕中文字幕中文字幕亚洲无线 | 亚洲制服欧美中文字幕中文字幕| 欧美日韩激情一区二区| 青青草伊人久久| 久久综合久久综合九色| aaa欧美色吧激情视频| 亚洲精选视频在线| 欧美精品tushy高清| 国产精品自拍一区| 亚洲精品国久久99热| 欧美一级高清片| 国产成人综合在线观看| 亚洲一线二线三线久久久| 91精品国产综合久久福利软件| 国产精品自拍一区| 亚洲男人的天堂在线aⅴ视频| 91精品国产综合久久精品麻豆| 国内偷窥港台综合视频在线播放| 亚洲天堂精品在线观看| 制服丝袜在线91| av亚洲精华国产精华| 美国欧美日韩国产在线播放| 国产精品第13页| 欧美一级黄色大片| 91在线视频免费观看| 精品一区二区综合| 一区二区三区不卡在线观看 | 婷婷国产v国产偷v亚洲高清| 精品日本一线二线三线不卡| 色偷偷成人一区二区三区91| 麻豆国产精品777777在线| 亚洲欧美综合色| 久久综合色综合88| 欧美性大战久久久| 成人黄色在线网站| 麻豆精品精品国产自在97香蕉| 亚洲精品乱码久久久久久日本蜜臀| 欧美r级电影在线观看| 色综合天天综合网国产成人综合天 | 国产精品蜜臀av| 日韩精品自拍偷拍| 欧美视频精品在线观看| 国产一区999| 免费观看成人av|