-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-]]--
-
-local sys = require "luci.sys"
-local fs = require "nixio.fs"
-
-m = SimpleForm("njit", translate("njit-client"),
- translate("njit 802.11x client"))
-
-m.submit = translate("Connect")
-m.reset = false
-
-r = m:field(Value, "username", translate("Username"))
-s = m:field(Value, "password", translate("Password"))
-t = m:section(SimpleSection)
-interface = t:option(ListValue, "interface", translate("Network interface"))
-for _, e in ipairs(sys.net.devices()) do
- if e ~= "lo" then interface:value(e) end
- end
-
-
-function interface.write(self, s, val)
- local cmd
- local user = luci.http.formvalue("cbid.njit.1.username")
- local pass = luci.http.formvalue("cbid.njit.1.password")
- local iface = luci.http.formvalue("cbid.njit.1.interface")
- cmd = "njit-client %s %s %s & (sleep 10 && killall njit-client)" %{ user, pass, iface }
-
- local msg = "%s
%s
" %{
- translate("Starting njit-client:"), cmd
- }
-
- local p = io.popen(cmd .. " 2>&1")
- if p then
- while true do
- local l = p:read("*l")
- if l then
- if #l > 100 then l = l:sub(1, 100) .. "..." end
- msg = msg .. l .. "
"
- else
- break
- end
- end
- p:close()
- end
- msg = msg .. "
"
- m.message = msg
-end
-
-return m
-
-
diff --git a/package/ntlf9t/njitclient/src-gui/luci/readme b/package/ntlf9t/njitclient/src-gui/luci/readme
deleted file mode 100644
index b995d1628a..0000000000
--- a/package/ntlf9t/njitclient/src-gui/luci/readme
+++ /dev/null
@@ -1,2 +0,0 @@
-cp ./njit.lua /usr/lib/lua/luci/model/cbi/njit.lua
-cp ./luci_controller_njit.lua /usr/lib/lua/luci/controller/njit.lua
diff --git a/package/ntlf9t/njitclient/src-gui/qt4gui/ReadMe.html b/package/ntlf9t/njitclient/src-gui/qt4gui/ReadMe.html
deleted file mode 100644
index d494e1c3bb..0000000000
--- a/package/ntlf9t/njitclient/src-gui/qt4gui/ReadMe.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
- NJIT 802.1X Client - Qt GUI
-
-
-===============================================================================
-南京工程学院校园网802.1X客户端 - Qt用户界面
--------------------------------------------------------------------------------
-[正文]
-(尚未在此处添加正文...)
-
-[致谢]
-感谢客户端Qt用户界面作者 WangDiwen From 南京工程学院
-===============================================================================
-
-
-
diff --git a/package/ntlf9t/njitclient/src-gui/qt4gui/dialogs/mainDlg.cpp b/package/ntlf9t/njitclient/src-gui/qt4gui/dialogs/mainDlg.cpp
deleted file mode 100644
index 8686f429da..0000000000
--- a/package/ntlf9t/njitclient/src-gui/qt4gui/dialogs/mainDlg.cpp
+++ /dev/null
@@ -1,263 +0,0 @@
-#include
-#include "mainDlg.h"
-//#include "main.h"
-//#include "auth.h"
-//#include "thread.h"
-//#include "debug.h"
-
-//extern pthread_t pthread;
-extern USER userinfo;
-MainDlg::MainDlg(QWidget *parent, Qt::WindowFlags f):QDialog(parent,f)
-{
- setWindowTitle(tr("xClient 802.1x"));
-
- Qt::WindowFlags flags = Qt::Window;
- flags |= Qt::WindowMinimizeButtonHint;
- flags |= Qt::WindowCloseButtonHint;
- setWindowFlags(flags);
-
- initDlg();
- createLeftLayout();
- createRightLayout();
- createBottomLayout();
- createMainLayout();
- setLayout(mainLayout);
-
- getInfo();
-
- connect(version,SIGNAL(clicked()),this,SLOT(showVersion()));
- connect(reset,SIGNAL(clicked()),this,SLOT(resetInfo()));
- connect(savePasswdBox,SIGNAL(toggled(bool)),\
- this,SLOT(saveInfo()));
- connect(start,SIGNAL(clicked()),this,SLOT(startNet()));
- connect(stop,SIGNAL(clicked()),this,SLOT(stopNet()));
-}
-
-MainDlg::~MainDlg()
-{
-
-}
-
-void MainDlg::getInfo()
-{
- QFile file("info.dat");
- file.open(QIODevice::ReadOnly);
- QDataStream in(&file);
-
- in.setVersion(QDataStream::Qt_4_0);
- qint32 magic;
- in>>magic;
- if (magic != (qint32)0xa1a2a3a4)
- {
- QMessageBox::information(this,"Tips",tr("Invalide file format"));
- return;
- }
-
- QString userName;
- QString passwd;
- int netcard;
- int startAuto;
- int savePasswd;
- in>>userName>>passwd>>netcard>>startAuto>>savePasswd;
-
- userEdit->setText(userName);
- passwdEdit->setText(passwd);
- //passwdEdit->setEchoMode(QLineEdit::Password);
- netcardEdit->setCurrentIndex(netcard);
- autoStart->setCheckState((startAuto != 0)?Qt::Checked:Qt::Unchecked);
- savePasswdBox->setCheckState((savePasswd != 0)?Qt::Unchecked:Qt::Checked);
-
-}
-
-void MainDlg::initDlg()
-{
- userLabel = new QLabel(tr("UserName"));
- passwdLabel = new QLabel(tr("Password"));
- netcardLabel = new QLabel(tr("NetCard"));
- stateLabel = new QLabel(tr("Status"));
-
- userEdit = new QLineEdit;
- passwdEdit = new QLineEdit;
- passwdEdit->setEchoMode(QLineEdit::Password);
- autoStart = new QCheckBox(tr("Auto Start"));
- savePasswdBox = new QCheckBox(tr("Save Passwd"));
- netcardEdit = new QComboBox;
- netcardEdit->insertItem(0,tr("eth0"));
- netcardEdit->insertItem(1,tr("eth1"));
- stateText = new QTextEdit;
- stateText->setText("Net state...");
- copyRight = new QLabel(tr("Author:WangDiwen(From njit) Date:2011-09-01"));
-
- labelIcon = new QLabel();
- QPixmap pic("./imags/pic.png");
-
- labelIcon->resize(pic.width(),pic.height());
- labelIcon->setPixmap(pic);
-
- start = new QPushButton();
- start->setText(tr("StartNet"));
- stop = new QPushButton();
- stop->setText(tr("StopNet"));
- stop->setEnabled(false);
- reset = new QPushButton();
- reset->setText(tr("ResetNet"));
- version = new QPushButton();
- version->setText(tr("Version"));
-}
-
-void MainDlg::createLeftLayout()
-{
- leftLayout = new QGridLayout();
- int labelCol = 0;
- int contentCol1 = 1;
-
- leftLayout->addWidget(userLabel,0,labelCol);
- leftLayout->addWidget(userEdit,0,contentCol1);
-
-
- leftLayout->addWidget(passwdLabel,1,labelCol);
- leftLayout->addWidget(passwdEdit,1,contentCol1);
-
-
- leftLayout->addWidget(netcardLabel,2,labelCol);
- leftLayout->addWidget(netcardEdit,2,contentCol1);
-
-
- leftLayout->addWidget(autoStart,3,labelCol);
- leftLayout->addWidget(savePasswdBox,3,contentCol1);
-
-
- leftLayout->addWidget(stateLabel,4,labelCol,Qt::AlignTop);
- leftLayout->addWidget(stateText,4,contentCol1);
-
- leftLayout->setColumnStretch(0,1);
- leftLayout->setColumnStretch(1,3);
-
-}
-
-void MainDlg::createRightLayout()
-{
- rightLayout = new QVBoxLayout();
-
- rightLayout->setMargin(10);
- rightLayout->setSpacing(10);
-
- rightLayout->addWidget(start);
- rightLayout->addWidget(stop);
- rightLayout->addWidget(reset);
- rightLayout->addWidget(version);
- rightLayout->addStretch();
- rightLayout->addWidget(labelIcon);
- //rightLayout->setSizeConstraint(QLayout::SetFixedSize);
- //rightLayout->setAlignment(Qt::AlignTop);
-}
-
-
-void MainDlg::createBottomLayout()
-{
- bottomLayout = new QHBoxLayout();
- bottomLayout->addWidget(copyRight);
-}
-
-void MainDlg::createMainLayout()
-{
- mainLayout = new QGridLayout(this);
-
- mainLayout->setMargin(10);
- mainLayout->setSpacing(10);
- mainLayout->addLayout(leftLayout,0,0);
- mainLayout->addLayout(rightLayout,0,1);
- mainLayout->addLayout(bottomLayout,1,0);
- mainLayout->setSizeConstraint(QLayout::SetFixedSize);
-}
-
-void MainDlg::startNet()
-{
- QString user = userEdit->text();
- QString pass = passwdEdit->text();
- QString net = netcardEdit->currentText();
-
- strcpy(userinfo.username,user.toLatin1().data());
- strcpy(userinfo.passwd,pass.toLatin1().data());
- strcpy(userinfo.netcard,net.toLatin1().data());
-
- //DPRINTF("user: %s\n",userinfo.username);
- //DPRINTF("pass: %s\n",userinfo.passwd);
- //DPRINTF("net: %s\n",userinfo.netcard);
- //Modified by WangDiwen(njit) for test;
- /**
- USER userinfo;
- userinfo.username = "s-208080236";
- userinfo.passwd = "126333";
- userinfo.netcard = "eth0";
- */
- int ret = -1/*pthread_create(&(pthread), NULL, thread_func, (void *)&userinfo)*/;
- if (ret != 0)
- {
- //exit(ret);
- std::cerr<<"create thread failed...\n";
- }
- std::clog<<"create thread success...\n";
- stateText->setText("Connect Server Success!\nIf your net has not connected yet,\nPlease clicked the button!\n");
- start->setEnabled(false);
- stop->setEnabled(true);
- userEdit->setEnabled(false);
- passwdEdit->setEnabled(false);
- netcardEdit->setEnabled(false);
- //pthread_join(pthread,NULL);
-}
-
-void MainDlg::stopNet()
-{
- //pthread_cancel(pthread);
- start->setEnabled(true);
- userEdit->setEnabled(true);
- passwdEdit->setEnabled(true);
- netcardEdit->setEnabled(true);
- stateText->setText("Stop Connect!");
-}
-
-void MainDlg::showVersion()
-{
- QMessageBox::information(this,"Version",tr("xClient 802.1x for Linux!\nBased on QT4.\n\nAuthor:WangDiwen(From njit)\nEmail:dw_wang126@126.com"));
- return;
-}
-void MainDlg::resetInfo()
-{
- userEdit->setText(tr(""));
- passwdEdit->setText(tr(""));
- netcardEdit->setCurrentIndex(0);
- stateText->setText(tr(""));
- return;
-}
-void MainDlg::saveInfo()
-{
- QString userName = userEdit->text();
- QString passwd = passwdEdit->text();
- int netcard = netcardEdit->currentIndex();
- int startAuto = autoStart->isChecked()? 1 : 0;
- int savePasswd = savePasswdBox->isChecked()? 1 : 0;
-
- QFile file("info.dat");
- file.open(QIODevice::WriteOnly);
- QDataStream out(&file);
-
- out.setVersion(QDataStream::Qt_4_0);
- out<<(qint32)0xa1a2a3a4;
- out<username,user->passwd,user->netcard)*/;
- if (ret == -1)
- {
- std::cerr<<"Authentication failed...\n";
- }
- std::clog<<"Authentication quit...\n";
-// pthread_exit(NULL);
- return NULL;
-}
-
diff --git a/package/ntlf9t/njitclient/src-gui/qt4gui/dialogs/mainDlg.h b/package/ntlf9t/njitclient/src-gui/qt4gui/dialogs/mainDlg.h
deleted file mode 100644
index 0038867794..0000000000
--- a/package/ntlf9t/njitclient/src-gui/qt4gui/dialogs/mainDlg.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef __MAINDLG_H__
-#define __MAINDLG_H__
-
-#include "main.h"
-
-class MainDlg : public QDialog
-{
- Q_OBJECT
-public:
- MainDlg(QWidget *parent = 0,Qt::WindowFlags f=0);
- ~MainDlg();
- void getInfo();
-public:
- QLabel *userLabel;
- QLineEdit *userEdit;
- QLabel *passwdLabel;
- QLineEdit *passwdEdit;
- QCheckBox *autoStart;
- QCheckBox *savePasswdBox;
-
- QLabel *netcardLabel;
- QComboBox *netcardEdit;
- QLabel *stateLabel;
- QTextEdit *stateText;
- QLabel *copyRight;
-
- QLabel *labelIcon;
- QPushButton *start;
- QPushButton *stop;
- QPushButton *reset;
- QPushButton *version;
-private:
- QGridLayout *leftLayout;
- QVBoxLayout *rightLayout;
- QHBoxLayout *bottomLayout;
- QGridLayout *mainLayout;
-
-public:
- void initDlg();
- void createLeftLayout();
- void createRightLayout();
- void createBottomLayout();
- void createMainLayout();
-public slots:
- void startNet();
- void stopNet();
- void showVersion();
- void resetInfo();
- void saveInfo();
-};
-
-#endif // __MAINDLG_H__
diff --git a/package/ntlf9t/njitclient/src-gui/qt4gui/main.cpp b/package/ntlf9t/njitclient/src-gui/qt4gui/main.cpp
deleted file mode 100644
index 18cf54382a..0000000000
--- a/package/ntlf9t/njitclient/src-gui/qt4gui/main.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-#include
-#include "./dialogs/mainDlg.h"
-//#include
-//#include "thread.h"
-
-//pthread_t pthread;
-USER userinfo={ {'\0'},{'\0'},{'\0'} };
-
-int main(int argc, char **argv)
-{
- //QFont f("ZYSong 18030",12);
- //QApplication::setFont(f);
-
- QApplication app(argc,argv);
- MainDlg mainDlg;
- mainDlg.show();
-
-// app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) );
- return app.exec();
-}
diff --git a/package/ntlf9t/njitclient/src-gui/qt4gui/main.h b/package/ntlf9t/njitclient/src-gui/qt4gui/main.h
deleted file mode 100644
index 73971e606a..0000000000
--- a/package/ntlf9t/njitclient/src-gui/qt4gui/main.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef __MAIN_H__
-#define __MAIN_H__
-
-#include
-//#include
-//#include
-//#include
-//#include
-//#include
-//#include
-//#include
-//#include
-//#include
-//#include
-//#include
-
-struct USER
-{
- char username[20];
- char passwd[10];
- char netcard[10];
-};
-void *thread_func(void * arg);
-
-#endif // __MAIN_H__
diff --git a/package/ntlf9t/njitclient/src-gui/qt4gui/qt4gui.pro b/package/ntlf9t/njitclient/src-gui/qt4gui/qt4gui.pro
deleted file mode 100644
index c67b35a5d7..0000000000
--- a/package/ntlf9t/njitclient/src-gui/qt4gui/qt4gui.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-######################################################################
-# Automatically generated by qmake (2.01a) ?? 9? 30 13:03:14 2011
-######################################################################
-
-TEMPLATE = app
-TARGET =
-DEPENDPATH += .
-INCLUDEPATH += .
-
-# Input
-HEADERS += dialogs/mainDlg.h
-SOURCES += main.cpp dialogs/mainDlg.cpp
diff --git a/package/ntlf9t/njitclient/src/Makefile.am b/package/ntlf9t/njitclient/src/Makefile.am
deleted file mode 100644
index 5b81c7dbee..0000000000
--- a/package/ntlf9t/njitclient/src/Makefile.am
+++ /dev/null
@@ -1,28 +0,0 @@
-ACLOCAL_AMFLAGS = -I m4
-sbin_PROGRAMS = \
- client \
- $(NULL)
-client_SOURCES = \
- main.c \
- auth.c \
- ip.c \
- fillmd5-libcrypto.c \
- njit8021xclient.c \
- njit8021xclient.h \
- debug.h \
- md5-buildin/md5_one.c \
- md5-buildin/md5_dgst.c \
- md5-buildin/mem_clr.c \
- aes.h \
- aes.c \
- h3c_AES_MD5.h \
- h3c_AES_MD5.c \
- h3c_dict.h \
- $(NULL)
-CCOPT = $(V_CCOPT)
-DEFS = $(V_DEFS)
-INCLS = $(V_INCLS)
-client_CFLAGS = $(CCOPT) $(DEFS) $(INCLS)
-client_CFLAGS += $(libcrypto_CFLAGS)
-client_LDADD = $(LBL_LIBS)
-
diff --git a/package/ntlf9t/njitclient/src/RefreshIP.py b/package/ntlf9t/njitclient/src/RefreshIP.py
deleted file mode 100755
index d700a83d41..0000000000
--- a/package/ntlf9t/njitclient/src/RefreshIP.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-# 功能:
-# 通过NetworkManager刷新IP地址激活默认的网络连接
-# 存在的问题:
-# 1、许多64位Linux操作系统不支持DBus和NetworkManager,这种情况下本脚本将无法正常运行
-# 2、由于njit-client程序尚不支持无线网络,故此处已经跳过所有的无线网络配置
-#
-# 当前代码由刘群负责维护
-# 欢迎您帮助我们改进这个Python脚本,来信请寄:
-# njit8201xclient@googlegroups.com
-# http://groups.google.com/group/njit8021xclient?hl=zh-CN
-
-
-import sys
-import dbus
-
-try:
- nm = dbus.SystemBus().get_object('org.freedesktop.NetworkManager',
- '/org/freedesktop/NetworkManager')
-except dbus.exceptions.DBusException, errmsg:
- sys.stderr.write(__file__ + ': Unable to find NetworkManager daemon from DBus: ' + errmsg)
- sys.exit(0xFF)
-
-def GetProperty(property_name, object, interface_name):
- """Get property of a dbus object through a dbus interface"""
- return dbus.Interface(object, 'org.freedesktop.DBus.Properties').Get(interface_name, property_name)
-
-active_connections = GetProperty('ActiveConnections', nm, 'org.freedesktop.NetworkManager')
-if active_connections == []:
- sys.stderr.write(__file__ + ': Unable to find any NetworkManager configurations!')
- sys.exit(0xFF)
-
-class ActiveConnectionInfo:
- pass
-
-for connection_opath in active_connections:
- ac = ActiveConnectionInfo()
- ac.obj = dbus.SystemBus().get_object('org.freedesktop.NetworkManager', connection_opath)
- ac.service = GetProperty('ServiceName', ac.obj, 'org.freedesktop.NetworkManager.Connection.Active')
- ac.connection = GetProperty('Connection', ac.obj, 'org.freedesktop.NetworkManager.Connection.Active')
- ac.devices = GetProperty('Devices', ac.obj, 'org.freedesktop.NetworkManager.Connection.Active')
- ac.spec = GetProperty('SpecificObject', ac.obj, 'org.freedesktop.NetworkManager.Connection.Active')
- nm_setting_service = dbus.SystemBus().get_object(ac.service, ac.connection)
- ac.settings = dbus.Interface(nm_setting_service, 'org.freedesktop.NetworkManagerSettings.Connection').GetSettings()
-
- if ac.settings['connection']['type'] == '802-3-ethernet': # 只找出有线以太网连接连接(因njit-client尚不支持无线)
- for dev in ac.devices:
- print __file__ + ': Activating network connection and refreshing IP address...'
- print __file__ + ': Using NetworkManager configuration "' + ac.settings['connection']['id'] + '".'
- try:
- dbus.Interface(nm,'org.freedesktop.NetworkManager').ActivateConnection(ac.service, ac.connection, dev, ac.spec)
- sys.exit(0) # 正常退出
- except dbus.exceptions.DBusException, errmsg:
- sys.stderr.write(__file__ + ': Failed to activate "' + ac.settings['connection']['id'] + '": ' + errmsg)
-
-sys.stderr.write(__file__ + ': Unable to find any wired network connections. Check your cables maybe?')
-
diff --git a/package/ntlf9t/njitclient/src/aes.c b/package/ntlf9t/njitclient/src/aes.c
deleted file mode 100644
index 38ec1324f9..0000000000
--- a/package/ntlf9t/njitclient/src/aes.c
+++ /dev/null
@@ -1,583 +0,0 @@
-/*
-
-This is an implementation of the AES128 algorithm, specifically ECB and CBC mode.
-
-The implementation is verified against the test vectors in:
- National Institute of Standards and Technology Special Publication 800-38A 2001 ED
-
-ECB-AES128
-----------
-
- plain-text:
- 6bc1bee22e409f96e93d7e117393172a
- ae2d8a571e03ac9c9eb76fac45af8e51
- 30c81c46a35ce411e5fbc1191a0a52ef
- f69f2445df4f9b17ad2b417be66c3710
-
- key:
- 2b7e151628aed2a6abf7158809cf4f3c
-
- resulting cipher
- 3ad77bb40d7a3660a89ecaf32466ef97
- f5d3d58503b9699de785895a96fdbaaf
- 43b1cd7f598ece23881b00e3ed030688
- 7b0c785e27e8ad3f8223207104725dd4
-
-
-NOTE: String length must be evenly divisible by 16byte (str_len % 16 == 0)
- You should pad the end of the string with zeros if this is not the case.
-
-*/
-
-
-/*****************************************************************************/
-/* Includes: */
-/*****************************************************************************/
-#include
-#include // CBC mode, for memset
-#include "aes.h"
-
-
-/*****************************************************************************/
-/* Defines: */
-/*****************************************************************************/
-// The number of columns comprising a state in AES. This is a constant in AES. Value=4
-#define Nb 4
-// The number of 32 bit words in a key.
-#define Nk 4
-// Key length in bytes [128 bit]
-#define KEYLEN 16
-// The number of rounds in AES Cipher.
-#define Nr 10
-
-// jcallan@github points out that declaring Multiply as a function
-// reduces code size considerably with the Keil ARM compiler.
-// See this link for more information: https://github.com/kokke/tiny-AES128-C/pull/3
-#ifndef MULTIPLY_AS_A_FUNCTION
- #define MULTIPLY_AS_A_FUNCTION 0
-#endif
-
-
-/*****************************************************************************/
-/* Private variables: */
-/*****************************************************************************/
-// state - array holding the intermediate results during decryption.
-typedef uint8_t state_t[4][4];
-static state_t* state;
-
-// The array that stores the round keys.
-static uint8_t RoundKey[176];
-
-// The Key input to the AES Program
-static const uint8_t* Key;
-
-#if defined(CBC) && CBC
- // Initial Vector used only for CBC mode
- static uint8_t* Iv;
-#endif
-
-// The lookup-tables are marked const so they can be placed in read-only storage instead of RAM
-// The numbers below can be computed dynamically trading ROM for RAM -
-// This can be useful in (embedded) bootloader applications, where ROM is often limited.
-static const uint8_t sbox[256] = {
- //0 1 2 3 4 5 6 7 8 9 A B C D E F
- 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
- 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
- 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
- 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
- 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
- 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
- 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
- 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
- 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
- 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
- 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
- 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
- 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
- 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
- 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
- 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 };
-
-static const uint8_t rsbox[256] =
-{ 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb,
- 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb,
- 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,
- 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25,
- 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92,
- 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,
- 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06,
- 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b,
- 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,
- 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e,
- 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b,
- 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,
- 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f,
- 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef,
- 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,
- 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d };
-
-
-// The round constant word array, Rcon[i], contains the values given by
-// x to th e power (i-1) being powers of x (x is denoted as {02}) in the field GF(2^8)
-// Note that i starts at 1, not 0).
-static const uint8_t Rcon[255] = {
- 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a,
- 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39,
- 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,
- 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8,
- 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef,
- 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc,
- 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b,
- 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3,
- 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94,
- 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20,
- 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35,
- 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f,
- 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04,
- 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63,
- 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,
- 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb };
-
-
-/*****************************************************************************/
-/* Private functions: */
-/*****************************************************************************/
-static uint8_t getSBoxValue(uint8_t num)
-{
- return sbox[num];
-}
-
-static uint8_t getSBoxInvert(uint8_t num)
-{
- return rsbox[num];
-}
-
-// This function produces Nb(Nr+1) round keys. The round keys are used in each round to decrypt the states.
-static void KeyExpansion(void)
-{
- uint32_t i, j, k;
- uint8_t tempa[4]; // Used for the column/row operations
-
- // The first round key is the key itself.
- for(i = 0; i < Nk; ++i)
- {
- RoundKey[(i * 4) + 0] = Key[(i * 4) + 0];
- RoundKey[(i * 4) + 1] = Key[(i * 4) + 1];
- RoundKey[(i * 4) + 2] = Key[(i * 4) + 2];
- RoundKey[(i * 4) + 3] = Key[(i * 4) + 3];
- }
-
- // All other round keys are found from the previous round keys.
- for(; (i < (Nb * (Nr + 1))); ++i)
- {
- for(j = 0; j < 4; ++j)
- {
- tempa[j]=RoundKey[(i-1) * 4 + j];
- }
- if (i % Nk == 0)
- {
- // This function rotates the 4 bytes in a word to the left once.
- // [a0,a1,a2,a3] becomes [a1,a2,a3,a0]
-
- // Function RotWord()
- {
- k = tempa[0];
- tempa[0] = tempa[1];
- tempa[1] = tempa[2];
- tempa[2] = tempa[3];
- tempa[3] = k;
- }
-
- // SubWord() is a function that takes a four-byte input word and
- // applies the S-box to each of the four bytes to produce an output word.
-
- // Function Subword()
- {
- tempa[0] = getSBoxValue(tempa[0]);
- tempa[1] = getSBoxValue(tempa[1]);
- tempa[2] = getSBoxValue(tempa[2]);
- tempa[3] = getSBoxValue(tempa[3]);
- }
-
- tempa[0] = tempa[0] ^ Rcon[i/Nk];
- }
- else if (Nk > 6 && i % Nk == 4)
- {
- // Function Subword()
- {
- tempa[0] = getSBoxValue(tempa[0]);
- tempa[1] = getSBoxValue(tempa[1]);
- tempa[2] = getSBoxValue(tempa[2]);
- tempa[3] = getSBoxValue(tempa[3]);
- }
- }
- RoundKey[i * 4 + 0] = RoundKey[(i - Nk) * 4 + 0] ^ tempa[0];
- RoundKey[i * 4 + 1] = RoundKey[(i - Nk) * 4 + 1] ^ tempa[1];
- RoundKey[i * 4 + 2] = RoundKey[(i - Nk) * 4 + 2] ^ tempa[2];
- RoundKey[i * 4 + 3] = RoundKey[(i - Nk) * 4 + 3] ^ tempa[3];
- }
-}
-
-// This function adds the round key to state.
-// The round key is added to the state by an XOR function.
-static void AddRoundKey(uint8_t round)
-{
- uint8_t i,j;
- for(i=0;i<4;++i)
- {
- for(j = 0; j < 4; ++j)
- {
- (*state)[i][j] ^= RoundKey[round * Nb * 4 + i * Nb + j];
- }
- }
-}
-
-// The SubBytes Function Substitutes the values in the
-// state matrix with values in an S-box.
-static void SubBytes(void)
-{
- uint8_t i, j;
- for(i = 0; i < 4; ++i)
- {
- for(j = 0; j < 4; ++j)
- {
- (*state)[j][i] = getSBoxValue((*state)[j][i]);
- }
- }
-}
-
-// The ShiftRows() function shifts the rows in the state to the left.
-// Each row is shifted with different offset.
-// Offset = Row number. So the first row is not shifted.
-static void ShiftRows(void)
-{
- uint8_t temp;
-
- // Rotate first row 1 columns to left
- temp = (*state)[0][1];
- (*state)[0][1] = (*state)[1][1];
- (*state)[1][1] = (*state)[2][1];
- (*state)[2][1] = (*state)[3][1];
- (*state)[3][1] = temp;
-
- // Rotate second row 2 columns to left
- temp = (*state)[0][2];
- (*state)[0][2] = (*state)[2][2];
- (*state)[2][2] = temp;
-
- temp = (*state)[1][2];
- (*state)[1][2] = (*state)[3][2];
- (*state)[3][2] = temp;
-
- // Rotate third row 3 columns to left
- temp = (*state)[0][3];
- (*state)[0][3] = (*state)[3][3];
- (*state)[3][3] = (*state)[2][3];
- (*state)[2][3] = (*state)[1][3];
- (*state)[1][3] = temp;
-}
-
-static uint8_t xtime(uint8_t x)
-{
- return ((x<<1) ^ (((x>>7) & 1) * 0x1b));
-}
-
-// MixColumns function mixes the columns of the state matrix
-static void MixColumns(void)
-{
- uint8_t i;
- uint8_t Tmp,Tm,t;
- for(i = 0; i < 4; ++i)
- {
- t = (*state)[i][0];
- Tmp = (*state)[i][0] ^ (*state)[i][1] ^ (*state)[i][2] ^ (*state)[i][3] ;
- Tm = (*state)[i][0] ^ (*state)[i][1] ; Tm = xtime(Tm); (*state)[i][0] ^= Tm ^ Tmp ;
- Tm = (*state)[i][1] ^ (*state)[i][2] ; Tm = xtime(Tm); (*state)[i][1] ^= Tm ^ Tmp ;
- Tm = (*state)[i][2] ^ (*state)[i][3] ; Tm = xtime(Tm); (*state)[i][2] ^= Tm ^ Tmp ;
- Tm = (*state)[i][3] ^ t ; Tm = xtime(Tm); (*state)[i][3] ^= Tm ^ Tmp ;
- }
-}
-
-// Multiply is used to multiply numbers in the field GF(2^8)
-#if MULTIPLY_AS_A_FUNCTION
-static uint8_t Multiply(uint8_t x, uint8_t y)
-{
- return (((y & 1) * x) ^
- ((y>>1 & 1) * xtime(x)) ^
- ((y>>2 & 1) * xtime(xtime(x))) ^
- ((y>>3 & 1) * xtime(xtime(xtime(x)))) ^
- ((y>>4 & 1) * xtime(xtime(xtime(xtime(x))))));
- }
-#else
-#define Multiply(x, y) \
- ( ((y & 1) * x) ^ \
- ((y>>1 & 1) * xtime(x)) ^ \
- ((y>>2 & 1) * xtime(xtime(x))) ^ \
- ((y>>3 & 1) * xtime(xtime(xtime(x)))) ^ \
- ((y>>4 & 1) * xtime(xtime(xtime(xtime(x)))))) \
-
-#endif
-
-// MixColumns function mixes the columns of the state matrix.
-// The method used to multiply may be difficult to understand for the inexperienced.
-// Please use the references to gain more information.
-static void InvMixColumns(void)
-{
- int i;
- uint8_t a,b,c,d;
- for(i=0;i<4;++i)
- {
- a = (*state)[i][0];
- b = (*state)[i][1];
- c = (*state)[i][2];
- d = (*state)[i][3];
-
- (*state)[i][0] = Multiply(a, 0x0e) ^ Multiply(b, 0x0b) ^ Multiply(c, 0x0d) ^ Multiply(d, 0x09);
- (*state)[i][1] = Multiply(a, 0x09) ^ Multiply(b, 0x0e) ^ Multiply(c, 0x0b) ^ Multiply(d, 0x0d);
- (*state)[i][2] = Multiply(a, 0x0d) ^ Multiply(b, 0x09) ^ Multiply(c, 0x0e) ^ Multiply(d, 0x0b);
- (*state)[i][3] = Multiply(a, 0x0b) ^ Multiply(b, 0x0d) ^ Multiply(c, 0x09) ^ Multiply(d, 0x0e);
- }
-}
-
-
-// The SubBytes Function Substitutes the values in the
-// state matrix with values in an S-box.
-static void InvSubBytes(void)
-{
- uint8_t i,j;
- for(i=0;i<4;++i)
- {
- for(j=0;j<4;++j)
- {
- (*state)[j][i] = getSBoxInvert((*state)[j][i]);
- }
- }
-}
-
-static void InvShiftRows(void)
-{
- uint8_t temp;
-
- // Rotate first row 1 columns to right
- temp=(*state)[3][1];
- (*state)[3][1]=(*state)[2][1];
- (*state)[2][1]=(*state)[1][1];
- (*state)[1][1]=(*state)[0][1];
- (*state)[0][1]=temp;
-
- // Rotate second row 2 columns to right
- temp=(*state)[0][2];
- (*state)[0][2]=(*state)[2][2];
- (*state)[2][2]=temp;
-
- temp=(*state)[1][2];
- (*state)[1][2]=(*state)[3][2];
- (*state)[3][2]=temp;
-
- // Rotate third row 3 columns to right
- temp=(*state)[0][3];
- (*state)[0][3]=(*state)[1][3];
- (*state)[1][3]=(*state)[2][3];
- (*state)[2][3]=(*state)[3][3];
- (*state)[3][3]=temp;
-}
-
-
-// Cipher is the main function that encrypts the PlainText.
-static void Cipher(void)
-{
- uint8_t round = 0;
-
- // Add the First round key to the state before starting the rounds.
- AddRoundKey(0);
-
- // There will be Nr rounds.
- // The first Nr-1 rounds are identical.
- // These Nr-1 rounds are executed in the loop below.
- for(round = 1; round < Nr; ++round)
- {
- SubBytes();
- ShiftRows();
- MixColumns();
- AddRoundKey(round);
- }
-
- // The last round is given below.
- // The MixColumns function is not here in the last round.
- SubBytes();
- ShiftRows();
- AddRoundKey(Nr);
-}
-
-static void InvCipher(void)
-{
- uint8_t round=0;
-
- // Add the First round key to the state before starting the rounds.
- AddRoundKey(Nr);
-
- // There will be Nr rounds.
- // The first Nr-1 rounds are identical.
- // These Nr-1 rounds are executed in the loop below.
- for(round=Nr-1;round>0;round--)
- {
- InvShiftRows();
- InvSubBytes();
- AddRoundKey(round);
- InvMixColumns();
- }
-
- // The last round is given below.
- // The MixColumns function is not here in the last round.
- InvShiftRows();
- InvSubBytes();
- AddRoundKey(0);
-}
-
-static void BlockCopy(uint8_t* output, uint8_t* input)
-{
- uint8_t i;
- for (i=0;i
-
-
-// #define the macros below to 1/0 to enable/disable the mode of operation.
-//
-// CBC enables AES128 encryption in CBC-mode of operation and handles 0-padding.
-// ECB enables the basic ECB 16-byte block algorithm. Both can be enabled simultaneously.
-
-// The #ifndef-guard allows it to be configured before #include'ing or at compile time.
-#ifndef CBC
- #define CBC 1
-#endif
-
-#ifndef ECB
- #define ECB 1
-#endif
-
-
-
-#if defined(ECB) && ECB
-
-void AES128_ECB_encrypt(uint8_t* input, const uint8_t* key, uint8_t *output);
-void AES128_ECB_decrypt(uint8_t* input, const uint8_t* key, uint8_t *output);
-
-#endif // #if defined(ECB) && ECB
-
-
-#if defined(CBC) && CBC
-
-void AES128_CBC_encrypt_buffer(uint8_t* output, uint8_t* input, uint32_t length, const uint8_t* key, const uint8_t* iv);
-void AES128_CBC_decrypt_buffer(uint8_t* output, uint8_t* input, uint32_t length, const uint8_t* key, const uint8_t* iv);
-
-#endif // #if defined(CBC) && CBC
-
-
-
-#endif //_AES_H_
diff --git a/package/ntlf9t/njitclient/src/auth.c b/package/ntlf9t/njitclient/src/auth.c
deleted file mode 100644
index 81c36e3995..0000000000
--- a/package/ntlf9t/njitclient/src/auth.c
+++ /dev/null
@@ -1,727 +0,0 @@
-/* File: auth.c
- * ------------
- * 注:核心函数为Authentication(),由该函数执行801.1X认证
- */
-
-int Authentication(const char *UserName, const char *Password, const char *DeviceName);
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include "h3c_AES_MD5.h"
-#include
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "debug.h"
-
-// 自定义常量
-typedef enum {REQUEST=1, RESPONSE=2, SUCCESS=3, FAILURE=4, H3CDATA=10} EAP_Code;
-typedef enum {IDENTITY=1, NOTIFICATION=2, MD5=4, AVAILABLE=20} EAP_Type;
-typedef uint8_t EAP_ID;
-const uint8_t BroadcastAddr[6] = {0xff,0xff,0xff,0xff,0xff,0xff}; // 广播MAC地址
-const uint8_t MultcastAddr[6] = {0x01,0x80,0xc2,0x00,0x00,0x03}; // 多播MAC地址
-const char H3C_VERSION[16]="CH\x11V7.10-0313"; // 华为客户端版本号
-//const char H3C_KEY[64] ="HuaWei3COM1X"; // H3C的固定密钥
-const char H3C_KEY[64] ="Oly5D62FaE94W7"; // H3C的另一个固定密钥,网友取自MacOSX版本的iNode官方客户端
-
-uint8_t AES_MD5req[32];
-uint8_t AES_MD5data[32];
-// 子函数声明
-static void SendStartPkt(pcap_t *adhandle, const uint8_t mac[]);
-static void SendLogoffPkt(pcap_t *adhandle, const uint8_t mac[]);
-static void SendResponseIdentity(pcap_t *adhandle,
- const uint8_t request[],
- const uint8_t ethhdr[],
- const uint8_t ip[4],
- const char username[]);
-
-static void SendFirstResponseIdentity(pcap_t *adhandle,
- const uint8_t request[],
- const uint8_t ethhdr[],
- const uint8_t ip[4],
- const char username[]);
-static void SendResponseMD5(pcap_t *adhandle,
- const uint8_t request[],
- const uint8_t ethhdr[],
- const char username[],
- const char passwd[]);
-static void SendResponseAvailable(pcap_t *adhandle,
- const uint8_t request[],
- const uint8_t ethhdr[],
- const uint8_t ip[4],
- const char username[]);
-static void SendResponseNotification(pcap_t *handle,
- const uint8_t request[],
- const uint8_t ethhdr[]);
-
-static void GetMacFromDevice(uint8_t mac[6], const char *devicename);
-
-static void FillClientVersionArea(uint8_t area[]);
-static void FillWindowsVersionArea(uint8_t area[]);
-static void FillBase64Area(char area[]);
-// From fillmd5.c
-extern void FillMD5Area(uint8_t digest[],
- uint8_t id, const char passwd[], const uint8_t srcMD5[]);
-
-// From ip.c
-extern void GetIpFromDevice(uint8_t ip[4], const char DeviceName[]);
-
-int mode=1;//auto reconnect
-
-/**
- * 函数:Authentication()
- *
- * 使用以太网进行802.1X认证(802.1X Authentication)
- * 该函数将不断循环,应答802.1X认证会话,直到遇到错误后才退出
- */
-
-int Authentication(const char *UserName, const char *Password, const char *DeviceName)
-{
- char errbuf[PCAP_ERRBUF_SIZE];
- pcap_t *adhandle; // adapter handle
- uint8_t MAC[6];
- char FilterStr[100];
- struct bpf_program fcode;
- const int DefaultTimeout=2000;//设置接收超时参数,单位ms
-
- // NOTE: 这里没有检查网线是否已插好,网线插口可能接触不良
-
- /* 打开适配器(网卡) */
- adhandle = pcap_open_live(DeviceName,65536,1,DefaultTimeout,errbuf);
- if (adhandle==NULL) {
- fprintf(stderr, "%s\n", errbuf);
- exit(-1);
- }
-
- /* 查询本机MAC地址 */
- GetMacFromDevice(MAC, DeviceName);
-
- /* 生成随机数 */
- srand((unsigned)time(NULL));
-
- START_AUTHENTICATION:
- {
- /*
- * 设置过滤器:
- * 初始情况下只捕获发往本机的802.1X认证会话,不接收多播信息(避免误捕获其他客户端发出的多播信息)
- * 进入循环体前可以重设过滤器,那时再开始接收多播信息
- */
- sprintf(FilterStr, "(ether proto 0x888e) and (ether dst host %02x:%02x:%02x:%02x:%02x:%02x)",
- MAC[0],MAC[1],MAC[2],MAC[3],MAC[4],MAC[5]);
- pcap_compile(adhandle, &fcode, FilterStr, 1, 0xff);
- pcap_setfilter(adhandle, &fcode);
- int i;
- int retcode;
- struct pcap_pkthdr *header = NULL;
- const uint8_t *captured = NULL;
- uint8_t ethhdr[14]={0}; // ethernet header
- uint8_t ip[4]={10,0,0,0}; // ip address
-
- // 使用本机MAC地址生成伪装IP地址。
- ip[1] = MAC[2] ^ (uint8_t)rand();
- ip[2] = MAC[4] ^ (uint8_t)rand();
- ip[3] = MAC[5] ^ (uint8_t)rand();
-
- /* 主动发起认证会话 */
- SendStartPkt(adhandle, MAC);
- DPRINTF("[ ] Client: Start.\n");
-
- /* 等待认证服务器的回应 */
- bool serverIsFound = false;
- while (!serverIsFound)
- {
- retcode = pcap_next_ex(adhandle, &header, &captured);
- if (retcode==1 && (EAP_Code)captured[18]==REQUEST)
- serverIsFound = true;
- else
- { // 延时后重试
- sleep(1);
- //DPRINTF(".");
- SendStartPkt(adhandle, MAC);
- // NOTE: 这里没有检查网线是否接触不良或已被拔下
- }
- }
-
- // 填写应答包的报头(以后无须再修改)
- // 默认以单播方式应答802.1X认证设备发来的Request
- memcpy(ethhdr+0, captured+6, 6);
- memcpy(ethhdr+6, MAC, 6);
- ethhdr[12] = 0x88;
- ethhdr[13] = 0x8e;
-
- // 收到的第一个包可能是Request Notification。取决于校方网络配置
- if ((EAP_Type)captured[22] == NOTIFICATION)
- {
- DPRINTF("[%d] Server: Request Notification!\n", captured[19]);
- // 发送Response Notification
- SendResponseNotification(adhandle, captured, ethhdr);
- DPRINTF(" Client: Response Notification.\n");
-
- // 继续接收下一个Request包
- retcode = pcap_next_ex(adhandle, &header, &captured);
- assert(retcode==1);
- assert((EAP_Code)captured[18] == REQUEST);
- }
-
- // 分情况应答下一个包
- if ((EAP_Type)captured[22] == IDENTITY)
- { // 通常情况会收到包Request Identity,应回答Response Identity
- DPRINTF("[%d] Server: Request Identity!\n", captured[19]);
- GetIpFromDevice(ip, DeviceName);
- SendFirstResponseIdentity(adhandle, captured, ethhdr, ip, UserName);
- DPRINTF("[%d] Client: Response First Identity.\n", (EAP_ID)captured[19]);
- }
- else if ((EAP_Type)captured[22] == AVAILABLE)
- { // 遇到AVAILABLE包时需要特殊处理
- // 中南财经政法大学目前使用的格式:
- // 收到第一个Request AVAILABLE时要回答Response Identity
- DPRINTF("[%d] Server: Request AVAILABLE!\n", captured[19]);
- GetIpFromDevice(ip, DeviceName);
- SendResponseIdentity(adhandle, captured, ethhdr, ip, UserName);
- DPRINTF("[%d] Client: Response Identity.\n", (EAP_ID)captured[19]);
- }
-
- // 重设过滤器,只捕获华为802.1X认证设备发来的包(包括多播Request Identity / Request AVAILABLE)
- sprintf(FilterStr, "(ether proto 0x888e) and (ether src host %02x:%02x:%02x:%02x:%02x:%02x)",
- captured[6],captured[7],captured[8],captured[9],captured[10],captured[11]);
- pcap_compile(adhandle, &fcode, FilterStr, 1, 0xff);
- pcap_setfilter(adhandle, &fcode);
-
- // 进入循环体
- for (;;)
- {
- // 调用pcap_next_ex()函数捕获数据包
- while (pcap_next_ex(adhandle, &header, &captured) != 1)
- {
- //DPRINTF("."); // 若捕获失败,则等1秒后重试
- sleep(1); // 直到成功捕获到一个数据包后再跳出
- // NOTE: 这里没有检查网线是否已被拔下或插口接触不良
- }
-
- // 根据收到的Request,回复相应的Response包
- if ((EAP_Code)captured[18] == REQUEST)
- {
- switch ((EAP_Type)captured[22])
- {
- case IDENTITY:
- DPRINTF("[%d] Server: Request Identity!\n", (EAP_ID)captured[19]);
- GetIpFromDevice(ip, DeviceName);
- SendResponseIdentity(adhandle, captured, ethhdr, ip, UserName);
- DPRINTF("[%d] Client: Response Identity.\n", (EAP_ID)captured[19]);
- break;
- case AVAILABLE:
- DPRINTF("[%d] Server: Request AVAILABLE!\n", (EAP_ID)captured[19]);
- GetIpFromDevice(ip, DeviceName);
- SendResponseAvailable(adhandle, captured, ethhdr, ip, UserName);
- DPRINTF("[%d] Client: Response AVAILABLE.\n", (EAP_ID)captured[19]);
- break;
- case MD5:
- DPRINTF("[%d] Server: Request MD5-Challenge!\n", (EAP_ID)captured[19]);
- SendResponseMD5(adhandle, captured, ethhdr, UserName, Password);
- DPRINTF("[%d] Client: Response MD5-Challenge.\n", (EAP_ID)captured[19]);
- break;
- case NOTIFICATION:
- DPRINTF("[%d] Server: Request Notification!\n", captured[19]);
- SendResponseNotification(adhandle, captured, ethhdr);
- DPRINTF(" Client: Response Notification.\n");
- break;
- default:
- DPRINTF("[%d] Server: Request (type:%d)!\n", (EAP_ID)captured[19], (EAP_Type)captured[22]);
- DPRINTF("Error! Unexpected request type\n");
- exit(-1);
- break;
- }
- }
- else if ((EAP_Code)captured[18] == FAILURE)
- { // 处理认证失败信息
- uint8_t errtype = captured[22];
- uint8_t msgsize = captured[23];
- const char *msg = (const char*) &captured[24];
- DPRINTF("[%d] Server: Failure.\n", (EAP_ID)captured[19]);
- if (errtype==0x09 && msgsize>0)
- { // 输出错误提示消息
- fprintf(stderr, "%s\n", msg);
- // 已知的几种错误如下
- // E2531:用户名不存在
- // E2535:Service is paused
- // E2542:该用户帐号已经在别处登录
- // E2547:接入时段限制
- // E2553:密码错误
- // E2602:认证会话不存在
- // E3137:客户端版本号无效
-
- if (mode == 1)
- {
- goto START_AUTHENTICATION;
- }
- else
- {
- return 0;//exit(-1);
- }
- }
- else if (errtype==0x08) // 可能网络无流量时朊务器结束此次802.1X认证会话
-
- { // 遇此情况客户端立刻发起新的认证会话
- goto START_AUTHENTICATION;
- }
- else
- {
- DPRINTF("errtype=0x%02x\n", errtype);
- exit(-1);
- }
- }
- else if ((EAP_Code)captured[18] == SUCCESS)
- {
- DPRINTF("[%d] Server: Success.\n", captured[19]);
- }
- else if ((EAP_Code)captured[18] == 0x0A)
- {
- DPRINTF("[%d] Server: (H3C data)\n", captured[19]);
- if (captured[26] == 0x35)
- {
- for (i = 0; i < 32; i++)
- {
- AES_MD5req[i] = captured[i + 27];
- }
- h3c_AES_MD5_decryption(AES_MD5data, AES_MD5req);
- }
- }
- else
- {
- DPRINTF("[%d] Server: (unknown data)\n", captured[19]);
- }
- }
-}
-return (0);
-}
-
-
-
-static
-void GetMacFromDevice(uint8_t mac[6], const char *devicename)
-{
-
-int fd;
-int err;
-struct ifreq ifr;
-
-fd = socket(PF_PACKET, SOCK_RAW, htons(0x0806));
-assert(fd != -1);
-
-assert(strlen(devicename) < IFNAMSIZ);
-strncpy(ifr.ifr_name, devicename, IFNAMSIZ);
-ifr.ifr_addr.sa_family = AF_INET;
-
-err = ioctl(fd, SIOCGIFHWADDR, &ifr);
-assert(err != -1);
-memcpy(mac, ifr.ifr_hwaddr.sa_data, 6);
-
-err = close(fd);
-assert(err != -1);
-return;
-}
-
-
-static
-void SendStartPkt(pcap_t *handle, const uint8_t localmac[])
-{
-uint8_t packet[18];
-
-// Ethernet Header (14 Bytes)
-memcpy(packet, BroadcastAddr, 6);
-memcpy(packet+6, localmac, 6);
-packet[12] = 0x88;
-packet[13] = 0x8e;
-
-// EAPOL (4 Bytes)
-packet[14] = 0x01; // Version=1
-packet[15] = 0x01; // Type=Start
-packet[16] = packet[17] =0x00;// Length=0x0000
-
-// 为了兼容不同院校的网络配置,这里发送两遍Start包
-// 1、广播发送Strat包
-pcap_sendpacket(handle, packet, sizeof(packet));
-// 2、多播发送Strat包
-//memcpy(packet, MultcastAddr, 6);
-//pcap_sendpacket(handle, packet, sizeof(packet));
-}
-
-
-static
-void SendResponseAvailable(pcap_t *handle, const uint8_t request[], const uint8_t ethhdr[], const uint8_t ip[4], const char username[])
-{
-int i;
-uint16_t eaplen;
-int usernamelen;
-uint8_t response[128];
-
-assert((EAP_Code)request[18] == REQUEST);
-assert((EAP_Type)request[22] == AVAILABLE);
-
-// Fill Ethernet header
-memcpy(response, ethhdr, 14);
-
-// 802,1X Authentication
-// {
- response[14] = 0x1; // 802.1X Version 1
- response[15] = 0x0; // Type=0 (EAP Packet)
- //response[16~17]留空 // Length
-
- // Extensible Authentication Protocol
- // {
- response[18] = (EAP_Code) RESPONSE; // Code
- response[19] = request[19]; // ID
- //response[20~21]留空 // Length
- response[22] = (EAP_Type) AVAILABLE; // Type
- // Type-Data
- // {
- i = 23;
- response[i++] = 0x00;// 上报是否使用代理
- response[i++] = 0x15; // 上传IP地址
- response[i++] = 0x04; //
- memcpy(response+i, ip, 4);//
- i += 4; //
- response[i++] = 0x06; // 携带版本号
- response[i++] = 0x07; //
- FillBase64Area((char*)response+i);//
- i += 28; //
- response[i++] = ' '; // 两个空格符
- response[i++] = ' '; //
- usernamelen = strlen(username);
- memcpy(response+i, username, usernamelen);//
- i += usernamelen; //
- // }
- // }
-// }
-
-// 补填前面留空的两处Length
-eaplen = htons(i-18);
-memcpy(response+16, &eaplen, sizeof(eaplen));
-memcpy(response+20, &eaplen, sizeof(eaplen));
-
-// 发送
-pcap_sendpacket(handle, response, i);
-}
-
-
-static
-void SendResponseIdentity(pcap_t *adhandle, const uint8_t request[], const uint8_t ethhdr[], const uint8_t ip[4], const char username[])
-{
-uint8_t response[256];
-size_t i;
-uint16_t eaplen;
-int usernamelen;
-
-assert((EAP_Code)request[18] == REQUEST);
-assert((EAP_Type)request[22] == IDENTITY
- ||(EAP_Type)request[22] == AVAILABLE); // 兼容中南财经政法大学情况
-
-// Fill Ethernet header
-memcpy(response, ethhdr, 14);
-
-// 802,1X Authentication
-// {
- response[14] = 0x1; // 802.1X Version 1
- response[15] = 0x0; // Type=0 (EAP Packet)
- //response[16~17]留空 // Length
-
- // Extensible Authentication Protocol
- // {
- response[18] = (EAP_Code) RESPONSE; // Code
- response[19] = request[19]; // ID
- //response[20~21]留空 // Length
- response[22] = (EAP_Type) IDENTITY; // Type
- response[23] = 0x16;
- response[24] = 0x20;
- memcpy(response + 25, AES_MD5data, 32);
- // Type-Data
- // {
- i = 57;
- response[i++] = 0x15; // 上传IP地址
- response[i++] = 0x04; //
- memcpy(response+i, ip, 4);//
- i += 4; //
- response[i++] = 0x06; // 携带版本号
- response[i++] = 0x07; //
- FillBase64Area((char*)response+i);//
- i += 28; //
- response[i++] = ' '; // 两个空格符
- response[i++] = ' '; //
- usernamelen = strlen(username); //末尾添加用户名
- memcpy(response+i, username, usernamelen);
- i += usernamelen;
- assert(i <= sizeof(response));
- // }
- // }
-// }
-
-// 补填前面留空的两处Length
-eaplen = htons(i-18);
-memcpy(response+16, &eaplen, sizeof(eaplen));
-memcpy(response+20, &eaplen, sizeof(eaplen));
-
-// 发送
-pcap_sendpacket(adhandle, response, i);
-return;
-}
-
-void SendFirstResponseIdentity(pcap_t *adhandle, const uint8_t request[], const uint8_t ethhdr[], const uint8_t ip[4], const char username[])
-{
-uint8_t response[128];
-size_t i;
-uint16_t eaplen;
-int usernamelen;
-
-assert((EAP_Code)request[18] == REQUEST);
-assert((EAP_Type)request[22] == IDENTITY
- ||(EAP_Type)request[22] == AVAILABLE); // 兼容中南财经政法大学情况
-
-// Fill Ethernet header
-memcpy(response, ethhdr, 14);
-
-// 802,1X Authentication
-// {
- response[14] = 0x1; // 802.1X Version 1
- response[15] = 0x0; // Type=0 (EAP Packet)
- //response[16~17]留空 // Length
-
- // Extensible Authentication Protocol
- // {
- response[18] = (EAP_Code) RESPONSE; // Code
- response[19] = request[19]; // ID
- //response[20~21]留空 // Length
- response[22] = (EAP_Type) IDENTITY; // Type
- // Type-Data
- // {
- i = 23;
- //response[i++] = 0x15; // 上传IP地址
- //response[i++] = 0x04; //
- //memcpy(response+i, ip, 4);//
- //i += 4; //
- response[i++] = 0x06; // 携带版本号
- response[i++] = 0x07; //
- FillBase64Area((char*)response+i);//
- i += 28; //
- response[i++] = ' '; // 两个空格符
- response[i++] = ' '; //
- usernamelen = strlen(username); //末尾添加用户名
- memcpy(response+i, username, usernamelen);
- i += usernamelen;
- assert(i <= sizeof(response));
- // }
- // }
-// }
-
-// 补填前面留空的两处Length
-eaplen = htons(i-18);
-memcpy(response+16, &eaplen, sizeof(eaplen));
-memcpy(response+20, &eaplen, sizeof(eaplen));
-
-// 发送
-pcap_sendpacket(adhandle, response, i);
-return;
-}
-
-
-static
-void SendResponseMD5(pcap_t *handle, const uint8_t request[], const uint8_t ethhdr[], const char username[], const char passwd[])
-{
-uint16_t eaplen;
-size_t usernamelen;
-size_t packetlen;
-uint8_t response[128];
-
-assert((EAP_Code)request[18] == REQUEST);
-assert((EAP_Type)request[22] == MD5);
-
-usernamelen = strlen(username);
-eaplen = htons(22+usernamelen);
-packetlen = 14+4+22+usernamelen; // ethhdr+EAPOL+EAP+usernamelen
-
-// Fill Ethernet header
-memcpy(response, ethhdr, 14);
-
-// 802,1X Authentication
-// {
- response[14] = 0x1; // 802.1X Version 1
- response[15] = 0x0; // Type=0 (EAP Packet)
- memcpy(response+16, &eaplen, sizeof(eaplen)); // Length
-
- // Extensible Authentication Protocol
- // {
- response[18] = (EAP_Code) RESPONSE;// Code
- response[19] = request[19]; // ID
- response[20] = response[16]; // Length
- response[21] = response[17]; //
- response[22] = (EAP_Type) MD5; // Type
- response[23] = 16; // Value-Size: 16 Bytes
- FillMD5Area(response+24, request[19], passwd, request+24);
- memcpy(response+40, username, usernamelen);
- // }
-// }
-
-pcap_sendpacket(handle, response, packetlen);
-}
-
-
-static
-void SendLogoffPkt(pcap_t *handle, const uint8_t localmac[])
-{
-uint8_t packet[18];
-
-// Ethernet Header (14 Bytes)
-memcpy(packet, MultcastAddr, 6);
-memcpy(packet+6, localmac, 6);
-packet[12] = 0x88;
-packet[13] = 0x8e;
-
-// EAPOL (4 Bytes)
-packet[14] = 0x01; // Version=1
-packet[15] = 0x02; // Type=Logoff
-packet[16] = packet[17] =0x00;// Length=0x0000
-
-// 发包
-pcap_sendpacket(handle, packet, sizeof(packet));
-}
-
-
-// 函数: XOR(data[], datalen, key[], keylen)
-//
-// 使用密钥key[]对数据data[]进行异或加密
-//(注:该函数也可反向用于解密)
-static
-void XOR(uint8_t data[], unsigned dlen, const char key[], unsigned klen)
-{
-unsigned int i,j;
-
-// 先按正序处理一遍
-for (i=0; i>2 ];
- area[j++] = Tbl[((c1&0x03)<<4)|((c2&0xf0)>>4) ];
- area[j++] = Tbl[ ((c2&0x0f)<<2)|((c3&0xc0)>>6)];
- area[j++] = Tbl[ c3&0x3f ];
-}
-c1 = version[i++];
-c2 = version[i++];
-area[24] = Tbl[ (c1&0xfc)>>2 ];
-area[25] = Tbl[((c1&0x03)<<4)|((c2&0xf0)>>4)];
-area[26] = Tbl[ ((c2&0x0f)<<2)];
-area[27] = '=';
-}
diff --git a/package/ntlf9t/njitclient/src/configure.ac b/package/ntlf9t/njitclient/src/configure.ac
deleted file mode 100644
index 0c4e955c5d..0000000000
--- a/package/ntlf9t/njitclient/src/configure.ac
+++ /dev/null
@@ -1,28 +0,0 @@
-AC_INIT([njit8021xclient],[1.0],[njit8021xclient@googlegroups.com],[],[https://github.com/liuqun/njit8021xclient])
-
-AC_MSG_CHECKING([program prefix for $PACKAGE_NAME]);
-if test "x$program_prefix" = "x" || test $program_prefix = "NONE" ; then
- dnl 可执行文件前缀默认值
- program_prefix="njit-"
-fi
-AC_MSG_RESULT([$program_prefix])
-
-AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
-AC_LBL_C_INIT_BEFORE_CC(V_CCOPT, V_INCLS)
-AC_PROG_CC
-AM_PROG_CC_C_O
-AC_LBL_C_INIT(V_CCOPT, V_INCLS)
-AC_LBL_C_INLINE
-AC_LBL_LIBPCAP(V_PCAPDEP, V_INCLS)
-AC_SUBST(V_CCOPT)
-AC_SUBST(V_DEFS)
-AC_SUBST(V_GROUP)
-AC_SUBST(V_INCLS)
-AC_SUBST(V_PCAPDEP)
-PKG_CHECK_MODULES([libcrypto], [libcrypto])
-AC_CONFIG_HEADER([config.h])
-AC_CONFIG_FILES([
- Makefile
-])
-AC_OUTPUT
-
diff --git a/package/ntlf9t/njitclient/src/debug.h b/package/ntlf9t/njitclient/src/debug.h
deleted file mode 100644
index 11ec15cf85..0000000000
--- a/package/ntlf9t/njitclient/src/debug.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* File: debug.h
- * -------------
- * 定义少量用于调试的宏函数
- *
- */
-
-#ifndef DEBUG_H
-#define DEBUG_H
-
-/**
- * Macro: DPRINTF()
- *
- * Usage: 调用格式与printf()一致,支持变长参数表,例子如下:
- *
- * #include "debug.h"
- * ...
- * int errcode;
- * char message[] = "xxx failed!";
- * ...
- * DPRINTF("Debug message: errcode=%d\n", errcode);
- * DPRINTF("Debug message: $s\n", message);
- * exit(errcode);
- *
- * 在发布版中定义NDEBUG宏可以清除所有DPRINTF()信息
- * 注:宏NDEBUG源自C语言惯例
- *
- */
-#ifdef NDEBUG
-# define DPRINTF(...)
-#else
-# include // 导入函数原型fprintf(stderr,"%format",...)
-# define DPRINTF(...) fprintf(stderr, __VA_ARGS__)
-#endif
-
-#endif // DEBUG_H
diff --git a/package/ntlf9t/njitclient/src/fillmd5-libcrypto.c b/package/ntlf9t/njitclient/src/fillmd5-libcrypto.c
deleted file mode 100644
index 6aa7c4e410..0000000000
--- a/package/ntlf9t/njitclient/src/fillmd5-libcrypto.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* File:
- * ---------------
- * 调用openssl提供的MD5函数
- */
-
-#include
-#include
-#include
-
-#include
-
-
-void FillMD5Area(uint8_t digest[], uint8_t id, const char passwd[], const uint8_t srcMD5[])
-{
- uint8_t msgbuf[128]; // msgbuf = ‘id‘ + ‘passwd’ + ‘srcMD5’
- size_t msglen;
- size_t passlen;
-
- passlen = strlen(passwd);
- msglen = 1 + passlen + 16;
- assert(sizeof(msgbuf) >= msglen);
-
- msgbuf[0] = id;
- memcpy(msgbuf+1, passwd, passlen);
- memcpy(msgbuf+1+passlen, srcMD5, 16);
-
- (void) MD5(msgbuf, msglen, digest);
-}
-
diff --git a/package/ntlf9t/njitclient/src/fillmd5-libgcrypt.c b/package/ntlf9t/njitclient/src/fillmd5-libgcrypt.c
deleted file mode 100644
index 230c15b7af..0000000000
--- a/package/ntlf9t/njitclient/src/fillmd5-libgcrypt.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* File: fillmd5.c
- * ---------------
- *
- */
-
-#include
-#include
-
-#include // GNU cryptographic function library (libgcrypt)
-
-
-void FillMD5Area(uint8_t digest[], uint8_t id, const char passwd[], const uint8_t srcMD5[])
-{
- uint8_t msgbuf[128]; // msgbuf = ‘id‘ + ‘passwd’ + ‘srcMD5’
- size_t msglen;
- size_t passlen;
-
- passlen = strlen(passwd);
- msglen = 1 + passlen + 16;
- assert(sizeof(msgbuf) >= msglen);
-
- msgbuf[0] = id;
- memcpy(msgbuf+1, passwd, passlen);
- memcpy(msgbuf+1+passlen, srcMD5, 16);
-
- // Calls libgcrypt function for MD5 generation
- gcry_md_hash_buffer(GCRY_MD_MD5, digest, msgbuf, msglen);
-}
-
diff --git a/package/ntlf9t/njitclient/src/h3c_AES_MD5.c b/package/ntlf9t/njitclient/src/h3c_AES_MD5.c
deleted file mode 100644
index 2794244b61..0000000000
--- a/package/ntlf9t/njitclient/src/h3c_AES_MD5.c
+++ /dev/null
@@ -1,152 +0,0 @@
-#include
-#include
-#include
-#include
-#include
-#include "aes.h"
-#include "h3c_dict.h"
-#include "h3c_AES_MD5.h"
-
-/* 大小端问题 */
-//大小端检测,如果 ENDIANNESS=='l' 则为小端
-static union { char c[4]; unsigned long mylong; } endian_test = {{ 'l', '?', '?', 'b' } };
-#define ENDIANNESS ((char)endian_test.mylong)
-//大小端转换
-#define BigLittleSwap32(A) ((((uint32_t)(A)&0xff000000)>>24)|\
- (((uint32_t)(A)&0x00ff0000)>>8)|\
- (((uint32_t)(A)&0x0000ff00)<<8)|\
- (((uint32_t)(A)&0x000000ff)<<24))
-//void main()
-//{
-// test();
-//}
-
-int test() {
- unsigned char encrypt_data[32] = { 0xcf, 0xfe, 0x64, 0x73, 0xd5, 0x73, 0x3b, 0x1f, 0x9e, 0x9a, 0xee, 0x1a, 0x6b, 0x76, 0x47, 0xc8, 0x9e, 0x27, 0xc8, 0x92, 0x25, 0x78, 0xc4, 0xc8, 0x27, 0x03, 0x34, 0x50, 0xb6, 0x10, 0xb8, 0x35 };
- unsigned char decrypt_data[32];
- unsigned char i;
-
- // decrypt
- h3c_AES_MD5_decryption(decrypt_data, encrypt_data);
-
- // print
- printf("encrypted string = ");
- for (i = 0; i<32; ++i) {
- printf("%x%x", ((int)encrypt_data[i] >> 4) & 0xf,
- (int)encrypt_data[i] & 0xf);
- }
- printf("\n");
- printf("decrypted string = ");
- for (i = 0; i<32; ++i) {
- printf("%x%x", ((int)decrypt_data[i] >> 4) & 0xf,
- (int)decrypt_data[i] & 0xf);
- }
- // the decrypt_data should be 8719362833108a6e16b08e33943601542511372d8d1fb1ab31aa17059118a6ba
- getchar();
- return 0;
-}
-
-//参考 h3c_AES_MD5.md 文档中对算法的说明
-int h3c_AES_MD5_decryption(unsigned char *decrypt_data, unsigned char *encrypt_data)
-{
- const unsigned char key[16] = { 0xEC, 0xD4, 0x4F, 0x7B, 0xC6, 0xDD, 0x7D, 0xDE, 0x2B, 0x7B, 0x51, 0xAB, 0x4A, 0x6F, 0x5A, 0x22 }; // AES_BLOCK_SIZE = 16
- unsigned char iv1[16] = { 'a', '@', '4', 'd', 'e', '%', '#', '1', 'a', 's', 'd', 'f', 's', 'd', '2', '4' }; // init vector
- unsigned char iv2[16] = { 'a', '@', '4', 'd', 'e', '%', '#', '1', 'a', 's', 'd', 'f', 's', 'd', '2', '4' }; //每次加密、解密后,IV会被改变!因此需要两组IV完成两次“独立的”解密
- unsigned int length_1;
- unsigned int length_2;
- unsigned char tmp0[32];
- unsigned char sig[255];
- unsigned char tmp2[16];
- unsigned char tmp3[16];
- // decrypt
- AES128_CBC_decrypt_buffer(tmp0, encrypt_data, 32, key, iv1);
- memcpy(decrypt_data, tmp0, 16);
- length_1 = *(tmp0 + 5);
- get_sig(*(uint32_t *)tmp0, *(tmp0 + 4), length_1, sig);
- MD5(sig, length_1, tmp2);
-
- AES128_CBC_decrypt_buffer(tmp3, tmp0+16, 16, tmp2, iv2);
-
- memcpy(decrypt_data + 16, tmp3, 16);
-
- length_2 = *(tmp3 + 15);
- get_sig(*(uint32_t *)(tmp3 + 10), *(tmp3 + 14), length_2, sig + length_1);
- if (length_1 + length_2>32)
- {
- memcpy(decrypt_data, sig, 32);
- }
- else
- {
- memcpy(decrypt_data, sig, length_1 + length_2);
- }
- MD5(decrypt_data, 32, decrypt_data);//获取MD5摘要数据,将结果存到前16位中
- MD5(decrypt_data, 16, decrypt_data + 16);//将前一MD5的结果再做一次MD5,存到后16位
- return 0;
-}
-
-
-// 查找表函数,根据索引值、偏移量以及长度查找序列
-char* get_sig(uint32_t index, int offset, int length, unsigned char* dst)
-{
- uint32_t index_tmp;
- const unsigned char *base_address;
- // printf("index = %x\n" ,index);
-
- if (ENDIANNESS == 'l')
- {
- index_tmp = BigLittleSwap32(index); // 小端情况,如PC架构
- }
- else
- {
- index_tmp = index; // 大端序,如MIPS架构
- }
- switch (index_tmp) // this line works in mips.
- {
- case 0x15D0EADF:base_address = x15D0EADF; break;
- case 0x09F40DE7:base_address = x09F40DE7; break;
- case 0x189DF2CE:base_address = x189DF2CE; break;
- case 0x1A8AED5C:base_address = x1A8AED5C; break;
- case 0x2F40F9D8:base_address = x2F40F9D8; break;
- case 0x45941B98:base_address = x45941B98; break;
- case 0x359F23C3:base_address = x359F23C3; break;
- case 0x4167F618:base_address = x4167F618; break;
- case 0x4BEE2975:base_address = x4BEE2975; break;
- case 0x57F612DD:base_address = x57F612DD; break;
- case 0x36D426DD:base_address = x36D426DD; break;
- case 0x5E51B55F:base_address = x5E51B55F; break;
- case 0xF245C41D:base_address = xF245C41D; break;
- case 0x545CEFE0:base_address = x545CEFE0; break;
- case 0x5E08D0E0:base_address = x5E08D0E0; break;
- case 0x5E877108:base_address = x5E877108; break;
- case 0x7130F3A5:base_address = x7130F3A5; break;
- case 0x6DD9572F:base_address = x6DD9572F; break;
- case 0x67195BB6:base_address = x67195BB6; break;
- case 0x70886376:base_address = x70886376; break;
- case 0x7137CD3A:base_address = x7137CD3A; break;
- case 0xEF432FB9:base_address = xEF432FB9; break;
- case 0xED4B7E03:base_address = xED4B7E03; break;
- case 0xF1C07C91:base_address = xF1C07C91; break;
- case 0xE45C3124:base_address = xE45C3124; break;
- case 0xDAB58841:base_address = xDAB58841; break;
- case 0xDA58A32E:base_address = xDA58A32E; break;
- case 0xDF977247:base_address = xDF977247; break;
- case 0xEAE0E002:base_address = xEAE0E002; break;
- case 0xC3A46827:base_address = xC3A46827; break;
- case 0xB0F2918A:base_address = xB0F2918A; break;
- case 0xAF4ED407:base_address = xAF4ED407; break;
- case 0xBB9EC2E1:base_address = xBB9EC2E1; break;
- case 0xA8902F8B:base_address = xA8902F8B; break;
- case 0xA3747988:base_address = xA3747988; break;
- case 0x84E4BC95:base_address = x84E4BC95; break;
- case 0x763F4D5B:base_address = x763F4D5B; break;
- case 0x9F6C10A6:base_address = x9F6C10A6; break;
- case 0xA9407E26:base_address = xA9407E26; break;
- case 0xCCF59F07:base_address = xCCF59F07; break;
- default:
- printf("lookup dict failed.\n"); // 查表失败
- base_address = xCCF59F07;
- break;
- }
- memcpy(dst, base_address + offset, length);
- return dst;
-}
diff --git a/package/ntlf9t/njitclient/src/h3c_AES_MD5.h b/package/ntlf9t/njitclient/src/h3c_AES_MD5.h
deleted file mode 100644
index c29ad59bf9..0000000000
--- a/package/ntlf9t/njitclient/src/h3c_AES_MD5.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef h3c_AES_MD5_
-#define h3c_AES_MD5_
-#include
-int h3c_AES_MD5_decryption(unsigned char *decrypt_data, unsigned char *encrypt_data);
-int test();
-char* get_sig(uint32_t index, int offset, int length, unsigned char* dst);
-#endif
diff --git a/package/ntlf9t/njitclient/src/h3c_dict.h b/package/ntlf9t/njitclient/src/h3c_dict.h
deleted file mode 100644
index ae7e2cec12..0000000000
--- a/package/ntlf9t/njitclient/src/h3c_dict.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* dictionary for inode 7.1 E0313 20161019*/
-const unsigned char x15D0EADF[] = { 0xC8, 0x0F, 0x84, 0xFA, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xEF, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x56, 0x33, 0xF6, 0x84, 0xD2, 0x74, 0x3B, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x74, 0x34, 0x8D, 0x34, 0x07, 0x3A, 0xDA, 0x75, 0x65, 0x8D, 0x04, 0x36, 0x8D, 0x7C, 0x07, 0x01, 0x84, 0xD2, 0x74, 0x06, 0x03, 0xF8, 0x46, 0xFF, 0x45, 0x0C, 0x8D, 0x04, 0x3E, 0x8D, 0x3C, 0x06, 0x84, 0xDB, 0x74, 0x09, 0x03, 0xF0, 0x03, 0xFE, 0x8D, 0x34, 0x07, 0x47, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xC5, 0x8D, 0x14, 0x06, 0x03, 0xFA, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x46, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x74, 0x73, 0x8B, 0xFF, 0x8A, 0x19, 0x8D, 0x14, 0x3E, 0x8D, 0x44, 0x10, 0x01, 0x80, 0xFB, 0x2A, 0x75, 0x1F, 0x41, 0x80, 0x39, 0x00, 0x74, 0x76, 0x8D, 0x44, 0x10, 0x01, 0x8B, 0x55, 0x0C, 0x8D, 0x34, 0x07, 0x47, 0x89, 0x4D, 0xF8, 0xEB, 0x3D, 0x5E, 0x5B, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x14, 0x78, 0x03, 0xF2, 0x8A, 0x55, 0x0B, 0x3A, 0xDA, 0x75, 0x1B, 0x84, 0xD2, 0x74, 0x0A, 0xFF, 0x45, 0x0C, 0x8D, 0x14, 0x3E, 0x8D, 0x44, 0x10, 0x01, 0x84, 0xDB, 0x74, 0x1A, 0x8D, 0x04, 0x3E, 0x8D, 0x3C, 0x06, 0x41, 0xEB, 0x11, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x8B, 0xF8, 0x40, 0x46, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x75, 0x8F, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5E, 0x5B, 0x0F, 0x94, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x5E, 0x5B, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5F, 0x8B, 0xE5, 0x5D, };
-const unsigned char x09F40DE7[] = { 0x8B, 0x7D, 0x08, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xF8, 0x0F, 0x84, 0xE6, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xDB, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x56, 0x8D, 0x70, 0x01, 0x8D, 0x48, 0x02, 0x84, 0xD2, 0x74, 0x41, 0x8A, 0x1F, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x37, 0x3A, 0xDA, 0x75, 0x5E, 0x8D, 0x44, 0x31, 0x01, 0x83, 0xC1, 0x02, 0x8D, 0x1C, 0x31, 0x03, 0xC3, 0x84, 0xD2, 0x74, 0x09, 0x03, 0xC8, 0xFF, 0x45, 0x0C, 0x8D, 0x74, 0x0E, 0x02, 0x8D, 0x0C, 0x30, 0x40, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x07, 0x8D, 0x14, 0x01, 0x03, 0xF2, 0x41, 0x47, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xBF, 0x03, 0xC8, 0x03, 0xF1, 0x8B, 0x4D, 0x0C, 0x8A, 0x11, 0x84, 0xD2, 0x74, 0x57, 0x8A, 0x0F, 0x8B, 0xD8, 0x40, 0x80, 0xF9, 0x2A, 0x75, 0x1D, 0x47, 0x80, 0x3F, 0x00, 0x74, 0x63, 0x8B, 0x55, 0x0C, 0x03, 0xC6, 0x42, 0x89, 0x7D, 0xF8, 0x89, 0x55, 0xFC, 0xEB, 0x30, 0x5E, 0x5B, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x03, 0xDE, 0x03, 0xC3, 0x3A, 0xCA, 0x75, 0x0F, 0x84, 0xD2, 0x74, 0x04, 0x40, 0xFF, 0x45, 0x0C, 0x84, 0xC9, 0x74, 0x13, 0x47, 0xEB, 0x10, 0x8B, 0x4D, 0xFC, 0x8B, 0x7D, 0xF8, 0x8B, 0xC6, 0x46, 0x89, 0x4D, 0x0C, 0x41, 0x89, 0x4D, 0xFC, 0x8B, 0x4D, 0x0C, 0x8A, 0x11, 0x84, 0xD2, 0x75, 0xA9, 0x80, 0x3F, 0x2A, 0x75, 0x09, 0x8D, 0x49, 0x00, 0x47, 0x80, 0x3F, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x07, 0x5E, 0x5B, 0x0F, 0x94, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x5E, 0x5B, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0xCC, 0xCC, };
-const unsigned char x189DF2CE[] = { 0x00, 0x00, 0x8B, 0x4D, 0x0C, 0x3B, 0xC8, 0x0F, 0x84, 0xDD, 0x00, 0x00, 0x00, 0x8A, 0x09, 0x53, 0x56, 0x57, 0xBF, 0x01, 0x00, 0x00, 0x00, 0x8B, 0xF7, 0x84, 0xC9, 0x74, 0x40, 0x8A, 0x1A, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x36, 0x8D, 0x1C, 0x06, 0x03, 0xFB, 0x38, 0x4D, 0x0B, 0x75, 0x57, 0x8D, 0x5C, 0x3E, 0x01, 0x03, 0xC3, 0x84, 0xC9, 0x74, 0x07, 0xFF, 0x45, 0x0C, 0x8D, 0x44, 0x3E, 0x03, 0x8D, 0x34, 0x38, 0x40, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x08, 0x8D, 0x74, 0x38, 0x01, 0x83, 0xC0, 0x02, 0x42, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x84, 0xC9, 0x75, 0xC0, 0x8D, 0x34, 0x38, 0x8B, 0x45, 0x0C, 0x8A, 0x18, 0x84, 0xDB, 0x74, 0x5C, 0x8A, 0x0A, 0x8D, 0x04, 0x3E, 0x80, 0xF9, 0x2A, 0x75, 0x1E, 0x42, 0x80, 0x3A, 0x00, 0x74, 0x65, 0x8B, 0x4D, 0x0C, 0x83, 0xC6, 0x03, 0x41, 0x89, 0x55, 0xF8, 0x89, 0x4D, 0xFC, 0xEB, 0x34, 0x5F, 0x5E, 0x33, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x8B, 0xF0, 0x3A, 0xCB, 0x75, 0x15, 0x84, 0xDB, 0x74, 0x07, 0xFF, 0x45, 0x0C, 0x8D, 0x7C, 0x00, 0x01, 0x84, 0xC9, 0x74, 0x16, 0x8D, 0x70, 0x01, 0x42, 0xEB, 0x10, 0x8B, 0x55, 0xF8, 0x8D, 0x70, 0x01, 0x8B, 0x45, 0xFC, 0x89, 0x45, 0x0C, 0x40, 0x89, 0x45, 0xFC, 0x8B, 0x45, 0x0C, 0x8A, 0x18, 0x84, 0xDB, 0x75, 0xA4, 0x80, 0x3A, 0x2A, 0x75, 0x06, 0x42, 0x80, 0x3A, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x02, 0x5F, 0x5E, 0x0F, 0x94, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5E, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x33, 0xC0, 0x8B, 0xE5, 0x5D, 0xC3, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x08, 0x8B, };
-const unsigned char x1A8AED5C[] = { 0x33, 0xC0, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xC8, 0x0F, 0x84, 0xED, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xE2, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x56, 0x57, 0x8D, 0x70, 0x01, 0x84, 0xD2, 0x74, 0x40, 0x8A, 0x19, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x36, 0x8B, 0xF8, 0x40, 0x89, 0x45, 0xF4, 0x3A, 0xDA, 0x75, 0x58, 0x8D, 0x1C, 0x07, 0x8D, 0x74, 0x1E, 0x01, 0x84, 0xD2, 0x74, 0x0A, 0x8B, 0xF8, 0x03, 0xF7, 0xFF, 0x45, 0x0C, 0x8D, 0x04, 0x37, 0x03, 0xF8, 0x03, 0xF7, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x04, 0x46, 0x8B, 0xC6, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xC0, 0x8B, 0x55, 0x0C, 0x8A, 0x1A, 0x40, 0x84, 0xDB, 0x74, 0x67, 0x8D, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x11, 0x8B, 0xF8, 0x40, 0x80, 0xFA, 0x2A, 0x75, 0x1B, 0x41, 0x80, 0x39, 0x00, 0x74, 0x6A, 0x8B, 0x55, 0x0C, 0x03, 0xF0, 0x03, 0xC6, 0x89, 0x4D, 0xF8, 0xEB, 0x38, 0x5F, 0x5E, 0x33, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x34, 0x07, 0x8D, 0x04, 0x37, 0x3A, 0xD3, 0x75, 0x18, 0x84, 0xDB, 0x74, 0x07, 0x8D, 0x3C, 0x30, 0x40, 0xFF, 0x45, 0x0C, 0x84, 0xD2, 0x74, 0x1A, 0x03, 0xF8, 0x8D, 0x74, 0x3E, 0x01, 0x41, 0xEB, 0x11, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x03, 0xF8, 0x03, 0xF7, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x1A, 0x84, 0xDB, 0x75, 0x9F, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5F, 0x5E, 0x0F, 0x94, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5E, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x33, 0xC0, 0x8B, };
-const unsigned char x2F40F9D8[] = { 0xF8, 0x89, 0x75, 0xFC, 0x3B, 0xCE, 0x0F, 0x84, 0xFD, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD6, 0x0F, 0x84, 0xF2, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x57, 0x8D, 0x46, 0x04, 0x84, 0xD2, 0x74, 0x36, 0x8A, 0x19, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x2C, 0x3A, 0xDA, 0x75, 0x68, 0x8D, 0x58, 0x01, 0x8B, 0xF0, 0x8B, 0xFB, 0x84, 0xD2, 0x74, 0x06, 0xFF, 0x45, 0x0C, 0x8D, 0x3C, 0x47, 0x03, 0xC7, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x06, 0x8D, 0x04, 0x70, 0x8B, 0xF3, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xCA, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x03, 0xF0, 0x8D, 0x3C, 0x06, 0x46, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x74, 0x7A, 0xEB, 0x06, 0x8D, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x19, 0x8D, 0x14, 0x3E, 0x8D, 0x44, 0x10, 0x01, 0x80, 0xFB, 0x2A, 0x75, 0x21, 0x41, 0x80, 0x39, 0x00, 0x74, 0x77, 0x8D, 0x3C, 0x02, 0x8D, 0x14, 0x78, 0x8D, 0x74, 0x16, 0x01, 0x8B, 0x55, 0x0C, 0x89, 0x4D, 0xF8, 0xEB, 0x3C, 0x5F, 0x5B, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x8A, 0x55, 0x0B, 0x8D, 0x34, 0x07, 0x47, 0x3A, 0xDA, 0x75, 0x18, 0x84, 0xD2, 0x74, 0x09, 0x8D, 0x14, 0x06, 0x03, 0xFA, 0x46, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x1B, 0x8B, 0xF8, 0x40, 0x46, 0x41, 0xEB, 0x14, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x03, 0xF7, 0x03, 0xC6, 0x8B, 0xF7, 0x47, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x75, 0x8E, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5F, 0x5B, 0x0F, 0x94, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5B, 0xB8, };
-const unsigned char x45941B98[] = { 0x00, 0x00, 0x8B, 0x5D, 0x0C, 0x3B, 0xDA, 0x0F, 0x84, 0xDA, 0x00, 0x00, 0x00, 0x8A, 0x0B, 0x56, 0x33, 0xF6, 0x8D, 0x42, 0x01, 0x84, 0xC9, 0x74, 0x38, 0x8A, 0x1F, 0x80, 0xFB, 0x2A, 0x74, 0x2E, 0x3A, 0xD9, 0x75, 0x21, 0x46, 0x84, 0xC9, 0x74, 0x03, 0xFF, 0x45, 0x0C, 0x8D, 0x4E, 0x01, 0x8B, 0xC1, 0x84, 0xDB, 0x74, 0x05, 0x8B, 0xC6, 0x8B, 0xF1, 0x47, 0x8B, 0x5D, 0x0C, 0x8A, 0x0B, 0x84, 0xC9, 0x75, 0xD6, 0xEB, 0x0C, 0x5E, 0x5F, 0x33, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x8B, 0x5D, 0x0C, 0x8A, 0x0B, 0x03, 0xC6, 0x46, 0x88, 0x4D, 0x0B, 0x84, 0xC9, 0x74, 0x5E, 0x8A, 0x0F, 0x03, 0xC6, 0x8D, 0x54, 0x02, 0x01, 0x80, 0xF9, 0x2A, 0x75, 0x14, 0x47, 0x80, 0x3F, 0x00, 0x74, 0x6B, 0x8B, 0xC2, 0x42, 0x83, 0xC6, 0x02, 0x89, 0x7D, 0xF8, 0x8D, 0x4B, 0x01, 0xEB, 0x31, 0x8A, 0x5D, 0x0B, 0x8B, 0xD0, 0x8D, 0x04, 0x16, 0x3A, 0xCB, 0x75, 0x16, 0x84, 0xDB, 0x8B, 0x5D, 0x0C, 0x74, 0x05, 0x46, 0x43, 0x89, 0x5D, 0x0C, 0x84, 0xC9, 0x74, 0x18, 0x8B, 0xF0, 0x40, 0x47, 0xEB, 0x12, 0x8B, 0x4D, 0xFC, 0x8B, 0x7D, 0xF8, 0x8B, 0xD9, 0x8B, 0xF0, 0x40, 0x89, 0x5D, 0x0C, 0x41, 0x89, 0x4D, 0xFC, 0x8A, 0x0B, 0x88, 0x4D, 0x0B, 0x84, 0xC9, 0x75, 0xA2, 0x80, 0x3F, 0x2A, 0x75, 0x0D, 0x8D, 0xA4, 0x24, 0x00, 0x00, 0x00, 0x00, 0x47, 0x80, 0x3F, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x07, 0x5E, 0x5F, 0x0F, 0x94, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x5E, 0x5F, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x33, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x08, 0x8B, 0x4D, 0x08, };
-const unsigned char x359F23C3[] = { 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xC8, 0x0F, 0x84, 0xEB, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xE0, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x57, 0x84, 0xD2, 0x74, 0x3B, 0x90, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x74, 0x33, 0x8B, 0xF8, 0x3A, 0xDA, 0x75, 0x5E, 0x47, 0x8D, 0x44, 0x46, 0x01, 0x84, 0xD2, 0x74, 0x0E, 0x8D, 0x14, 0x37, 0x03, 0xC2, 0x03, 0xF8, 0xFF, 0x45, 0x0C, 0x8D, 0x74, 0x3E, 0x01, 0x8B, 0xF8, 0x40, 0x84, 0xDB, 0x74, 0x06, 0x03, 0xF8, 0x03, 0xF7, 0x40, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xC6, 0x8B, 0x55, 0x0C, 0x8A, 0x1A, 0x8B, 0xF8, 0x40, 0x84, 0xDB, 0x74, 0x6C, 0x8D, 0x14, 0x07, 0x03, 0xF2, 0x8A, 0x11, 0x80, 0xFA, 0x2A, 0x75, 0x22, 0x41, 0x80, 0x39, 0x00, 0x74, 0x73, 0x8D, 0x54, 0x07, 0x01, 0x8D, 0x74, 0x56, 0x01, 0x8B, 0x55, 0x0C, 0x83, 0xC7, 0x02, 0x89, 0x4D, 0xF8, 0xEB, 0x3A, 0x5F, 0x5B, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x8B, 0xF8, 0x40, 0x89, 0x45, 0x08, 0x3A, 0xD3, 0x75, 0x17, 0x84, 0xDB, 0x74, 0x09, 0x8B, 0x7D, 0x08, 0x8B, 0xC6, 0x46, 0xFF, 0x45, 0x0C, 0x84, 0xD2, 0x74, 0x1A, 0x8B, 0xF8, 0x40, 0x41, 0xEB, 0x14, 0x8B, 0x55, 0xFC, 0x8D, 0x0C, 0x07, 0x8D, 0x74, 0x0E, 0x01, 0x8B, 0x4D, 0xF8, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x1A, 0x84, 0xDB, 0x75, 0x94, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5F, 0x5B, 0x0F, 0x94, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5B, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0xCC, 0xCC, };
-const unsigned char x4167F618[] = { 0xEC, 0x83, 0xEC, 0x08, 0x8B, 0x4D, 0x08, 0x33, 0xC0, 0x56, 0x33, 0xF6, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xC8, 0x0F, 0x84, 0xE4, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xD9, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x57, 0x8D, 0x78, 0x01, 0x84, 0xD2, 0x74, 0x44, 0x8A, 0x19, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x3A, 0x8D, 0x1C, 0x7E, 0x03, 0xC3, 0x38, 0x55, 0x0B, 0x75, 0x51, 0x8D, 0x1C, 0x38, 0x03, 0xF3, 0x40, 0x84, 0xD2, 0x74, 0x09, 0x40, 0x03, 0xF0, 0xFF, 0x45, 0x0C, 0x8D, 0x3C, 0x30, 0x8D, 0x14, 0x38, 0x03, 0xF2, 0x40, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x08, 0x8B, 0xC6, 0x46, 0x03, 0xC6, 0x8B, 0xFE, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xBC, 0x8B, 0x55, 0x0C, 0x8A, 0x1A, 0x40, 0x84, 0xDB, 0x74, 0x56, 0x8A, 0x11, 0x03, 0xC6, 0x80, 0xFA, 0x2A, 0x75, 0x17, 0x41, 0x80, 0x39, 0x00, 0x74, 0x65, 0x8B, 0x55, 0x0C, 0x89, 0x4D, 0xF8, 0xEB, 0x2E, 0x5F, 0x5B, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x3A, 0xD3, 0x75, 0x18, 0x84, 0xDB, 0x74, 0x0B, 0xFF, 0x45, 0x0C, 0x8D, 0x5C, 0x00, 0x01, 0x8D, 0x74, 0x1E, 0x01, 0x84, 0xD2, 0x74, 0x16, 0x46, 0x40, 0x41, 0xEB, 0x11, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8D, 0x44, 0x30, 0x01, 0x8B, 0x55, 0x0C, 0x8A, 0x1A, 0x84, 0xDB, 0x75, 0xAA, 0x80, 0x39, 0x2A, 0x75, 0x0B, 0xEB, 0x03, 0x8D, 0x49, 0x00, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5F, 0x5B, 0x0F, 0x94, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5B, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x33, 0xC0, };
-const unsigned char x4BEE2975[] = { 0x8B, 0x4D, 0x08, 0x33, 0xC0, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xC8, 0x0F, 0x84, 0xFA, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xEF, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x56, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x57, 0x8B, 0xF8, 0x8D, 0x70, 0x03, 0x84, 0xD2, 0x74, 0x39, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x74, 0x32, 0x8D, 0x3C, 0x30, 0x3A, 0xDA, 0x75, 0x5C, 0x8D, 0x47, 0x01, 0x8D, 0x7C, 0x7E, 0x01, 0x84, 0xD2, 0x74, 0x06, 0x8B, 0xC7, 0x47, 0xFF, 0x45, 0x0C, 0x8D, 0x14, 0x30, 0x03, 0xFA, 0x40, 0x84, 0xDB, 0x74, 0x07, 0x8D, 0x34, 0x38, 0x8D, 0x3C, 0x30, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xC7, 0x8D, 0x14, 0x38, 0x03, 0xF2, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x40, 0x84, 0xD2, 0x74, 0x6F, 0x90, 0x8D, 0x1C, 0x7E, 0x03, 0xC3, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x75, 0x1E, 0x41, 0x80, 0x39, 0x00, 0x74, 0x75, 0x8D, 0x14, 0x38, 0x8D, 0x74, 0x16, 0x01, 0x8B, 0x55, 0x0C, 0x89, 0x4D, 0xF8, 0xEB, 0x40, 0x5F, 0x5E, 0x33, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x8B, 0xFE, 0x46, 0x40, 0x89, 0x75, 0x08, 0x3A, 0xDA, 0x75, 0x19, 0x84, 0xD2, 0x74, 0x09, 0x8D, 0x14, 0x38, 0x03, 0xF2, 0x40, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x1F, 0x8D, 0x14, 0x7E, 0x03, 0xC2, 0x41, 0xEB, 0x17, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x03, 0xC7, 0x03, 0xF0, 0x8D, 0x04, 0x37, 0x8B, 0x7D, 0x08, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0x92, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5F, 0x5E, 0x0F, 0x94, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, };
-const unsigned char x57F612DD[] = { 0x4D, 0x08, 0x33, 0xD2, 0x57, 0x89, 0x55, 0xF8, 0x89, 0x55, 0xFC, 0x8D, 0x42, 0x01, 0x3B, 0xCA, 0x0F, 0x84, 0xE7, 0x00, 0x00, 0x00, 0x8B, 0x7D, 0x0C, 0x3B, 0xFA, 0x0F, 0x84, 0xDC, 0x00, 0x00, 0x00, 0x8A, 0x17, 0x53, 0x56, 0x8B, 0xF0, 0x84, 0xD2, 0x74, 0x2D, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x74, 0x26, 0x8B, 0xF0, 0x40, 0x3A, 0xDA, 0x75, 0x55, 0x84, 0xD2, 0x74, 0x07, 0xFF, 0x45, 0x0C, 0x8D, 0x44, 0x36, 0x01, 0x8B, 0xF0, 0x40, 0x84, 0xDB, 0x74, 0x04, 0x8B, 0xF0, 0x40, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xD3, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x8D, 0x3C, 0x06, 0x46, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x74, 0x70, 0x90, 0x8A, 0x19, 0x8D, 0x14, 0x37, 0x8D, 0x44, 0x10, 0x01, 0x80, 0xFB, 0x2A, 0x75, 0x20, 0x41, 0x80, 0x39, 0x00, 0x74, 0x74, 0x8D, 0x3C, 0x06, 0x46, 0x8D, 0x14, 0x37, 0x03, 0xC2, 0x8B, 0x55, 0x0C, 0x89, 0x4D, 0xF8, 0xEB, 0x39, 0x5E, 0x5B, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x8B, 0xC2, 0x8A, 0x55, 0x0B, 0x8D, 0x34, 0x07, 0x3A, 0xDA, 0x75, 0x16, 0x84, 0xD2, 0x74, 0x07, 0x8B, 0xF0, 0x40, 0x47, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x1A, 0x8D, 0x3C, 0x06, 0x46, 0x41, 0xEB, 0x13, 0x8B, 0x55, 0xFC, 0x8D, 0x0C, 0x07, 0x03, 0xF1, 0x8B, 0x4D, 0xF8, 0x89, 0x55, 0x0C, 0x47, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x75, 0x91, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5E, 0x5B, 0x0F, 0x94, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x5E, 0x5B, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x33, 0xC0, 0x5F, };
-const unsigned char x36D426DD[] = { 0x57, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xD0, 0x0F, 0x84, 0xFD, 0x00, 0x00, 0x00, 0x8B, 0x7D, 0x0C, 0x3B, 0xF8, 0x0F, 0x84, 0xF2, 0x00, 0x00, 0x00, 0x53, 0x8A, 0x1F, 0x56, 0x8D, 0x48, 0x02, 0x8D, 0x70, 0x0D, 0x8D, 0x41, 0x05, 0x88, 0x5D, 0x0B, 0x84, 0xDB, 0x74, 0x3B, 0x8D, 0xA4, 0x24, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1A, 0x80, 0xFB, 0x2A, 0x74, 0x2D, 0x8A, 0x45, 0x0B, 0x3A, 0xD8, 0x75, 0x59, 0x83, 0xC1, 0x02, 0x84, 0xC0, 0x74, 0x04, 0x41, 0xFF, 0x45, 0x0C, 0x8D, 0x04, 0x31, 0x41, 0x84, 0xDB, 0x74, 0x07, 0x8D, 0x34, 0x08, 0x8D, 0x0C, 0x30, 0x42, 0x8B, 0x7D, 0x0C, 0x8A, 0x1F, 0x88, 0x5D, 0x0B, 0x84, 0xDB, 0x75, 0xCC, 0x8D, 0x34, 0x08, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x8D, 0x3C, 0x30, 0x40, 0x88, 0x4D, 0x0B, 0x84, 0xC9, 0x74, 0x6B, 0x8A, 0x1A, 0x8D, 0x0C, 0x38, 0x8D, 0x74, 0x0E, 0x01, 0x80, 0xFB, 0x2A, 0x75, 0x1B, 0x42, 0x80, 0x3A, 0x00, 0x74, 0x70, 0x8D, 0x74, 0x0E, 0x01, 0x8B, 0x4D, 0x0C, 0x89, 0x55, 0xF8, 0xEB, 0x3B, 0x5E, 0x5B, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x8A, 0x4D, 0x0B, 0x8B, 0xC7, 0x47, 0x3A, 0xD9, 0x75, 0x1A, 0x84, 0xC9, 0x74, 0x09, 0xFF, 0x45, 0x0C, 0x8D, 0x34, 0x38, 0x8D, 0x3C, 0x30, 0x84, 0xDB, 0x74, 0x1B, 0x8D, 0x34, 0x38, 0x8D, 0x3C, 0x30, 0x42, 0xEB, 0x12, 0x8B, 0x4D, 0xFC, 0x8D, 0x14, 0x7E, 0x03, 0xC2, 0x8B, 0x55, 0xF8, 0x89, 0x4D, 0x0C, 0x41, 0x89, 0x4D, 0xFC, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x88, 0x4D, 0x0B, 0x84, 0xC9, 0x75, 0x95, 0x80, 0x3A, 0x2A, 0x75, 0x06, 0x42, 0x80, 0x3A, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x02, 0x5E, 0x5B, 0x0F, 0x94, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, };
-const unsigned char x5E51B55F[] = { 0x7D, 0x08, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x8D, 0x70, 0x01, 0x3B, 0xF8, 0x0F, 0x84, 0xF3, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xE8, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x8D, 0x48, 0x02, 0x84, 0xD2, 0x74, 0x40, 0x8A, 0x1F, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x36, 0x8B, 0xF0, 0x40, 0x3A, 0xDA, 0x75, 0x6A, 0x8D, 0x1C, 0x06, 0x8D, 0x4C, 0x19, 0x01, 0x84, 0xD2, 0x74, 0x06, 0x8B, 0xF0, 0x40, 0xFF, 0x45, 0x0C, 0x80, 0x7D, 0x0B, 0x00, 0x8D, 0x14, 0x06, 0x8D, 0x4C, 0x11, 0x01, 0x74, 0x08, 0x8D, 0x70, 0x01, 0x8D, 0x44, 0x41, 0x01, 0x47, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xC0, 0x8D, 0x14, 0x0E, 0x46, 0x03, 0xC2, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x03, 0xCE, 0x03, 0xC1, 0x8D, 0x4C, 0x06, 0x01, 0x8D, 0x44, 0x0E, 0x02, 0x84, 0xD2, 0x74, 0x5E, 0x8B, 0xFF, 0x8A, 0x1F, 0x8B, 0xF0, 0x40, 0x89, 0x75, 0x08, 0x80, 0xFB, 0x2A, 0x75, 0x1A, 0x47, 0x80, 0x3F, 0x00, 0x74, 0x62, 0x8B, 0x55, 0x0C, 0x8B, 0xC1, 0x41, 0x89, 0x7D, 0xF8, 0xEB, 0x31, 0x5B, 0x5F, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x03, 0xF0, 0x03, 0xCE, 0x3A, 0xDA, 0x75, 0x16, 0x84, 0xD2, 0x74, 0x0A, 0x8B, 0x45, 0x08, 0xFF, 0x45, 0x0C, 0x8D, 0x44, 0x08, 0x01, 0x84, 0xDB, 0x74, 0x12, 0x40, 0x47, 0xEB, 0x0E, 0x8B, 0x55, 0xFC, 0x8B, 0x7D, 0xF8, 0x40, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xA4, 0x80, 0x3F, 0x2A, 0x75, 0x06, 0x47, 0x80, 0x3F, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x07, 0x5B, 0x5F, 0x0F, 0x94, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5B, 0x5F, 0xB8, 0x01, 0x00, 0x00, };
-const unsigned char xF245C41D[] = { 0xF6, 0x57, 0x33, 0xFF, 0x89, 0x75, 0xF8, 0x89, 0x75, 0xFC, 0x3B, 0xCE, 0x0F, 0x84, 0xF3, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD6, 0x0F, 0x84, 0xE8, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x8D, 0x46, 0x01, 0x84, 0xD2, 0x74, 0x3D, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x74, 0x36, 0x3A, 0xDA, 0x75, 0x66, 0x8D, 0x7C, 0x30, 0x01, 0x83, 0xC0, 0x02, 0x84, 0xD2, 0x74, 0x0F, 0x8D, 0x14, 0x38, 0x03, 0xD6, 0xFF, 0x45, 0x0C, 0x8D, 0x14, 0x56, 0x8D, 0x44, 0x10, 0x01, 0x8D, 0x3C, 0x30, 0x40, 0x84, 0xDB, 0x74, 0x07, 0x8D, 0x34, 0x38, 0x8D, 0x3C, 0x30, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xC3, 0x8B, 0x5D, 0x0C, 0x8D, 0x14, 0x38, 0x03, 0xF2, 0x8A, 0x13, 0x40, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x74, 0x6A, 0x8A, 0x11, 0x8B, 0xFE, 0x46, 0x80, 0xFA, 0x2A, 0x75, 0x21, 0x41, 0x80, 0x39, 0x00, 0x74, 0x73, 0x8D, 0x74, 0x47, 0x02, 0x03, 0xF6, 0x83, 0xC0, 0x02, 0x43, 0x89, 0x4D, 0xF8, 0x89, 0x5D, 0xFC, 0xEB, 0x3C, 0x5B, 0x5F, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x5C, 0x30, 0x01, 0x03, 0xFB, 0x8A, 0x5D, 0x0B, 0x83, 0xC0, 0x02, 0x3A, 0xD3, 0x75, 0x13, 0x84, 0xDB, 0x74, 0x08, 0x8D, 0x1C, 0x7E, 0x03, 0xC3, 0xFF, 0x45, 0x0C, 0x84, 0xD2, 0x74, 0x13, 0x41, 0xEB, 0x0D, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8D, 0x04, 0x37, 0x8B, 0x5D, 0x0C, 0x8A, 0x13, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x75, 0x96, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5B, 0x5F, 0x0F, 0x94, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5B, 0x5F, 0xB8, 0x01, 0x00, 0x00, 0x00, };
-const unsigned char x545CEFE0[] = { 0xC9, 0x57, 0x8B, 0x7D, 0x08, 0x33, 0xF6, 0x89, 0x4D, 0xF8, 0x89, 0x4D, 0xFC, 0x3B, 0xF9, 0x0F, 0x84, 0xE7, 0x00, 0x00, 0x00, 0x8B, 0x5D, 0x0C, 0x3B, 0xD9, 0x0F, 0x84, 0xDC, 0x00, 0x00, 0x00, 0x8A, 0x13, 0x8D, 0x41, 0x01, 0x84, 0xD2, 0x74, 0x41, 0x8A, 0x1F, 0x80, 0xFB, 0x2A, 0x74, 0x37, 0x8D, 0x34, 0x01, 0x3A, 0xDA, 0x0F, 0x85, 0xC1, 0x00, 0x00, 0x00, 0x84, 0xD2, 0x74, 0x05, 0x03, 0xCE, 0xFF, 0x45, 0x0C, 0x8B, 0xC6, 0x8D, 0x74, 0x71, 0x02, 0x83, 0xC1, 0x02, 0x8D, 0x14, 0x01, 0x8D, 0x74, 0x16, 0x01, 0x84, 0xDB, 0x74, 0x04, 0x03, 0xF2, 0x41, 0x47, 0x8B, 0x5D, 0x0C, 0x8A, 0x13, 0x84, 0xD2, 0x75, 0xC4, 0xEB, 0x03, 0x8B, 0x5D, 0x0C, 0x8A, 0x13, 0x03, 0xCE, 0x03, 0xC1, 0x84, 0xD2, 0x74, 0x63, 0x8D, 0x49, 0x00, 0x8D, 0x0C, 0x30, 0x89, 0x4D, 0x08, 0x8A, 0x0F, 0x40, 0x80, 0xF9, 0x2A, 0x75, 0x11, 0x47, 0x80, 0x3F, 0x00, 0x74, 0x65, 0x8D, 0x53, 0x01, 0x89, 0x7D, 0xF8, 0x89, 0x55, 0xFC, 0xEB, 0x3B, 0xFF, 0x45, 0x08, 0x8B, 0xC6, 0x46, 0x3A, 0xCA, 0x75, 0x20, 0x8B, 0x5D, 0x0C, 0x84, 0xD2, 0x74, 0x04, 0x43, 0x89, 0x5D, 0x0C, 0x84, 0xC9, 0x74, 0x22, 0x8B, 0x4D, 0x08, 0x8D, 0x14, 0x31, 0x03, 0xC2, 0x03, 0xC8, 0x8D, 0x74, 0x0E, 0x02, 0x47, 0xEB, 0x11, 0x8B, 0x4D, 0xFC, 0x8B, 0x7D, 0xF8, 0x8B, 0xD9, 0x41, 0x8B, 0xC6, 0x89, 0x5D, 0x0C, 0x89, 0x4D, 0xFC, 0x8A, 0x13, 0x84, 0xD2, 0x75, 0xA0, 0x80, 0x3F, 0x2A, 0x75, 0x06, 0x47, 0x80, 0x3F, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x07, 0x5F, 0x5E, 0x0F, 0x94, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5E, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5E, 0x33, 0xC0, };
-const unsigned char x5E08D0E0[] = { 0x4D, 0x08, 0x33, 0xC0, 0x56, 0x89, 0x45, 0xF4, 0x89, 0x45, 0xFC, 0x8D, 0x70, 0x01, 0x3B, 0xC8, 0x0F, 0x84, 0x07, 0x01, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xFC, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x57, 0x8D, 0x46, 0x01, 0x84, 0xD2, 0x74, 0x47, 0x8A, 0x19, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x3D, 0x8D, 0x3C, 0x06, 0x46, 0x3A, 0xDA, 0x75, 0x67, 0x8D, 0x1C, 0x70, 0x03, 0xFB, 0x8D, 0x1C, 0x07, 0x03, 0xF3, 0x84, 0xD2, 0x74, 0x0B, 0xFF, 0x45, 0x0C, 0x8D, 0x54, 0x37, 0x01, 0x8D, 0x44, 0x10, 0x01, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x0D, 0x8D, 0x54, 0x77, 0x01, 0x03, 0xD6, 0x03, 0xD0, 0x8D, 0x44, 0x50, 0x02, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xB9, 0x8B, 0x5D, 0x0C, 0x8A, 0x13, 0x03, 0xF0, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x74, 0x77, 0x8A, 0x11, 0x8B, 0xF8, 0x40, 0x46, 0x80, 0xFA, 0x2A, 0x75, 0x22, 0x41, 0x80, 0x39, 0x00, 0x0F, 0x84, 0x7B, 0x00, 0x00, 0x00, 0x8D, 0x14, 0x3E, 0x03, 0xC2, 0x46, 0x43, 0x89, 0x4D, 0xF4, 0x89, 0x5D, 0xFC, 0xEB, 0x47, 0x5F, 0x5B, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x1C, 0x3E, 0x89, 0x5D, 0xF8, 0x8D, 0x44, 0x18, 0x01, 0x8A, 0x5D, 0x0B, 0x3A, 0xD3, 0x75, 0x1D, 0x84, 0xDB, 0x74, 0x0F, 0x03, 0x45, 0xF8, 0x46, 0x03, 0xC6, 0x46, 0x03, 0xC6, 0xFF, 0x45, 0x0C, 0x8D, 0x3C, 0x06, 0x84, 0xD2, 0x74, 0x16, 0x8D, 0x34, 0x07, 0x41, 0xEB, 0x10, 0x8B, 0x55, 0xFC, 0x8B, 0x45, 0xF8, 0x8B, 0x4D, 0xF4, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x5D, 0x0C, 0x8A, 0x13, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x75, 0x89, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, };
-const unsigned char x5E877108[] = { 0x89, 0x45, 0xFC, 0x3B, 0xC8, 0x0F, 0x84, 0xF9, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xEE, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x56, 0x57, 0x33, 0xFF, 0x8D, 0x70, 0x01, 0x84, 0xD2, 0x74, 0x43, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x74, 0x3C, 0x40, 0x3A, 0xDA, 0x75, 0x68, 0x8D, 0x7C, 0x06, 0x01, 0x83, 0xC6, 0x02, 0x84, 0xD2, 0x74, 0x0D, 0xFF, 0x45, 0x0C, 0x8B, 0xF7, 0x8D, 0x7C, 0x7F, 0x01, 0x8D, 0x44, 0x3F, 0x01, 0x8D, 0x14, 0x3E, 0x8D, 0x44, 0x10, 0x01, 0x84, 0xDB, 0x74, 0x0B, 0x8B, 0xF7, 0x8D, 0x7C, 0x7F, 0x01, 0x8D, 0x44, 0x3F, 0x01, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xBD, 0x8D, 0x14, 0x3E, 0x03, 0xC2, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x46, 0x84, 0xD2, 0x74, 0x69, 0x8A, 0x19, 0x03, 0xF7, 0x8D, 0x44, 0x30, 0x01, 0x80, 0xFB, 0x2A, 0x75, 0x1E, 0x41, 0x80, 0x39, 0x00, 0x74, 0x6F, 0x8B, 0x55, 0x0C, 0x8D, 0x74, 0x07, 0x01, 0x8B, 0xF8, 0x40, 0x89, 0x4D, 0xF8, 0xEB, 0x3A, 0x5F, 0x5E, 0x33, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x34, 0x07, 0x47, 0x3A, 0xDA, 0x75, 0x1A, 0x84, 0xD2, 0x74, 0x09, 0xFF, 0x45, 0x0C, 0x8D, 0x04, 0x3E, 0x8D, 0x3C, 0x06, 0x84, 0xDB, 0x74, 0x1C, 0x8D, 0x14, 0x3E, 0x03, 0xC2, 0x46, 0x41, 0xEB, 0x13, 0x8B, 0x55, 0xFC, 0x8D, 0x0C, 0x3E, 0x03, 0xC1, 0x8B, 0x4D, 0xF8, 0x46, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0x97, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5F, 0x5E, 0x0F, 0x94, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5E, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5B, };
-const unsigned char x7130F3A5[] = { 0x33, 0xC0, 0x57, 0x89, 0x45, 0xF4, 0x89, 0x45, 0xF8, 0x3B, 0xD0, 0x0F, 0x84, 0x26, 0x01, 0x00, 0x00, 0x8B, 0x7D, 0x0C, 0x3B, 0xF8, 0x0F, 0x84, 0x1B, 0x01, 0x00, 0x00, 0x53, 0x8A, 0x1F, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x56, 0x8B, 0xF0, 0x8D, 0x48, 0x01, 0x88, 0x5D, 0xFF, 0x84, 0xDB, 0x74, 0x50, 0x8D, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1A, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x40, 0x8A, 0x5D, 0xFF, 0x8D, 0x0C, 0x4E, 0x03, 0xC1, 0x38, 0x5D, 0x0B, 0x75, 0x6F, 0x8B, 0xCE, 0x46, 0x8D, 0x7C, 0x30, 0x01, 0x03, 0xCF, 0x83, 0xC0, 0x02, 0x84, 0xDB, 0x74, 0x06, 0x8B, 0xC1, 0x41, 0xFF, 0x45, 0x0C, 0x8D, 0x3C, 0x30, 0x03, 0xCF, 0x40, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x05, 0x8B, 0xCE, 0x46, 0x40, 0x42, 0x8B, 0x7D, 0x0C, 0x8A, 0x1F, 0x88, 0x5D, 0xFF, 0x84, 0xDB, 0x75, 0xB6, 0x8D, 0x34, 0x08, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x8D, 0x3C, 0x30, 0x84, 0xC9, 0x74, 0x76, 0x8D, 0xA4, 0x24, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1A, 0x80, 0xFB, 0x2A, 0x75, 0x28, 0x42, 0x80, 0x3A, 0x00, 0x0F, 0x84, 0x83, 0x00, 0x00, 0x00, 0x8D, 0x0C, 0x38, 0x03, 0xF1, 0x40, 0x8D, 0x0C, 0x38, 0x8D, 0x74, 0x0E, 0x01, 0x8B, 0x4D, 0x0C, 0x89, 0x55, 0xF4, 0xEB, 0x3C, 0x5E, 0x5B, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x34, 0x38, 0x8D, 0x3C, 0x30, 0x3A, 0xD9, 0x75, 0x19, 0x84, 0xC9, 0x74, 0x0A, 0xFF, 0x45, 0x0C, 0x8D, 0x0C, 0x38, 0x8D, 0x74, 0x0E, 0x01, 0x84, 0xDB, 0x74, 0x1B, 0x8D, 0x04, 0x37, 0x47, 0x42, 0xEB, 0x14, 0x8B, 0x4D, 0xF8, 0x8D, 0x14, 0x38, 0x8D, 0x74, 0x16, 0x01, 0x8B, 0x55, 0xF4, 0x89, 0x4D, 0x0C, 0x41, 0x89, 0x4D, 0xF8, 0x8B, 0x4D, 0x0C, };
-const unsigned char x6DD9572F[] = { 0x89, 0x75, 0xFC, 0x3B, 0xCE, 0x0F, 0x84, 0x06, 0x01, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD6, 0x0F, 0x84, 0xFB, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x57, 0x8D, 0x46, 0x01, 0x8D, 0x7E, 0x02, 0x84, 0xD2, 0x74, 0x4A, 0x8A, 0x19, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x40, 0x8D, 0x1C, 0x38, 0x8D, 0x74, 0x1E, 0x01, 0x38, 0x55, 0x0B, 0x75, 0x68, 0x8D, 0x1C, 0x7E, 0x03, 0xC3, 0x84, 0xD2, 0x74, 0x0A, 0x8D, 0x44, 0x37, 0x01, 0x8B, 0xFE, 0x46, 0xFF, 0x45, 0x0C, 0x80, 0x7D, 0x0B, 0x00, 0x8D, 0x14, 0x38, 0x8D, 0x74, 0x16, 0x01, 0x74, 0x0B, 0x03, 0xF2, 0x40, 0x8D, 0x14, 0x38, 0x8D, 0x74, 0x16, 0x01, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xB6, 0x8B, 0x55, 0x0C, 0x8A, 0x1A, 0x8B, 0xFE, 0x46, 0x40, 0x84, 0xDB, 0x74, 0x6C, 0x8D, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x14, 0x30, 0x03, 0xFA, 0x8A, 0x11, 0x40, 0x80, 0xFA, 0x2A, 0x75, 0x1D, 0x41, 0x80, 0x39, 0x00, 0x74, 0x71, 0x8B, 0x55, 0x0C, 0x03, 0xC7, 0x8D, 0x74, 0x06, 0x01, 0x89, 0x4D, 0xF8, 0xEB, 0x35, 0x5F, 0x5B, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x34, 0x38, 0x8D, 0x3C, 0x30, 0x3A, 0xD3, 0x75, 0x19, 0x84, 0xDB, 0x74, 0x08, 0x8D, 0x1C, 0x7E, 0x03, 0xC3, 0xFF, 0x45, 0x0C, 0x84, 0xD2, 0x74, 0x19, 0x8D, 0x14, 0x38, 0x03, 0xF2, 0x40, 0x41, 0xEB, 0x10, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x89, 0x55, 0x0C, 0x8B, 0xC7, 0x47, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x1A, 0x84, 0xDB, 0x75, 0x9A, 0x80, 0x39, 0x2A, 0x75, 0x0B, 0xEB, 0x03, 0x8D, 0x49, 0x00, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5F, 0x5B, 0x0F, 0x94, 0xC0, };
-const unsigned char x67195BB6[] = { 0x0C, 0x8B, 0x4D, 0x08, 0x33, 0xC0, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xC8, 0x0F, 0x84, 0xF8, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xED, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x56, 0x57, 0x8D, 0x70, 0x01, 0x84, 0xD2, 0x74, 0x43, 0x8A, 0x19, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x39, 0x8D, 0x3C, 0x30, 0x3A, 0xDA, 0x75, 0x5F, 0x8D, 0x1C, 0x37, 0x47, 0x8D, 0x44, 0x18, 0x01, 0x84, 0xD2, 0x74, 0x09, 0x8D, 0x78, 0x01, 0x8B, 0xC6, 0x46, 0xFF, 0x45, 0x0C, 0x8D, 0x14, 0x37, 0x03, 0xC2, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x09, 0x8D, 0x74, 0x07, 0x02, 0x8D, 0x44, 0x37, 0x02, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xBD, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x8B, 0xF8, 0x40, 0x84, 0xD2, 0x74, 0x6D, 0x90, 0x8D, 0x1C, 0x46, 0x03, 0xFB, 0x80, 0x39, 0x2A, 0x75, 0x1F, 0x41, 0x80, 0x39, 0x00, 0x74, 0x75, 0x8B, 0x55, 0x0C, 0x03, 0xF7, 0x47, 0x03, 0xF7, 0x8D, 0x04, 0x37, 0x89, 0x4D, 0xF8, 0xEB, 0x3F, 0x5F, 0x5E, 0x33, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x1C, 0x07, 0x89, 0x5D, 0xF4, 0x8D, 0x74, 0x1E, 0x01, 0x8A, 0x19, 0x3A, 0xDA, 0x75, 0x1A, 0x84, 0xD2, 0x74, 0x09, 0x8B, 0x75, 0xF4, 0xFF, 0x45, 0x0C, 0x8D, 0x04, 0x37, 0x84, 0xDB, 0x74, 0x19, 0x8D, 0x14, 0x37, 0x03, 0xC2, 0x47, 0x41, 0xEB, 0x10, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x8B, 0xF8, 0x40, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0x94, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5F, 0x5E, 0x0F, 0x94, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, };
-const unsigned char x70886376[] = { 0x45, 0xFC, 0x3B, 0xF8, 0x0F, 0x84, 0xE9, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xDE, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x56, 0x8D, 0x70, 0x01, 0x84, 0xD2, 0x74, 0x47, 0x8A, 0x1F, 0x80, 0xFB, 0x2A, 0x74, 0x40, 0x03, 0xC6, 0x8D, 0x44, 0x01, 0x01, 0x89, 0x45, 0x08, 0x3A, 0xDA, 0x75, 0x62, 0x8B, 0xC6, 0x8D, 0x4E, 0x01, 0x84, 0xD2, 0x74, 0x0B, 0x8B, 0xC1, 0x8B, 0x4D, 0x08, 0x03, 0xC8, 0x40, 0xFF, 0x45, 0x0C, 0x03, 0xC8, 0x8D, 0x34, 0x08, 0x84, 0xDB, 0x74, 0x0D, 0x8D, 0x14, 0x30, 0x03, 0xCA, 0x8D, 0x74, 0x08, 0x01, 0x83, 0xC0, 0x02, 0x47, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xB9, 0x8B, 0x55, 0x0C, 0x03, 0xC8, 0x03, 0xF1, 0x8A, 0x0A, 0x40, 0x84, 0xC9, 0x74, 0x59, 0x8A, 0x1F, 0x8D, 0x14, 0x30, 0x8D, 0x34, 0x10, 0x80, 0xFB, 0x2A, 0x75, 0x1D, 0x47, 0x80, 0x3F, 0x00, 0x74, 0x5F, 0x8B, 0x4D, 0x0C, 0x8D, 0x46, 0x01, 0x83, 0xC6, 0x02, 0x89, 0x7D, 0xF8, 0xEB, 0x2B, 0x5E, 0x5B, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x04, 0x16, 0x46, 0x3A, 0xD9, 0x75, 0x0E, 0x84, 0xC9, 0x74, 0x03, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x13, 0x47, 0xEB, 0x10, 0x8B, 0x4D, 0xFC, 0x8B, 0x7D, 0xF8, 0x8B, 0xC6, 0x46, 0x89, 0x4D, 0x0C, 0x41, 0x89, 0x4D, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x0A, 0x84, 0xC9, 0x75, 0xA7, 0x80, 0x3F, 0x2A, 0x75, 0x06, 0x47, 0x80, 0x3F, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x07, 0x5E, 0x5B, 0x0F, 0x94, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x5E, 0x5B, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0xCC, 0xCC, 0xCC, 0xCC, 0x55, 0x8B, };
-const unsigned char x7137CD3A[] = { 0x00, 0x8B, 0x4D, 0x0C, 0x3B, 0xCE, 0x0F, 0x84, 0x06, 0x01, 0x00, 0x00, 0x8A, 0x09, 0x53, 0x8D, 0x46, 0x01, 0x84, 0xC9, 0x74, 0x42, 0x8A, 0x1A, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x38, 0x8B, 0xC6, 0x3A, 0xD9, 0x75, 0x72, 0x8D, 0x74, 0x77, 0x01, 0x40, 0x8D, 0x1C, 0x30, 0x8D, 0x7C, 0x1F, 0x01, 0x84, 0xC9, 0x74, 0x06, 0x8B, 0xC6, 0x46, 0xFF, 0x45, 0x0C, 0x8D, 0x0C, 0x38, 0x03, 0xF1, 0x40, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x07, 0x8D, 0x0C, 0x38, 0x03, 0xF1, 0x40, 0x42, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x84, 0xC9, 0x75, 0xBE, 0x8B, 0x4D, 0x0C, 0x80, 0x39, 0x00, 0x8D, 0x3C, 0x30, 0x8D, 0x34, 0x38, 0x74, 0x79, 0x8A, 0x1A, 0x8D, 0x0C, 0x30, 0x8D, 0x4C, 0x0F, 0x01, 0x80, 0xFB, 0x2A, 0x75, 0x2D, 0x42, 0x80, 0x3A, 0x00, 0x0F, 0x84, 0x88, 0x00, 0x00, 0x00, 0x8D, 0x3C, 0x71, 0x03, 0xC7, 0x8D, 0x3C, 0x30, 0x03, 0xCF, 0x40, 0x8D, 0x3C, 0x30, 0x8D, 0x7C, 0x39, 0x01, 0x8B, 0x4D, 0x0C, 0x89, 0x55, 0xF8, 0xEB, 0x3B, 0x5B, 0x5F, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x3C, 0x30, 0x8D, 0x7C, 0x39, 0x01, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x3A, 0xD9, 0x75, 0x15, 0x84, 0xC9, 0x74, 0x07, 0x8D, 0x04, 0x3E, 0x46, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x17, 0x8B, 0xC6, 0x46, 0x42, 0xEB, 0x11, 0x8B, 0x4D, 0xFC, 0x8B, 0x55, 0xF8, 0x8D, 0x04, 0x3E, 0x46, 0x89, 0x4D, 0x0C, 0x41, 0x89, 0x4D, 0xFC, 0x8B, 0x4D, 0x0C, 0x80, 0x39, 0x00, 0x75, 0x87, 0x40, 0x80, 0x3A, 0x2A, 0x75, 0x13, 0x8D, 0x4C, 0x38, 0x01, 0x83, 0xC0, 0x02, 0x03, 0xC8, 0x42, 0x80, 0x3A, 0x2A, 0x8D, 0x7C, 0x0F, 0x01, 0x74, 0xED, 0x33, 0xC0, 0x38, 0x02, 0x5B, 0x5F, 0x0F, 0x94, };
-const unsigned char xEF432FB9[] = { 0x8B, 0x4D, 0x08, 0x33, 0xC0, 0x56, 0x33, 0xF6, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xC8, 0x0F, 0x84, 0xE4, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xD9, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x57, 0x84, 0xD2, 0x74, 0x3D, 0x90, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x74, 0x35, 0x8D, 0x7C, 0x06, 0x01, 0x3A, 0xDA, 0x75, 0x56, 0x8B, 0xF0, 0x40, 0x84, 0xD2, 0x74, 0x0A, 0xFF, 0x45, 0x0C, 0x8D, 0x14, 0x37, 0x8D, 0x44, 0x10, 0x01, 0x8D, 0x14, 0x37, 0x03, 0xC2, 0x84, 0xDB, 0x74, 0x0A, 0x8B, 0xF0, 0x40, 0x03, 0xF8, 0x8D, 0x74, 0x3E, 0x02, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xC4, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x46, 0x84, 0xD2, 0x74, 0x60, 0x8A, 0x19, 0x8B, 0xFE, 0x80, 0xFB, 0x2A, 0x75, 0x1F, 0x41, 0x80, 0x39, 0x00, 0x74, 0x6F, 0x8B, 0x55, 0x0C, 0x8D, 0x74, 0x76, 0x01, 0x8D, 0x44, 0x36, 0x01, 0x89, 0x4D, 0xF8, 0xEB, 0x34, 0x5F, 0x5B, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x70, 0x01, 0x83, 0xC0, 0x02, 0x3A, 0xDA, 0x75, 0x14, 0x84, 0xD2, 0x74, 0x06, 0x8B, 0xF0, 0x40, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x17, 0x40, 0x8B, 0xF0, 0x41, 0xEB, 0x11, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x8D, 0x74, 0x07, 0x02, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xA0, 0x80, 0x39, 0x2A, 0x75, 0x0B, 0xEB, 0x03, 0x8D, 0x49, 0x00, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5F, 0x5B, 0x0F, 0x94, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5B, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, };
-const unsigned char xED4B7E03[] = { 0x4D, 0x08, 0x57, 0x33, 0xFF, 0x89, 0x7D, 0xF8, 0x89, 0x7D, 0xFC, 0x3B, 0xCF, 0x0F, 0x84, 0x06, 0x01, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD7, 0x0F, 0x84, 0xFB, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x56, 0x8D, 0x47, 0x01, 0x8D, 0x77, 0x02, 0x84, 0xD2, 0x74, 0x4B, 0x8A, 0x19, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x41, 0x8D, 0x34, 0x38, 0x3A, 0xDA, 0x75, 0x6B, 0x8D, 0x1C, 0x77, 0x8D, 0x44, 0x18, 0x01, 0x84, 0xD2, 0x74, 0x0C, 0x8D, 0x3C, 0x30, 0x8D, 0x34, 0x38, 0x03, 0xF6, 0x40, 0xFF, 0x45, 0x0C, 0x80, 0x7D, 0x0B, 0x00, 0x8D, 0x14, 0x30, 0x8D, 0x7C, 0x17, 0x01, 0x74, 0x0D, 0x8D, 0x34, 0x3A, 0x8D, 0x54, 0x38, 0x01, 0x03, 0xF2, 0x83, 0xC0, 0x02, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xB5, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x8D, 0x3C, 0x30, 0x8D, 0x34, 0x38, 0x84, 0xD2, 0x74, 0x6B, 0x8D, 0x49, 0x00, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x75, 0x21, 0x41, 0x80, 0x39, 0x00, 0x74, 0x77, 0x8D, 0x14, 0x77, 0x8D, 0x44, 0x10, 0x02, 0x8B, 0x55, 0x0C, 0x8B, 0xF7, 0x47, 0x89, 0x4D, 0xF8, 0xEB, 0x3C, 0x5E, 0x5B, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x8B, 0xC6, 0x46, 0x89, 0x75, 0x08, 0x3A, 0xDA, 0x75, 0x19, 0x84, 0xD2, 0x74, 0x0A, 0x03, 0xC7, 0x03, 0xF0, 0x8B, 0x45, 0x08, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x1B, 0x8D, 0x34, 0x38, 0x40, 0x41, 0xEB, 0x14, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x03, 0xC6, 0x03, 0xF8, 0x8B, 0x45, 0x08, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0x98, 0x80, 0x39, 0x2A, 0x75, 0x09, 0x8D, 0x49, 0x00, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, };
-const unsigned char xF1C07C91[] = { 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x07, 0x8D, 0x0C, 0x06, 0x03, 0xF9, 0x46, 0x42, 0x03, 0xF0, 0x03, 0xFE, 0xEB, 0x0D, 0x8B, 0x4D, 0xFC, 0x8B, 0x55, 0xF8, 0x89, 0x4D, 0x0C, 0x41, 0x89, 0x4D, 0xFC, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x84, 0xC9, 0x75, 0x9F, 0x80, 0x3A, 0x2A, 0x75, 0x06, 0x42, 0x80, 0x3A, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x02, 0x5B, 0x5F, 0x0F, 0x94, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5B, 0x5F, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0xCC, 0xCC, 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x0C, 0x8B, 0x55, 0x08, 0x33, 0xC0, 0x57, 0x89, 0x45, 0xF4, 0x89, 0x45, 0xF8, 0x3B, 0xD0, 0x0F, 0x84, 0x0B, 0x01, 0x00, 0x00, 0x8B, 0x7D, 0x0C, 0x3B, 0xF8, 0x0F, 0x84, 0x00, 0x01, 0x00, 0x00, 0x53, 0x8A, 0x1F, 0x56, 0xBE, 0x04, 0x00, 0x00, 0x00, 0x8D, 0x48, 0x0E, 0x8B, 0xC6, 0x88, 0x5D, 0x0B, 0x84, 0xDB, 0x74, 0x48, 0x8D, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1A, 0x88, 0x5D, 0xFF, 0x80, 0xFB, 0x2A, 0x74, 0x38, 0x8A, 0x5D, 0x0B, 0x40, 0x38, 0x5D, 0xFF, 0x75, 0x63, 0x03, 0xF0, 0x8D, 0x0C, 0x30, 0x84, 0xDB, 0x74, 0x07, 0x8D, 0x04, 0x31, 0x41, 0xFF, 0x45, 0x0C, 0x8D, 0x3C, 0x30, 0x03, 0xCF, 0x40, 0x80, 0x7D, 0xFF, 0x00, 0x74, 0x07, 0x8D, 0x3C, 0x30, 0x03, 0xCF, 0x40, 0x42, 0x8B, 0x7D, 0x0C, 0x8A, 0x1F, 0x88, 0x5D, 0x0B, 0x84, 0xDB, 0x75, 0xBE, 0x8B, 0x5D, 0x0C, 0x8D, 0x34, 0x08, 0x8A, 0x0B, 0x8D, 0x3C, 0x30, 0x88, 0x4D, 0x0B, 0x84, 0xC9, 0x74, 0x6C, 0x8D, 0x0C, 0x30, 0x03, 0xF9, 0x8A, 0x0A, 0x80, 0xF9, 0x2A, 0x75, 0x1F, 0x42, 0x80, 0x3A, 0x00, 0x74, 0x73, 0x8B, 0xC6, };
-const unsigned char xE45C3124[] = { 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xC8, 0x0F, 0x84, 0xF7, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xEC, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x57, 0x8D, 0x78, 0x01, 0x84, 0xD2, 0x74, 0x47, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x74, 0x40, 0x8D, 0x1C, 0x70, 0x03, 0xFB, 0x8A, 0x19, 0x3A, 0xDA, 0x75, 0x64, 0x03, 0xF7, 0x8D, 0x44, 0x30, 0x01, 0x8D, 0x34, 0x07, 0x47, 0x84, 0xD2, 0x74, 0x09, 0x8D, 0x14, 0x07, 0x03, 0xF2, 0x47, 0xFF, 0x45, 0x0C, 0x8D, 0x14, 0x37, 0x03, 0xC2, 0x47, 0x84, 0xDB, 0x74, 0x0B, 0x8B, 0xF0, 0x40, 0x8D, 0x14, 0x70, 0x8D, 0x7C, 0x17, 0x01, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xB9, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x46, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x74, 0x68, 0x8A, 0x19, 0x8B, 0xFE, 0x46, 0x89, 0x75, 0xF4, 0x80, 0xFB, 0x2A, 0x75, 0x1E, 0x41, 0x80, 0x39, 0x00, 0x74, 0x6E, 0x8B, 0x55, 0x0C, 0x03, 0xF8, 0x03, 0xF7, 0x8D, 0x46, 0x01, 0x89, 0x4D, 0xF8, 0xEB, 0x36, 0x5F, 0x5B, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x14, 0x37, 0x8D, 0x44, 0x10, 0x01, 0x8D, 0x34, 0x02, 0x8A, 0x55, 0x0B, 0x3A, 0xDA, 0x75, 0x0E, 0x84, 0xD2, 0x74, 0x03, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x15, 0x41, 0xEB, 0x12, 0x8B, 0x75, 0xF4, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x03, 0xF0, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x75, 0x98, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5F, 0x5B, 0x0F, 0x94, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5B, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5E, 0x8B, };
-const unsigned char xDAB58841[] = { 0x01, 0x3B, 0xF8, 0x0F, 0x84, 0xF1, 0x00, 0x00, 0x00, 0x8B, 0x5D, 0x0C, 0x3B, 0xD8, 0x0F, 0x84, 0xE6, 0x00, 0x00, 0x00, 0x8A, 0x13, 0x8B, 0xCE, 0x8D, 0x46, 0x02, 0x84, 0xD2, 0x74, 0x50, 0x8A, 0x1F, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x43, 0x8D, 0x04, 0x31, 0x41, 0x3A, 0xDA, 0x0F, 0x85, 0xC5, 0x00, 0x00, 0x00, 0x8D, 0x1C, 0x08, 0x03, 0xF3, 0x8D, 0x1C, 0x4E, 0x8D, 0x44, 0x18, 0x01, 0x8B, 0x5D, 0x0C, 0x84, 0xD2, 0x74, 0x0A, 0x03, 0xC8, 0x43, 0x8D, 0x74, 0x0E, 0x01, 0x89, 0x5D, 0x0C, 0x8D, 0x0C, 0x30, 0x40, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x08, 0x8D, 0x34, 0x08, 0x8B, 0xCE, 0x46, 0x40, 0x47, 0x8A, 0x13, 0x84, 0xD2, 0x75, 0xB5, 0xEB, 0x03, 0x8B, 0x5D, 0x0C, 0x80, 0x3B, 0x00, 0x8D, 0x34, 0x08, 0x74, 0x58, 0x8D, 0x49, 0x00, 0x8A, 0x0F, 0x8D, 0x14, 0x30, 0x40, 0x89, 0x55, 0x08, 0x80, 0xF9, 0x2A, 0x75, 0x14, 0x47, 0x80, 0x3F, 0x00, 0x74, 0x60, 0x8D, 0x53, 0x01, 0x8B, 0xC6, 0x46, 0x89, 0x7D, 0xF8, 0x89, 0x55, 0xFC, 0xEB, 0x2E, 0x8D, 0x14, 0x56, 0x03, 0xC2, 0x8A, 0x13, 0x3A, 0xCA, 0x75, 0x10, 0x84, 0xD2, 0x74, 0x03, 0x46, 0x40, 0x43, 0x84, 0xC9, 0x74, 0x18, 0x46, 0x40, 0x47, 0xEB, 0x13, 0x8B, 0x4D, 0xFC, 0x8B, 0x45, 0x08, 0x8B, 0x7D, 0xF8, 0x8B, 0xD9, 0x41, 0x8D, 0x44, 0x30, 0x01, 0x89, 0x4D, 0xFC, 0x80, 0x3B, 0x00, 0x75, 0xAB, 0x80, 0x3F, 0x2A, 0x75, 0x0C, 0x8D, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x47, 0x80, 0x3F, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x07, 0x5F, 0x5E, 0x0F, 0x94, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5E, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5E, 0x33, 0xC0, 0x5B, 0x8B, };
-const unsigned char xDA58A32E[] = { 0xEC, 0x83, 0xEC, 0x08, 0x8B, 0x4D, 0x08, 0x57, 0x33, 0xFF, 0x89, 0x7D, 0xF8, 0x89, 0x7D, 0xFC, 0x3B, 0xCF, 0x0F, 0x84, 0xEE, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD7, 0x0F, 0x84, 0xE3, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x56, 0xBE, 0x01, 0x00, 0x00, 0x00, 0x8B, 0xC6, 0x84, 0xD2, 0x74, 0x45, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x74, 0x3E, 0x8B, 0xC6, 0x3A, 0xDA, 0x75, 0x62, 0x03, 0xF7, 0x40, 0x84, 0xD2, 0x74, 0x10, 0x8D, 0x14, 0x30, 0x03, 0xFA, 0x40, 0xFF, 0x45, 0x0C, 0x8D, 0x14, 0x30, 0x8D, 0x7C, 0x17, 0x01, 0x8D, 0x14, 0x30, 0x8D, 0x7C, 0x17, 0x01, 0x84, 0xDB, 0x74, 0x0D, 0x8D, 0x34, 0x38, 0x8D, 0x54, 0x30, 0x01, 0x03, 0xFA, 0x83, 0xC0, 0x02, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xBB, 0x8B, 0x55, 0x0C, 0x8A, 0x1A, 0x03, 0xF0, 0x84, 0xDB, 0x74, 0x5F, 0x8A, 0x11, 0x8D, 0x3C, 0x30, 0x40, 0x80, 0xFA, 0x2A, 0x75, 0x1D, 0x41, 0x80, 0x39, 0x00, 0x74, 0x67, 0x8B, 0x55, 0x0C, 0x83, 0xC6, 0x02, 0x83, 0xC0, 0x02, 0x89, 0x4D, 0xF8, 0xEB, 0x33, 0x5E, 0x5B, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x34, 0x38, 0x8D, 0x3C, 0x30, 0x3A, 0xD3, 0x75, 0x15, 0x84, 0xDB, 0x74, 0x07, 0x8B, 0xFE, 0x46, 0x40, 0xFF, 0x45, 0x0C, 0x84, 0xD2, 0x74, 0x15, 0x8D, 0x04, 0x37, 0x41, 0xEB, 0x0F, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x8B, 0xC7, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x1A, 0x84, 0xDB, 0x75, 0xA1, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5E, 0x5B, 0x0F, 0x94, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x5E, 0x5B, 0xB8, 0x01, 0x00, 0x00, };
-const unsigned char xDF977247[] = { 0xEC, 0x08, 0x56, 0x33, 0xF6, 0x57, 0x8B, 0x7D, 0x08, 0x89, 0x75, 0xF8, 0x89, 0x75, 0xFC, 0x3B, 0xFE, 0x0F, 0x84, 0xE5, 0x00, 0x00, 0x00, 0x8B, 0x4D, 0x0C, 0x3B, 0xCE, 0x0F, 0x84, 0xDA, 0x00, 0x00, 0x00, 0x8A, 0x09, 0x53, 0x8D, 0x46, 0x01, 0x84, 0xC9, 0x74, 0x30, 0x8A, 0x1F, 0x80, 0xFB, 0x2A, 0x74, 0x29, 0x03, 0xF0, 0x3A, 0xD9, 0x75, 0x50, 0x8D, 0x54, 0x06, 0x01, 0x8D, 0x04, 0x16, 0x84, 0xC9, 0x74, 0x03, 0xFF, 0x45, 0x0C, 0x03, 0xF0, 0x8D, 0x74, 0x32, 0x01, 0x84, 0xDB, 0x74, 0x02, 0x40, 0x47, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x84, 0xC9, 0x75, 0xD0, 0x8B, 0x55, 0x0C, 0x8A, 0x0A, 0x8B, 0xC6, 0x46, 0x88, 0x4D, 0x0B, 0x84, 0xC9, 0x74, 0x68, 0x90, 0x8A, 0x17, 0x8D, 0x0C, 0x30, 0x40, 0x80, 0xFA, 0x2A, 0x75, 0x1B, 0x47, 0x80, 0x3F, 0x00, 0x74, 0x73, 0x03, 0xC8, 0x03, 0xF1, 0x8B, 0x4D, 0x0C, 0x89, 0x7D, 0xF8, 0xEB, 0x3A, 0x5B, 0x5F, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x8B, 0xC8, 0x40, 0x8D, 0x1C, 0x46, 0x03, 0xCB, 0x8A, 0x5D, 0x0B, 0x3A, 0xD3, 0x75, 0x19, 0x84, 0xDB, 0x74, 0x0A, 0xFF, 0x45, 0x0C, 0x8D, 0x1C, 0x01, 0x8D, 0x74, 0x1E, 0x01, 0x84, 0xD2, 0x74, 0x14, 0x03, 0xCE, 0x03, 0xC1, 0x47, 0xEB, 0x0D, 0x8B, 0x4D, 0xFC, 0x8B, 0x7D, 0xF8, 0x89, 0x4D, 0x0C, 0x41, 0x89, 0x4D, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x0A, 0x88, 0x4D, 0x0B, 0x84, 0xC9, 0x75, 0x99, 0x80, 0x3F, 0x2A, 0x75, 0x0A, 0x8D, 0x64, 0x24, 0x00, 0x47, 0x80, 0x3F, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x07, 0x5B, 0x5F, 0x0F, 0x94, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5B, 0x5F, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x33, 0xC0, 0x5E, };
-const unsigned char xEAE0E002[] = { 0xEC, 0x0C, 0x8B, 0x55, 0x08, 0x33, 0xC9, 0x57, 0x89, 0x4D, 0xF4, 0x89, 0x4D, 0xF8, 0x3B, 0xD1, 0x0F, 0x84, 0xFE, 0x00, 0x00, 0x00, 0x8B, 0x7D, 0x0C, 0x3B, 0xF9, 0x0F, 0x84, 0xF3, 0x00, 0x00, 0x00, 0x53, 0x8A, 0x1F, 0x56, 0x8D, 0x41, 0x01, 0x8D, 0x71, 0x02, 0x88, 0x5D, 0xFF, 0x84, 0xDB, 0x74, 0x41, 0x8A, 0x1A, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x37, 0x8A, 0x5D, 0xFF, 0x38, 0x5D, 0x0B, 0x75, 0x67, 0x8D, 0x0C, 0x46, 0x03, 0xC8, 0x8D, 0x34, 0x08, 0x84, 0xDB, 0x74, 0x07, 0x8D, 0x04, 0x0E, 0x46, 0xFF, 0x45, 0x0C, 0x8D, 0x3C, 0x08, 0x03, 0xF7, 0x40, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x04, 0x8B, 0xC6, 0x46, 0x42, 0x8B, 0x7D, 0x0C, 0x8A, 0x1F, 0x88, 0x5D, 0xFF, 0x84, 0xDB, 0x75, 0xBF, 0x8D, 0x3C, 0x30, 0x8D, 0x7C, 0x79, 0x01, 0x8D, 0x4C, 0x38, 0x01, 0x03, 0xF1, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x83, 0xC0, 0x02, 0x84, 0xC9, 0x74, 0x63, 0x8A, 0x1A, 0x03, 0xF0, 0x8D, 0x7C, 0x37, 0x01, 0x80, 0xFB, 0x2A, 0x75, 0x1B, 0x42, 0x80, 0x3A, 0x00, 0x74, 0x69, 0x8B, 0x4D, 0x0C, 0x8D, 0x34, 0x38, 0x40, 0x89, 0x55, 0xF4, 0xEB, 0x37, 0x5E, 0x5B, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x34, 0x38, 0x40, 0x3A, 0xD9, 0x75, 0x16, 0x84, 0xC9, 0x74, 0x07, 0x8B, 0xF7, 0x47, 0x40, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x1B, 0x8B, 0xF7, 0x47, 0x40, 0x42, 0xEB, 0x14, 0x8B, 0x4D, 0xF8, 0x8B, 0x55, 0xF4, 0x8D, 0x44, 0x3E, 0x01, 0x8B, 0xF7, 0x47, 0x89, 0x4D, 0x0C, 0x41, 0x89, 0x4D, 0xF8, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x84, 0xC9, 0x75, 0x9D, 0x80, 0x3A, 0x2A, 0x75, 0x06, 0x42, 0x80, 0x3A, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x02, 0x5E, 0x5B, };
-const unsigned char xC3A46827[] = { 0x33, 0xC0, 0x57, 0x8B, 0x7D, 0x08, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xF8, 0x0F, 0x84, 0xF5, 0x00, 0x00, 0x00, 0x8B, 0x5D, 0x0C, 0x3B, 0xD8, 0x0F, 0x84, 0xEA, 0x00, 0x00, 0x00, 0x8A, 0x13, 0x56, 0xB9, 0x01, 0x00, 0x00, 0x00, 0x8D, 0x70, 0x02, 0x8B, 0xC1, 0x84, 0xD2, 0x74, 0x47, 0x8A, 0x1F, 0x80, 0xFB, 0x2A, 0x74, 0x3D, 0x8D, 0x34, 0x08, 0x03, 0xC6, 0x3A, 0xDA, 0x75, 0x2B, 0x8B, 0xC8, 0x40, 0x84, 0xD2, 0x74, 0x09, 0x03, 0xC8, 0xFF, 0x45, 0x0C, 0x8D, 0x74, 0x0E, 0x01, 0x8D, 0x50, 0x01, 0x8B, 0xCA, 0x84, 0xDB, 0x74, 0x07, 0x03, 0xC6, 0x03, 0xC8, 0x8B, 0xC2, 0x47, 0x8B, 0x5D, 0x0C, 0x8A, 0x13, 0x84, 0xD2, 0x75, 0xC7, 0xEB, 0x0C, 0x5E, 0x5F, 0x33, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x8B, 0x5D, 0x0C, 0x8D, 0x14, 0x08, 0x8D, 0x4C, 0x16, 0x01, 0x8D, 0x34, 0x0A, 0x8A, 0x13, 0x40, 0x84, 0xD2, 0x74, 0x57, 0x90, 0x8D, 0x1C, 0x08, 0x03, 0xF3, 0x8A, 0x1F, 0x40, 0x80, 0xFB, 0x2A, 0x75, 0x0E, 0x47, 0x80, 0x3F, 0x00, 0x74, 0x61, 0x8B, 0x55, 0x0C, 0x89, 0x7D, 0xF8, 0xEB, 0x2B, 0x8D, 0x0C, 0x30, 0x8D, 0x34, 0x08, 0x3A, 0xDA, 0x75, 0x18, 0x84, 0xD2, 0x74, 0x07, 0x8D, 0x04, 0x0E, 0x46, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x19, 0x8D, 0x14, 0x30, 0x03, 0xCA, 0x40, 0x47, 0xEB, 0x10, 0x8B, 0x55, 0xFC, 0x8B, 0x7D, 0xF8, 0x89, 0x55, 0x0C, 0x8B, 0xC6, 0x46, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xAA, 0x80, 0x3F, 0x2A, 0x75, 0x0B, 0xEB, 0x03, 0x8D, 0x49, 0x00, 0x47, 0x80, 0x3F, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x07, 0x5E, 0x5F, 0x0F, 0x94, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x5E, 0x5F, 0xB8, };
-const unsigned char xB0F2918A[] = { 0x8B, 0xEC, 0x83, 0xEC, 0x08, 0x8B, 0x55, 0x08, 0x33, 0xC0, 0x56, 0x57, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x8D, 0x70, 0x02, 0x3B, 0xD0, 0x0F, 0x84, 0xF8, 0x00, 0x00, 0x00, 0x8B, 0x7D, 0x0C, 0x3B, 0xF8, 0x0F, 0x84, 0xED, 0x00, 0x00, 0x00, 0x53, 0x8A, 0x1F, 0x8D, 0x46, 0x02, 0x8D, 0x4E, 0x01, 0x88, 0x5D, 0x0B, 0x84, 0xDB, 0x74, 0x43, 0x8D, 0xA4, 0x24, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1A, 0x80, 0xFB, 0x2A, 0x74, 0x35, 0x8D, 0x34, 0x01, 0x8D, 0x04, 0x31, 0x8A, 0x4D, 0x0B, 0x3A, 0xD9, 0x75, 0x5B, 0x84, 0xC9, 0x74, 0x06, 0x8B, 0xC6, 0x46, 0xFF, 0x45, 0x0C, 0x8B, 0xC8, 0x40, 0x84, 0xDB, 0x74, 0x0B, 0x8D, 0x0C, 0x30, 0x8D, 0x74, 0x01, 0x01, 0x8D, 0x04, 0x31, 0x42, 0x8B, 0x7D, 0x0C, 0x8A, 0x1F, 0x88, 0x5D, 0x0B, 0x84, 0xDB, 0x75, 0xC4, 0x03, 0xC8, 0x8D, 0x7C, 0x0E, 0x01, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x40, 0x84, 0xC9, 0x74, 0x65, 0x8D, 0x64, 0x24, 0x00, 0x8A, 0x1A, 0x8B, 0xF0, 0x80, 0xFB, 0x2A, 0x75, 0x1F, 0x42, 0x80, 0x3A, 0x00, 0x74, 0x6B, 0x8B, 0x4D, 0x0C, 0x8D, 0x44, 0x40, 0x01, 0x8D, 0x7C, 0x00, 0x01, 0x89, 0x55, 0xF8, 0xEB, 0x35, 0x5B, 0x5F, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x03, 0xC7, 0x46, 0x3A, 0xD9, 0x75, 0x1C, 0x84, 0xC9, 0x74, 0x07, 0x8D, 0x04, 0x3E, 0x46, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x07, 0x8D, 0x0C, 0x06, 0x03, 0xF9, 0x46, 0x42, 0x03, 0xF0, 0x03, 0xFE, 0xEB, 0x0D, 0x8B, 0x4D, 0xFC, 0x8B, 0x55, 0xF8, 0x89, 0x4D, 0x0C, 0x41, 0x89, 0x4D, 0xFC, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x84, 0xC9, 0x75, 0x9F, 0x80, 0x3A, 0x2A, 0x75, 0x06, 0x42, 0x80, 0x3A, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x02, 0x5B, };
-const unsigned char xAF4ED407[] = { 0x08, 0x33, 0xC0, 0x56, 0x33, 0xF6, 0x57, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x8D, 0x78, 0x01, 0x3B, 0xC8, 0x0F, 0x84, 0xE6, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xDB, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x84, 0xD2, 0x74, 0x3C, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x74, 0x35, 0x8D, 0x1C, 0x37, 0x03, 0xC3, 0x8A, 0x19, 0x47, 0x3A, 0xDA, 0x75, 0x5A, 0x03, 0xC7, 0x8D, 0x74, 0x06, 0x01, 0x84, 0xD2, 0x74, 0x03, 0xFF, 0x45, 0x0C, 0x03, 0xC6, 0x47, 0x84, 0xDB, 0x74, 0x0C, 0x8D, 0x3C, 0x30, 0x40, 0x8D, 0x14, 0x07, 0x8D, 0x74, 0x16, 0x01, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xC4, 0x8B, 0x55, 0x0C, 0x8A, 0x1A, 0x03, 0xFE, 0x03, 0xC7, 0x84, 0xDB, 0x74, 0x66, 0xEB, 0x03, 0x8D, 0x49, 0x00, 0x8A, 0x11, 0x8D, 0x3C, 0x30, 0x40, 0x80, 0xFA, 0x2A, 0x75, 0x1D, 0x41, 0x80, 0x39, 0x00, 0x74, 0x69, 0x8B, 0x55, 0x0C, 0x03, 0xF8, 0x8D, 0x74, 0x3E, 0x01, 0x89, 0x4D, 0xF8, 0xEB, 0x35, 0x5B, 0x5F, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x8B, 0xF8, 0x40, 0x3A, 0xD3, 0x75, 0x19, 0x84, 0xDB, 0x74, 0x08, 0x8D, 0x1C, 0x46, 0x03, 0xFB, 0xFF, 0x45, 0x0C, 0x84, 0xD2, 0x74, 0x19, 0x8D, 0x34, 0x07, 0x8D, 0x04, 0x37, 0x41, 0xEB, 0x10, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x8B, 0xC6, 0x46, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x1A, 0x84, 0xDB, 0x75, 0x9F, 0x80, 0x39, 0x2A, 0x75, 0x06, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5B, 0x5F, 0x0F, 0x94, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5B, 0x5F, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x33, };
-const unsigned char xBB9EC2E1[] = { 0x84, 0x08, 0x01, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD1, 0x0F, 0x84, 0xFD, 0x00, 0x00, 0x00, 0x53, 0x8A, 0x1A, 0x56, 0x8B, 0xF0, 0x8B, 0xC8, 0x88, 0x5D, 0xFF, 0x84, 0xDB, 0x74, 0x4A, 0x8A, 0x1F, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x3D, 0x8A, 0x5D, 0xFF, 0x38, 0x5D, 0x0B, 0x75, 0x69, 0x8D, 0x48, 0x01, 0x83, 0xC0, 0x02, 0x89, 0x45, 0xF0, 0x84, 0xDB, 0x74, 0x0C, 0x03, 0xC1, 0x8B, 0x4D, 0xF0, 0x8D, 0x74, 0x06, 0x01, 0x03, 0xC6, 0x42, 0x8D, 0x1C, 0x01, 0x03, 0xF3, 0x41, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x07, 0x8D, 0x34, 0x01, 0x8D, 0x04, 0x31, 0x47, 0x8A, 0x1A, 0x88, 0x5D, 0xFF, 0x84, 0xDB, 0x75, 0xB9, 0x89, 0x55, 0x0C, 0x8A, 0x1A, 0x8D, 0x04, 0x31, 0x84, 0xDB, 0x74, 0x76, 0x8D, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x0F, 0x88, 0x4D, 0x0B, 0x80, 0xF9, 0x2A, 0x75, 0x21, 0x47, 0x80, 0x3F, 0x00, 0x74, 0x79, 0x8D, 0x48, 0x01, 0x83, 0xC0, 0x02, 0x03, 0xC8, 0x03, 0xF1, 0x89, 0x7D, 0xF4, 0x8D, 0x4A, 0x01, 0xEB, 0x45, 0x5E, 0x5B, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x48, 0x01, 0x83, 0xC0, 0x02, 0x38, 0x5D, 0x0B, 0x75, 0x22, 0x84, 0xDB, 0x74, 0x0E, 0x8D, 0x14, 0x46, 0x03, 0xCA, 0x8B, 0x55, 0x0C, 0x42, 0x89, 0x55, 0x0C, 0xEB, 0x03, 0x8B, 0x55, 0x0C, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x19, 0x03, 0xC8, 0x03, 0xF1, 0x47, 0xEB, 0x12, 0x8B, 0x7D, 0xF4, 0x8D, 0x04, 0x31, 0x8B, 0x4D, 0xF8, 0x8B, 0xD1, 0x89, 0x55, 0x0C, 0x41, 0x89, 0x4D, 0xF8, 0x8A, 0x1A, 0x84, 0xDB, 0x75, 0x90, 0x80, 0x3F, 0x2A, 0x75, 0x06, 0x47, 0x80, 0x3F, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x07, 0x5E, 0x5B, 0x0F, 0x94, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, };
-const unsigned char xA8902F8B[] = { 0x08, 0x53, 0x56, 0x33, 0xF6, 0x57, 0x8B, 0x7D, 0x08, 0x89, 0x75, 0xF8, 0x89, 0x75, 0xFC, 0x3B, 0xFE, 0x0F, 0x84, 0xF4, 0x00, 0x00, 0x00, 0x8B, 0x5D, 0x0C, 0x3B, 0xDE, 0x0F, 0x84, 0xE9, 0x00, 0x00, 0x00, 0x8A, 0x13, 0x8D, 0x46, 0x01, 0x8D, 0x4E, 0x02, 0x84, 0xD2, 0x74, 0x4E, 0x8A, 0x1F, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x41, 0x3A, 0xDA, 0x0F, 0x85, 0xCB, 0x00, 0x00, 0x00, 0x8B, 0x5D, 0x0C, 0x8D, 0x41, 0x01, 0x83, 0xC1, 0x02, 0x84, 0xD2, 0x74, 0x0E, 0x03, 0xCE, 0x8D, 0x4C, 0x09, 0x01, 0x8D, 0x04, 0x31, 0x41, 0x43, 0x89, 0x5D, 0x0C, 0x8D, 0x14, 0x08, 0x03, 0xF2, 0x40, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x0A, 0x03, 0xC8, 0x8D, 0x74, 0x0E, 0x01, 0x03, 0xCE, 0x40, 0x47, 0x8A, 0x13, 0x84, 0xD2, 0x75, 0xB7, 0xEB, 0x03, 0x8B, 0x5D, 0x0C, 0x8D, 0x0C, 0x4E, 0x03, 0xC1, 0x80, 0x3B, 0x00, 0x74, 0x59, 0xEB, 0x03, 0x8D, 0x49, 0x00, 0x8A, 0x0F, 0x8D, 0x14, 0x30, 0x40, 0x89, 0x55, 0x08, 0x80, 0xF9, 0x2A, 0x75, 0x14, 0x47, 0x80, 0x3F, 0x00, 0x74, 0x60, 0x8D, 0x53, 0x01, 0x83, 0xC0, 0x02, 0x89, 0x7D, 0xF8, 0x89, 0x55, 0xFC, 0xEB, 0x2D, 0x03, 0xD0, 0x03, 0xF2, 0x8A, 0x13, 0x40, 0x3A, 0xCA, 0x75, 0x15, 0x84, 0xD2, 0x74, 0x09, 0x8B, 0x55, 0x08, 0x8D, 0x14, 0x56, 0x03, 0xC2, 0x43, 0x84, 0xC9, 0x74, 0x11, 0x40, 0x47, 0xEB, 0x0D, 0x8B, 0x4D, 0xFC, 0x8B, 0x7D, 0xF8, 0x40, 0x8B, 0xD9, 0x41, 0x89, 0x4D, 0xFC, 0x80, 0x3B, 0x00, 0x75, 0xAC, 0x80, 0x3F, 0x2A, 0x75, 0x0D, 0x8D, 0xA4, 0x24, 0x00, 0x00, 0x00, 0x00, 0x47, 0x80, 0x3F, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x07, 0x5F, 0x5E, 0x0F, 0x94, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, };
-const unsigned char xA3747988[] = { 0x8D, 0x42, 0x01, 0x3B, 0xCA, 0x0F, 0x84, 0xF3, 0x00, 0x00, 0x00, 0x8B, 0x5D, 0x0C, 0x3B, 0xDA, 0x0F, 0x84, 0xE8, 0x00, 0x00, 0x00, 0x56, 0x8D, 0x72, 0x02, 0x8A, 0x13, 0x57, 0x8B, 0xF8, 0x84, 0xD2, 0x74, 0x3B, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x74, 0x34, 0x8B, 0xF7, 0x3A, 0xDA, 0x75, 0x62, 0x8D, 0x7C, 0x78, 0x02, 0x83, 0xC0, 0x02, 0x84, 0xD2, 0x74, 0x09, 0x8D, 0x34, 0x38, 0x8B, 0xC6, 0x46, 0xFF, 0x45, 0x0C, 0x8D, 0x14, 0x30, 0x03, 0xFA, 0x40, 0x84, 0xDB, 0x74, 0x07, 0x8D, 0x34, 0x38, 0x8B, 0xC6, 0x46, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xC5, 0x8D, 0x14, 0x30, 0x8D, 0x7C, 0x17, 0x01, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x74, 0x68, 0x8D, 0x1C, 0x77, 0x03, 0xC3, 0x8A, 0x19, 0x80, 0xFB, 0x2A, 0x75, 0x21, 0x41, 0x80, 0x39, 0x00, 0x74, 0x72, 0x8B, 0x55, 0x0C, 0x8D, 0x04, 0x3E, 0x8D, 0x7C, 0x30, 0x01, 0x8D, 0x34, 0x38, 0x89, 0x4D, 0xF8, 0xEB, 0x37, 0x5F, 0x5E, 0x33, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x3C, 0x30, 0x8D, 0x34, 0x38, 0x3A, 0xDA, 0x75, 0x18, 0x84, 0xD2, 0x74, 0x07, 0x8B, 0xF7, 0x47, 0x40, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x19, 0x8D, 0x14, 0x30, 0x03, 0xFA, 0x40, 0x41, 0xEB, 0x10, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x8B, 0xC6, 0x46, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0x98, 0x80, 0x39, 0x2A, 0x75, 0x09, 0x8D, 0x49, 0x00, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5F, 0x5E, 0x0F, 0x94, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5E, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x33, 0xC0, };
-const unsigned char x84E4BC95[] = { 0x33, 0xF6, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xD0, 0x0F, 0x84, 0xF5, 0x00, 0x00, 0x00, 0x8B, 0x4D, 0x0C, 0x3B, 0xC8, 0x0F, 0x84, 0xEA, 0x00, 0x00, 0x00, 0x53, 0x8A, 0x19, 0x84, 0xDB, 0x74, 0x3B, 0x8B, 0xFF, 0x8A, 0x0A, 0x88, 0x4D, 0x0B, 0x80, 0xF9, 0x2A, 0x74, 0x2F, 0x8D, 0x0C, 0x06, 0x38, 0x5D, 0x0B, 0x75, 0x63, 0x8D, 0x04, 0x4E, 0x41, 0x8D, 0x44, 0x00, 0x02, 0x84, 0xDB, 0x74, 0x06, 0x8B, 0xC8, 0x40, 0xFF, 0x45, 0x0C, 0x03, 0xC1, 0x80, 0x7D, 0x0B, 0x00, 0x8D, 0x34, 0x01, 0x74, 0x01, 0x42, 0x8B, 0x4D, 0x0C, 0x8A, 0x19, 0x84, 0xDB, 0x75, 0xC7, 0x8B, 0x4D, 0x0C, 0x8A, 0x19, 0x03, 0xF0, 0x57, 0x8B, 0xF8, 0x40, 0x46, 0x84, 0xDB, 0x74, 0x73, 0x8D, 0xA4, 0x24, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x0C, 0x3E, 0x03, 0xC1, 0x8A, 0x0A, 0x46, 0x80, 0xF9, 0x2A, 0x75, 0x20, 0x42, 0x80, 0x3A, 0x00, 0x74, 0x72, 0x8D, 0x0C, 0x78, 0x03, 0xF1, 0x8D, 0x0C, 0x06, 0x03, 0xF9, 0x8B, 0x4D, 0x0C, 0x89, 0x55, 0xF8, 0xEB, 0x39, 0x5B, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x8B, 0xF8, 0x40, 0x83, 0xC6, 0x02, 0x3A, 0xCB, 0x75, 0x1B, 0x84, 0xDB, 0x74, 0x09, 0x8D, 0x3C, 0x06, 0x8B, 0xF7, 0x47, 0xFF, 0x45, 0x0C, 0x84, 0xC9, 0x74, 0x1B, 0x8D, 0x0C, 0x3E, 0x8D, 0x44, 0x08, 0x01, 0x42, 0xEB, 0x11, 0x8B, 0x4D, 0xFC, 0x8B, 0x55, 0xF8, 0x8B, 0xF8, 0x40, 0x89, 0x4D, 0x0C, 0x46, 0x41, 0x89, 0x4D, 0xFC, 0x8B, 0x4D, 0x0C, 0x8A, 0x19, 0x84, 0xDB, 0x75, 0x94, 0x80, 0x3A, 0x2A, 0x75, 0x06, 0x42, 0x80, 0x3A, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x02, 0x5F, 0x5B, 0x0F, 0x94, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x5F, 0x5B, 0xB8, 0x01, 0x00, 0x00, 0x00, };
-const unsigned char x763F4D5B[] = { 0xEC, 0x08, 0x8B, 0x4D, 0x08, 0x33, 0xC0, 0x56, 0x33, 0xF6, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xC8, 0x0F, 0x84, 0x04, 0x01, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xF9, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x57, 0x33, 0xFF, 0x84, 0xD2, 0x74, 0x3B, 0x80, 0x39, 0x2A, 0x74, 0x36, 0x8D, 0x1C, 0x3E, 0x03, 0xC3, 0x8A, 0x19, 0x46, 0x3A, 0xDA, 0x75, 0x64, 0x03, 0xF0, 0x8D, 0x7C, 0x37, 0x01, 0x84, 0xD2, 0x74, 0x07, 0xFF, 0x45, 0x0C, 0x8D, 0x7C, 0x37, 0x01, 0x8D, 0x34, 0x38, 0x40, 0x84, 0xDB, 0x74, 0x08, 0x8D, 0x04, 0x3E, 0x8D, 0x34, 0x38, 0x40, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xC5, 0x8B, 0x5D, 0x0C, 0x8D, 0x14, 0x06, 0x03, 0xFA, 0x8A, 0x13, 0x46, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x74, 0x79, 0x8B, 0xFF, 0x8D, 0x14, 0x3E, 0x03, 0xC2, 0x8A, 0x11, 0x80, 0xFA, 0x2A, 0x75, 0x23, 0x41, 0x80, 0x39, 0x00, 0x0F, 0x84, 0x7E, 0x00, 0x00, 0x00, 0x8D, 0x44, 0x3E, 0x01, 0x8B, 0xF0, 0x40, 0x43, 0x89, 0x4D, 0xF8, 0x89, 0x5D, 0xFC, 0xEB, 0x45, 0x5F, 0x5B, 0x33, 0xC0, 0x5E, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x5C, 0x3E, 0x01, 0x03, 0xC3, 0x8A, 0x5D, 0x0B, 0x83, 0xC6, 0x02, 0x3A, 0xD3, 0x75, 0x18, 0x84, 0xDB, 0x74, 0x0A, 0xFF, 0x45, 0x0C, 0x8D, 0x1C, 0x06, 0x8D, 0x7C, 0x1F, 0x01, 0x84, 0xD2, 0x74, 0x1A, 0x8B, 0xF0, 0x40, 0x41, 0xEB, 0x14, 0x8B, 0x55, 0xFC, 0x8D, 0x0C, 0x06, 0x89, 0x55, 0x0C, 0x42, 0x8D, 0x7C, 0x0F, 0x01, 0x8B, 0x4D, 0xF8, 0x89, 0x55, 0xFC, 0x8B, 0x5D, 0x0C, 0x8A, 0x13, 0x88, 0x55, 0x0B, 0x84, 0xD2, 0x75, 0x89, 0x80, 0x39, 0x2A, 0x75, 0x0A, 0x8D, 0x64, 0x24, 0x00, 0x41, 0x80, 0x39, 0x2A, };
-const unsigned char x9F6C10A6[] = { 0x08, 0x8B, 0x55, 0x08, 0x33, 0xC0, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xD0, 0x0F, 0x84, 0x07, 0x01, 0x00, 0x00, 0x8B, 0x4D, 0x0C, 0x3B, 0xC8, 0x0F, 0x84, 0xFC, 0x00, 0x00, 0x00, 0x8A, 0x09, 0x53, 0x56, 0xBE, 0x01, 0x00, 0x00, 0x00, 0x8B, 0xC6, 0x57, 0x8B, 0xF8, 0x84, 0xC9, 0x74, 0x42, 0x8A, 0x1A, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x38, 0x8B, 0xC6, 0x46, 0x3A, 0xD9, 0x75, 0x64, 0x8D, 0x5C, 0x37, 0x01, 0x03, 0xC3, 0x83, 0xC7, 0x02, 0x84, 0xC9, 0x74, 0x0A, 0xFF, 0x45, 0x0C, 0x8D, 0x0C, 0x07, 0x8D, 0x74, 0x0E, 0x01, 0x80, 0x7D, 0x0B, 0x00, 0x8D, 0x0C, 0x07, 0x8D, 0x74, 0x0E, 0x01, 0x74, 0x04, 0x8B, 0xF8, 0x40, 0x42, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x84, 0xC9, 0x75, 0xBE, 0x8B, 0x4D, 0x0C, 0x8B, 0xF8, 0x40, 0x80, 0x39, 0x00, 0x74, 0x71, 0x8A, 0x1A, 0x8D, 0x0C, 0x07, 0x8D, 0x74, 0x0E, 0x01, 0x80, 0xFB, 0x2A, 0x75, 0x23, 0x42, 0x80, 0x3A, 0x00, 0x74, 0x7D, 0x8D, 0x04, 0x0F, 0x03, 0xF8, 0x8D, 0x74, 0x39, 0x01, 0x8B, 0x4D, 0x0C, 0x8B, 0xF8, 0x40, 0x89, 0x55, 0xF8, 0xEB, 0x3D, 0x5F, 0x5E, 0x33, 0xC0, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3, 0x03, 0xF1, 0x8B, 0x4D, 0x0C, 0x8A, 0x09, 0x47, 0x3A, 0xD9, 0x75, 0x19, 0x84, 0xC9, 0x74, 0x07, 0x8B, 0xC6, 0x46, 0x47, 0xFF, 0x45, 0x0C, 0x84, 0xDB, 0x74, 0x1D, 0x03, 0xC6, 0x03, 0xF8, 0x8D, 0x47, 0x01, 0x42, 0xEB, 0x13, 0x8B, 0x4D, 0xFC, 0x8B, 0x55, 0xF8, 0x8D, 0x34, 0x07, 0x8D, 0x04, 0x37, 0x89, 0x4D, 0x0C, 0x41, 0x89, 0x4D, 0xFC, 0x8B, 0x4D, 0x0C, 0x80, 0x39, 0x00, 0x75, 0x8F, 0x80, 0x3A, 0x2A, 0x75, 0x0D, 0x8D, 0xA4, 0x24, 0x00, 0x00, 0x00, 0x00, 0x42, 0x80, 0x3A, 0x2A, 0x74, };
-const unsigned char xA9407E26[] = { 0x4D, 0x08, 0x33, 0xC0, 0x57, 0x33, 0xFF, 0x89, 0x45, 0xF8, 0x89, 0x45, 0xFC, 0x3B, 0xC8, 0x0F, 0x84, 0xF4, 0x00, 0x00, 0x00, 0x8B, 0x55, 0x0C, 0x3B, 0xD0, 0x0F, 0x84, 0xE9, 0x00, 0x00, 0x00, 0x8A, 0x12, 0x53, 0x56, 0x8D, 0x70, 0x01, 0x84, 0xD2, 0x74, 0x39, 0x8A, 0x19, 0x88, 0x5D, 0x0B, 0x80, 0xFB, 0x2A, 0x74, 0x2F, 0x3A, 0xDA, 0x75, 0x5C, 0x8D, 0x1C, 0x06, 0x46, 0x8D, 0x7C, 0x5F, 0x01, 0x84, 0xD2, 0x74, 0x05, 0xFF, 0x45, 0x0C, 0x8B, 0xF0, 0x8D, 0x04, 0x3E, 0x46, 0x80, 0x7D, 0x0B, 0x00, 0x74, 0x07, 0x8D, 0x3C, 0x06, 0x8D, 0x04, 0x3E, 0x41, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0xC7, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x03, 0xF0, 0x8D, 0x74, 0x37, 0x01, 0x84, 0xD2, 0x74, 0x6A, 0x8D, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x19, 0x8D, 0x3C, 0x30, 0x80, 0xFB, 0x2A, 0x75, 0x1B, 0x41, 0x80, 0x39, 0x00, 0x74, 0x74, 0x8B, 0x55, 0x0C, 0x8D, 0x44, 0x37, 0x01, 0x89, 0x4D, 0xF8, 0xEB, 0x3B, 0x5E, 0x5B, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x8B, 0xC6, 0x46, 0x47, 0x3A, 0xDA, 0x75, 0x1B, 0x84, 0xD2, 0x74, 0x0A, 0xFF, 0x45, 0x0C, 0x8D, 0x14, 0x07, 0x8D, 0x74, 0x16, 0x01, 0x84, 0xDB, 0x74, 0x1C, 0x03, 0xF8, 0x8D, 0x74, 0x3E, 0x01, 0x41, 0xEB, 0x13, 0x8B, 0x55, 0xFC, 0x8B, 0x4D, 0xF8, 0x8D, 0x34, 0x07, 0x8D, 0x04, 0x37, 0x89, 0x55, 0x0C, 0x42, 0x89, 0x55, 0xFC, 0x8B, 0x55, 0x0C, 0x8A, 0x12, 0x84, 0xD2, 0x75, 0x9C, 0x80, 0x39, 0x2A, 0x75, 0x0D, 0x8D, 0xA4, 0x24, 0x00, 0x00, 0x00, 0x00, 0x41, 0x80, 0x39, 0x2A, 0x74, 0xFA, 0x33, 0xC0, 0x38, 0x01, 0x5E, 0x5B, 0x0F, 0x94, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x5E, 0x5B, 0xB8, };
-const unsigned char xCCF59F07[] = { 0x55, 0x08, 0x33, 0xC0, 0x57, 0x89, 0x45, 0xF4, 0x89, 0x45, 0xF8, 0x3B, 0xD0, 0x0F, 0x84, 0x0B, 0x01, 0x00, 0x00, 0x8B, 0x7D, 0x0C, 0x3B, 0xF8, 0x0F, 0x84, 0x00, 0x01, 0x00, 0x00, 0x53, 0x8A, 0x1F, 0x56, 0xBE, 0x04, 0x00, 0x00, 0x00, 0x8D, 0x48, 0x0E, 0x8B, 0xC6, 0x88, 0x5D, 0x0B, 0x84, 0xDB, 0x74, 0x48, 0x8D, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x1A, 0x88, 0x5D, 0xFF, 0x80, 0xFB, 0x2A, 0x74, 0x38, 0x8A, 0x5D, 0x0B, 0x40, 0x38, 0x5D, 0xFF, 0x75, 0x63, 0x03, 0xF0, 0x8D, 0x0C, 0x30, 0x84, 0xDB, 0x74, 0x07, 0x8D, 0x04, 0x31, 0x41, 0xFF, 0x45, 0x0C, 0x8D, 0x3C, 0x30, 0x03, 0xCF, 0x40, 0x80, 0x7D, 0xFF, 0x00, 0x74, 0x07, 0x8D, 0x3C, 0x30, 0x03, 0xCF, 0x40, 0x42, 0x8B, 0x7D, 0x0C, 0x8A, 0x1F, 0x88, 0x5D, 0x0B, 0x84, 0xDB, 0x75, 0xBE, 0x8B, 0x5D, 0x0C, 0x8D, 0x34, 0x08, 0x8A, 0x0B, 0x8D, 0x3C, 0x30, 0x88, 0x4D, 0x0B, 0x84, 0xC9, 0x74, 0x6C, 0x8D, 0x0C, 0x30, 0x03, 0xF9, 0x8A, 0x0A, 0x80, 0xF9, 0x2A, 0x75, 0x1F, 0x42, 0x80, 0x3A, 0x00, 0x74, 0x73, 0x8B, 0xC6, 0x46, 0x03, 0xC6, 0x43, 0x8B, 0xFE, 0x89, 0x55, 0xF4, 0x89, 0x5D, 0xF8, 0xEB, 0x3E, 0x5E, 0x5B, 0x33, 0xC0, 0x5F, 0x8B, 0xE5, 0x5D, 0xC3, 0x8D, 0x5C, 0x30, 0x01, 0x03, 0xFB, 0x8A, 0x5D, 0x0B, 0x83, 0xC0, 0x02, 0x3A, 0xCB, 0x75, 0x14, 0x84, 0xDB, 0x74, 0x03, 0xFF, 0x45, 0x0C, 0x84, 0xC9, 0x74, 0x1A, 0x8D, 0x0C, 0x38, 0x03, 0xF1, 0x40, 0x42, 0xEB, 0x11, 0x8B, 0x4D, 0xF8, 0x8B, 0x55, 0xF4, 0x8B, 0xFE, 0x46, 0x40, 0x89, 0x4D, 0x0C, 0x41, 0x89, 0x4D, 0xF8, 0x8B, 0x5D, 0x0C, 0x8A, 0x0B, 0x88, 0x4D, 0x0B, 0x84, 0xC9, 0x75, 0x94, 0x80, 0x3A, 0x2A, 0x75, 0x06, 0x42, 0x80, };
diff --git a/package/ntlf9t/njitclient/src/ip.c b/package/ntlf9t/njitclient/src/ip.c
deleted file mode 100644
index 45ce59a232..0000000000
--- a/package/ntlf9t/njitclient/src/ip.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* File: ip.c
- * ----------
- *
- */
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-void GetIpFromDevice(uint8_t ip[4], const char DeviceName[])
-{
- int fd;
- struct ifreq ifr;
-
- assert(strlen(DeviceName) <= IFNAMSIZ);
-
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- assert(fd>0);
-
- strncpy(ifr.ifr_name, DeviceName, IFNAMSIZ);
- ifr.ifr_addr.sa_family = AF_INET;
- if (ioctl(fd, SIOCGIFADDR, &ifr) == 0)
- {
- struct sockaddr_in *p = (void*) &(ifr.ifr_addr);
- memcpy(ip, &(p->sin_addr), 4);
- }
- else
- {
- // 查询不到IP时默认填零处理
- memset(ip, 0x00, 4);
- }
-
- close(fd);
- return;
-}
-
diff --git a/package/ntlf9t/njitclient/src/m4/README b/package/ntlf9t/njitclient/src/m4/README
deleted file mode 100644
index 1bb184b12c..0000000000
--- a/package/ntlf9t/njitclient/src/m4/README
+++ /dev/null
@@ -1,3 +0,0 @@
-Note:
-"tcpdump-aclocal.m4"来源自tcpdump代码中的aclocal.m4,它给autoconf提供检测libpcap的所有宏
-
diff --git a/package/ntlf9t/njitclient/src/m4/tcpdump-aclocal.m4 b/package/ntlf9t/njitclient/src/m4/tcpdump-aclocal.m4
deleted file mode 100644
index b15802a609..0000000000
--- a/package/ntlf9t/njitclient/src/m4/tcpdump-aclocal.m4
+++ /dev/null
@@ -1,1209 +0,0 @@
-dnl @(#) $Header: /tcpdump/master/tcpdump/aclocal.m4,v 1.116 2008-09-25 21:45:50 guy Exp $ (LBL)
-dnl
-dnl Copyright (c) 1995, 1996, 1997, 1998
-dnl The Regents of the University of California. All rights reserved.
-dnl
-dnl Redistribution and use in source and binary forms, with or without
-dnl modification, are permitted provided that: (1) source code distributions
-dnl retain the above copyright notice and this paragraph in its entirety, (2)
-dnl distributions including binary code include the above copyright notice and
-dnl this paragraph in its entirety in the documentation or other materials
-dnl provided with the distribution, and (3) all advertising materials mentioning
-dnl features or use of this software display the following acknowledgement:
-dnl ``This product includes software developed by the University of California,
-dnl Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
-dnl the University nor the names of its contributors may be used to endorse
-dnl or promote products derived from this software without specific prior
-dnl written permission.
-dnl THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
-dnl WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-dnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-dnl
-dnl LBL autoconf macros
-dnl
-
-dnl
-dnl Do whatever AC_LBL_C_INIT work is necessary before using AC_PROG_CC.
-dnl
-dnl It appears that newer versions of autoconf (2.64 and later) will,
-dnl if you use AC_TRY_COMPILE in a macro, stick AC_PROG_CC at the
-dnl beginning of the macro, even if the macro itself calls AC_PROG_CC.
-dnl See the "Prerequisite Macros" and "Expanded Before Required" sections
-dnl in the Autoconf documentation.
-dnl
-dnl This causes a steaming heap of fail in our case, as we were, in
-dnl AC_LBL_C_INIT, doing the tests we now do in AC_LBL_C_INIT_BEFORE_CC,
-dnl calling AC_PROG_CC, and then doing the tests we now do in
-dnl AC_LBL_C_INIT. Now, we run AC_LBL_C_INIT_BEFORE_CC, AC_PROG_CC,
-dnl and AC_LBL_C_INIT at the top level.
-dnl
-AC_DEFUN([AC_LBL_C_INIT_BEFORE_CC],
- [AC_PREREQ(2.50)
- AC_BEFORE([$0], [AC_LBL_C_INIT])
- AC_BEFORE([$0], [AC_PROG_CC])
- AC_BEFORE([$0], [AC_LBL_FIXINCLUDES])
- AC_BEFORE([$0], [AC_LBL_DEVEL])
- AC_ARG_WITH(gcc, [ --without-gcc don't use gcc])
- $1="-O"
- $2=""
- if test "${srcdir}" != "." ; then
- $2="-I$srcdir"
- fi
- if test "${CFLAGS+set}" = set; then
- LBL_CFLAGS="$CFLAGS"
- fi
- if test -z "$CC" ; then
- case "$host_os" in
-
- bsdi*)
- AC_CHECK_PROG(SHLICC2, shlicc2, yes, no)
- if test $SHLICC2 = yes ; then
- CC=shlicc2
- export CC
- fi
- ;;
- esac
- fi
- if test -z "$CC" -a "$with_gcc" = no ; then
- CC=cc
- export CC
- fi
-])
-
-dnl
-dnl Determine which compiler we're using (cc or gcc)
-dnl If using gcc, determine the version number
-dnl If using cc, require that it support ansi prototypes
-dnl If using gcc, use -O2 (otherwise use -O)
-dnl If using cc, explicitly specify /usr/local/include
-dnl
-dnl usage:
-dnl
-dnl AC_LBL_C_INIT(copt, incls)
-dnl
-dnl results:
-dnl
-dnl $1 (copt set)
-dnl $2 (incls set)
-dnl CC
-dnl LDFLAGS
-dnl ac_cv_lbl_gcc_vers
-dnl LBL_CFLAGS
-dnl
-AC_DEFUN([AC_LBL_C_INIT],
- [AC_PREREQ(2.50)
- AC_BEFORE([$0], [AC_LBL_FIXINCLUDES])
- AC_BEFORE([$0], [AC_LBL_DEVEL])
- AC_BEFORE([$0], [AC_LBL_SHLIBS_INIT])
- if test "$GCC" = yes ; then
- if test "$SHLICC2" = yes ; then
- ac_cv_lbl_gcc_vers=2
- $1="-O2"
- else
- AC_MSG_CHECKING(gcc version)
- AC_CACHE_VAL(ac_cv_lbl_gcc_vers,
- ac_cv_lbl_gcc_vers=`$CC -v 2>&1 | \
- sed -e '/^gcc version /!d' \
- -e 's/^gcc version //' \
- -e 's/ .*//' -e 's/^[[[^0-9]]]*//' \
- -e 's/\..*//'`)
- AC_MSG_RESULT($ac_cv_lbl_gcc_vers)
- if test $ac_cv_lbl_gcc_vers -gt 1 ; then
- $1="-O2"
- fi
- fi
- else
- AC_MSG_CHECKING(that $CC handles ansi prototypes)
- AC_CACHE_VAL(ac_cv_lbl_cc_ansi_prototypes,
- AC_TRY_COMPILE(
- [#include ],
- [int frob(int, char *)],
- ac_cv_lbl_cc_ansi_prototypes=yes,
- ac_cv_lbl_cc_ansi_prototypes=no))
- AC_MSG_RESULT($ac_cv_lbl_cc_ansi_prototypes)
- if test $ac_cv_lbl_cc_ansi_prototypes = no ; then
- case "$host_os" in
-
- hpux*)
- AC_MSG_CHECKING(for HP-UX ansi compiler ($CC -Aa -D_HPUX_SOURCE))
- savedcflags="$CFLAGS"
- CFLAGS="-Aa -D_HPUX_SOURCE $CFLAGS"
- AC_CACHE_VAL(ac_cv_lbl_cc_hpux_cc_aa,
- AC_TRY_COMPILE(
- [#include ],
- [int frob(int, char *)],
- ac_cv_lbl_cc_hpux_cc_aa=yes,
- ac_cv_lbl_cc_hpux_cc_aa=no))
- AC_MSG_RESULT($ac_cv_lbl_cc_hpux_cc_aa)
- if test $ac_cv_lbl_cc_hpux_cc_aa = no ; then
- AC_MSG_ERROR(see the INSTALL doc for more info)
- fi
- CFLAGS="$savedcflags"
- $1="-Aa $$1"
- AC_DEFINE(_HPUX_SOURCE,1,[needed on HP-UX])
- ;;
-
- osf*)
- AC_MSG_CHECKING(for ansi mode in DEC compiler ($CC -std1))
- savedcflags="$CFLAGS"
- CFLAGS="-std1"
- AC_CACHE_VAL(ac_cv_lbl_cc_osf1_cc_std1,
- AC_TRY_COMPILE(
- [#include ],
- [int frob(int, char *)],
- ac_cv_lbl_cc_osf1_cc_std1=yes,
- ac_cv_lbl_cc_osf1_cc_std1=no))
- AC_MSG_RESULT($ac_cv_lbl_cc_osf1_cc_std1)
- if test $ac_cv_lbl_cc_osf1_cc_std1 = no ; then
- AC_MSG_ERROR(see the INSTALL doc for more info)
- fi
- CFLAGS="$savedcflags"
- $1="-std1 $$1"
- ;;
-
- *)
- AC_MSG_ERROR(see the INSTALL doc for more info)
- ;;
- esac
- fi
- $2="$$2 -I/usr/local/include"
- LDFLAGS="$LDFLAGS -L/usr/local/lib"
-
- case "$host_os" in
-
- irix*)
- $1="$$1 -xansi -signed -O"
- ;;
-
- osf*)
- #
- # Presumed to be DEC OSF/1, Digital UNIX, or
- # Tru64 UNIX.
- #
- $1="$$1 -O"
- ;;
-
- ultrix*)
- AC_MSG_CHECKING(that Ultrix $CC hacks const in prototypes)
- AC_CACHE_VAL(ac_cv_lbl_cc_const_proto,
- AC_TRY_COMPILE(
- [#include ],
- [struct a { int b; };
- void c(const struct a *)],
- ac_cv_lbl_cc_const_proto=yes,
- ac_cv_lbl_cc_const_proto=no))
- AC_MSG_RESULT($ac_cv_lbl_cc_const_proto)
- if test $ac_cv_lbl_cc_const_proto = no ; then
- AC_DEFINE(const,[],
- [to handle Ultrix compilers that don't support const in prototypes])
- fi
- ;;
- esac
- fi
-])
-
-#
-# Try compiling a sample of the type of code that appears in
-# gencode.c with "inline", "__inline__", and "__inline".
-#
-# Autoconf's AC_C_INLINE, at least in autoconf 2.13, isn't good enough,
-# as it just tests whether a function returning "int" can be inlined;
-# at least some versions of HP's C compiler can inline that, but can't
-# inline a function that returns a struct pointer.
-#
-# Make sure we use the V_CCOPT flags, because some of those might
-# disable inlining.
-#
-AC_DEFUN([AC_LBL_C_INLINE],
- [AC_MSG_CHECKING(for inline)
- save_CFLAGS="$CFLAGS"
- CFLAGS="$V_CCOPT"
- AC_CACHE_VAL(ac_cv_lbl_inline, [
- ac_cv_lbl_inline=""
- ac_lbl_cc_inline=no
- for ac_lbl_inline in inline __inline__ __inline
- do
- AC_TRY_COMPILE(
- [#define inline $ac_lbl_inline
- static inline struct iltest *foo(void);
- struct iltest {
- int iltest1;
- int iltest2;
- };
-
- static inline struct iltest *
- foo()
- {
- static struct iltest xxx;
-
- return &xxx;
- }],,ac_lbl_cc_inline=yes,)
- if test "$ac_lbl_cc_inline" = yes ; then
- break;
- fi
- done
- if test "$ac_lbl_cc_inline" = yes ; then
- ac_cv_lbl_inline=$ac_lbl_inline
- fi])
- CFLAGS="$save_CFLAGS"
- if test ! -z "$ac_cv_lbl_inline" ; then
- AC_MSG_RESULT($ac_cv_lbl_inline)
- else
- AC_MSG_RESULT(no)
- fi
- AC_DEFINE_UNQUOTED(inline, $ac_cv_lbl_inline, [Define as token for inline if inlining supported])])
-
-dnl
-dnl Use pfopen.c if available and pfopen() not in standard libraries
-dnl Require libpcap
-dnl Look for libpcap in ..
-dnl Use the installed libpcap if there is no local version
-dnl
-dnl usage:
-dnl
-dnl AC_LBL_LIBPCAP(pcapdep, incls)
-dnl
-dnl results:
-dnl
-dnl $1 (pcapdep set)
-dnl $2 (incls appended)
-dnl LIBS
-dnl LBL_LIBS
-dnl
-AC_DEFUN([AC_LBL_LIBPCAP],
- [AC_REQUIRE([AC_LBL_LIBRARY_NET])
- dnl
- dnl save a copy before locating libpcap.a
- dnl
- LBL_LIBS="$LIBS"
- pfopen=/usr/examples/packetfilter/pfopen.c
- if test -f $pfopen ; then
- AC_CHECK_FUNCS(pfopen)
- if test $ac_cv_func_pfopen = "no" ; then
- AC_MSG_RESULT(Using $pfopen)
- LIBS="$LIBS $pfopen"
- fi
- fi
- AC_MSG_CHECKING(for local pcap library)
- libpcap=FAIL
- lastdir=FAIL
- places=`ls $srcdir/.. | sed -e 's,/$,,' -e "s,^,$srcdir/../," | \
- egrep '/libpcap-[[0-9]]+\.[[0-9]]+(\.[[0-9]]*)?([[ab]][[0-9]]*|-PRE-GIT)?$'`
- for dir in $places $srcdir/../libpcap $srcdir/libpcap ; do
- basedir=`echo $dir | sed -e 's/[[ab]][[0-9]]*$//' | \
- sed -e 's/-PRE-GIT$//' `
- if test $lastdir = $basedir ; then
- dnl skip alphas when an actual release is present
- continue;
- fi
- lastdir=$dir
- if test -r $dir/libpcap.a ; then
- libpcap=$dir/libpcap.a
- d=$dir
- dnl continue and select the last one that exists
- fi
- done
- if test $libpcap = FAIL ; then
- AC_MSG_RESULT(not found)
-
- #
- # Look for pcap-config.
- #
- AC_PATH_TOOL(PCAP_CONFIG, pcap-config)
- if test -n "$PCAP_CONFIG" ; then
- #
- # Found - use it to get the include flags for
- # libpcap and the flags to link with libpcap.
- #
- # Please read section 11.6 "Shell Substitutions"
- # in the autoconf manual before doing anything
- # to this that involves quoting. Especially note
- # the statement "There is just no portable way to use
- # double-quoted strings inside double-quoted back-quoted
- # expressions (pfew!)."
- #
- cflags=`"$PCAP_CONFIG" --cflags`
- $2="$cflags $$2"
- libpcap=`"$PCAP_CONFIG" --libs`
- else
- #
- # Not found; look for pcap.
- #
- AC_CHECK_LIB(pcap, main, libpcap="-lpcap")
- if test $libpcap = FAIL ; then
- AC_MSG_ERROR(see the INSTALL doc for more info)
- fi
- dnl
- dnl Some versions of Red Hat Linux put "pcap.h" in
- dnl "/usr/include/pcap"; had the LBL folks done so,
- dnl that would have been a good idea, but for
- dnl the Red Hat folks to do so just breaks source
- dnl compatibility with other systems.
- dnl
- dnl We work around this by assuming that, as we didn't
- dnl find a local libpcap, libpcap is in /usr/lib or
- dnl /usr/local/lib and that the corresponding header
- dnl file is under one of those directories; if we don't
- dnl find it in either of those directories, we check to
- dnl see if it's in a "pcap" subdirectory of them and,
- dnl if so, add that subdirectory to the "-I" list.
- dnl
- dnl (We now also put pcap.h in /usr/include/pcap, but we
- dnl leave behind a /usr/include/pcap.h that includes it,
- dnl so you can still just include .)
- dnl
- AC_MSG_CHECKING(for extraneous pcap header directories)
- if test \( ! -r /usr/local/include/pcap.h \) -a \
- \( ! -r /usr/include/pcap.h \); then
- if test -r /usr/local/include/pcap/pcap.h; then
- d="/usr/local/include/pcap"
- elif test -r /usr/include/pcap/pcap.h; then
- d="/usr/include/pcap"
- fi
- fi
- if test -z "$d" ; then
- AC_MSG_RESULT(not found)
- else
- $2="-I$d $$2"
- AC_MSG_RESULT(found -- -I$d added)
- fi
- fi
- else
- $1=$libpcap
- places=`ls $srcdir/.. | sed -e 's,/$,,' -e "s,^,$srcdir/../," | \
- egrep '/libpcap-[[0-9]]*.[[0-9]]*(.[[0-9]]*)?([[ab]][[0-9]]*)?$'`
- if test -r $d/pcap.h; then
- $2="-I$d $$2"
- elif test -r $places/pcap.h; then
- $2="-I$places $$2"
- else
- AC_MSG_ERROR(cannot find pcap.h, see INSTALL)
- fi
- AC_MSG_RESULT($libpcap)
- AC_PATH_PROG(PCAP_CONFIG, pcap-config,, $d)
- if test -n "$PCAP_CONFIG"; then
- #
- # The libpcap directory has a pcap-config script.
- # Use it to get any additioal libraries needed
- # to link with the libpcap archive library in
- # that directory.
- #
- # Please read section 11.6 "Shell Substitutions"
- # in the autoconf manual before doing anything
- # to this that involves quoting. Especially note
- # the statement "There is just no portable way to use
- # double-quoted strings inside double-quoted back-quoted
- # expressions (pfew!)."
- #
- additional_libs=`"$PCAP_CONFIG" --additional-libs --static`
- libpcap="$libpcap $additional_libs"
- fi
- fi
- LIBS="$libpcap $LIBS"
- if ! test -n "$PCAP_CONFIG" ; then
- #
- # We don't have pcap-config; find out any additional link flags
- # we need. (If we have pcap-config, we assume it tells us what
- # we need.)
- #
- case "$host_os" in
-
- aix*)
- #
- # If libpcap is DLPI-based, we have to use /lib/pse.exp if
- # present, as we use the STREAMS routines.
- #
- # (XXX - true only if we're linking with a static libpcap?)
- #
- pseexe="/lib/pse.exp"
- AC_MSG_CHECKING(for $pseexe)
- if test -f $pseexe ; then
- AC_MSG_RESULT(yes)
- LIBS="$LIBS -I:$pseexe"
- fi
-
- #
- # If libpcap is BPF-based, we need "-lodm" and "-lcfg", as
- # we use them to load the BPF module.
- #
- # (XXX - true only if we're linking with a static libpcap?)
- #
- LIBS="$LIBS -lodm -lcfg"
- ;;
- esac
- fi
-
- dnl
- dnl Check for "pcap_loop()", to make sure we found a working
- dnl libpcap and have all the right other libraries with which
- dnl to link. (Otherwise, the checks below will fail, not
- dnl because the routines are missing from the library, but
- dnl because we aren't linking properly with libpcap, and
- dnl that will cause confusing errors at build time.)
- dnl
- AC_CHECK_FUNC(pcap_loop,,
- [
- AC_MSG_ERROR(
-[Report this to tcpdump-workers@lists.tcpdump.org, and include the
-config.log file in your report])
- ])
-
- dnl
- dnl Check for "pcap_list_datalinks()", "pcap_set_datalink()",
- dnl and "pcap_datalink_name_to_val()", and use substitute versions
- dnl if they're not present.
- dnl
- AC_CHECK_FUNC(pcap_list_datalinks,
- AC_DEFINE(HAVE_PCAP_LIST_DATALINKS,[],[pcap_list_datalinks()]),
- [
- AC_LIBOBJ(datalinks)
- ])
- AC_CHECK_FUNC(pcap_set_datalink,
- AC_DEFINE(HAVE_PCAP_SET_DATALINK,[],[pcap_set_datalink()]))
- AC_CHECK_FUNC(pcap_datalink_name_to_val,
- [
- AC_DEFINE(HAVE_PCAP_DATALINK_NAME_TO_VAL,[],[pcap_datalink_name_to_val()])
- AC_CHECK_FUNC(pcap_datalink_val_to_description,
- AC_DEFINE(HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION,[],[pcap_datalink_val_to_description()]),
- [
- AC_LIBOBJ(dlnames)
- ])
- ],
- [
- AC_LIBOBJ(dlnames)
- ])
-
- dnl
- dnl Check for "pcap_breakloop()"; you can't substitute for it if
- dnl it's absent (it has hooks into the live capture routines),
- dnl so just define the HAVE_ value if it's there.
- dnl
- AC_CHECK_FUNCS(pcap_breakloop)
-
- dnl
- dnl Check for "pcap_dump_ftell()" and use a substitute version
- dnl if it's not present.
- AC_CHECK_FUNC(pcap_dump_ftell,
- AC_DEFINE(HAVE_PCAP_DUMP_FTELL,[],[pcap_dump_ftell()]),
- [
- AC_LIBOBJ(pcap_dump_ftell)
- ])
-])
-
-dnl
-dnl Define RETSIGTYPE and RETSIGVAL
-dnl
-dnl usage:
-dnl
-dnl AC_LBL_TYPE_SIGNAL
-dnl
-dnl results:
-dnl
-dnl RETSIGTYPE (defined)
-dnl RETSIGVAL (defined)
-dnl
-AC_DEFUN([AC_LBL_TYPE_SIGNAL],
- [AC_BEFORE([$0], [AC_LBL_LIBPCAP])
- AC_TYPE_SIGNAL
- if test "$ac_cv_type_signal" = void ; then
- AC_DEFINE(RETSIGVAL,[],[return value of signal handlers])
- else
- AC_DEFINE(RETSIGVAL,(0),[return value of signal handlers])
- fi
- case "$host_os" in
-
- irix*)
- AC_DEFINE(_BSD_SIGNALS,1,[get BSD semantics on Irix])
- ;;
-
- *)
- dnl prefer sigaction() to sigset()
- AC_CHECK_FUNCS(sigaction)
- if test $ac_cv_func_sigaction = no ; then
- AC_CHECK_FUNCS(sigset)
- fi
- ;;
- esac])
-
-dnl
-dnl If using gcc, make sure we have ANSI ioctl definitions
-dnl
-dnl usage:
-dnl
-dnl AC_LBL_FIXINCLUDES
-dnl
-AC_DEFUN([AC_LBL_FIXINCLUDES],
- [if test "$GCC" = yes ; then
- AC_MSG_CHECKING(for ANSI ioctl definitions)
- AC_CACHE_VAL(ac_cv_lbl_gcc_fixincludes,
- AC_TRY_COMPILE(
- [/*
- * This generates a "duplicate case value" when fixincludes
- * has not be run.
- */
-# include
-# include
-# include
-# ifdef HAVE_SYS_IOCCOM_H
-# include
-# endif],
- [switch (0) {
- case _IO('A', 1):;
- case _IO('B', 1):;
- }],
- ac_cv_lbl_gcc_fixincludes=yes,
- ac_cv_lbl_gcc_fixincludes=no))
- AC_MSG_RESULT($ac_cv_lbl_gcc_fixincludes)
- if test $ac_cv_lbl_gcc_fixincludes = no ; then
- # Don't cache failure
- unset ac_cv_lbl_gcc_fixincludes
- AC_MSG_ERROR(see the INSTALL for more info)
- fi
- fi])
-
-dnl
-dnl Checks to see if union wait is used with WEXITSTATUS()
-dnl
-dnl usage:
-dnl
-dnl AC_LBL_UNION_WAIT
-dnl
-dnl results:
-dnl
-dnl DECLWAITSTATUS (defined)
-dnl
-AC_DEFUN([AC_LBL_UNION_WAIT],
- [AC_MSG_CHECKING(if union wait is used)
- AC_CACHE_VAL(ac_cv_lbl_union_wait,
- AC_TRY_COMPILE([
-# include
-# include ],
- [int status;
- u_int i = WEXITSTATUS(status);
- u_int j = waitpid(0, &status, 0);],
- ac_cv_lbl_union_wait=no,
- ac_cv_lbl_union_wait=yes))
- AC_MSG_RESULT($ac_cv_lbl_union_wait)
- if test $ac_cv_lbl_union_wait = yes ; then
- AC_DEFINE(DECLWAITSTATUS,union wait,[type for wait])
- else
- AC_DEFINE(DECLWAITSTATUS,int,[type for wait])
- fi])
-
-dnl
-dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member
-dnl
-dnl usage:
-dnl
-dnl AC_LBL_SOCKADDR_SA_LEN
-dnl
-dnl results:
-dnl
-dnl HAVE_SOCKADDR_SA_LEN (defined)
-dnl
-AC_DEFUN([AC_LBL_SOCKADDR_SA_LEN],
- [AC_MSG_CHECKING(if sockaddr struct has the sa_len member)
- AC_CACHE_VAL(ac_cv_lbl_sockaddr_has_sa_len,
- AC_TRY_COMPILE([
-# include
-# include ],
- [u_int i = sizeof(((struct sockaddr *)0)->sa_len)],
- ac_cv_lbl_sockaddr_has_sa_len=yes,
- ac_cv_lbl_sockaddr_has_sa_len=no))
- AC_MSG_RESULT($ac_cv_lbl_sockaddr_has_sa_len)
- if test $ac_cv_lbl_sockaddr_has_sa_len = yes ; then
- AC_DEFINE(HAVE_SOCKADDR_SA_LEN,1,[if struct sockaddr has the sa_len member])
- fi])
-
-dnl
-dnl Checks to see if -R is used
-dnl
-dnl usage:
-dnl
-dnl AC_LBL_HAVE_RUN_PATH
-dnl
-dnl results:
-dnl
-dnl ac_cv_lbl_have_run_path (yes or no)
-dnl
-AC_DEFUN([AC_LBL_HAVE_RUN_PATH],
- [AC_MSG_CHECKING(for ${CC-cc} -R)
- AC_CACHE_VAL(ac_cv_lbl_have_run_path,
- [echo 'main(){}' > conftest.c
- ${CC-cc} -o conftest conftest.c -R/a1/b2/c3 >conftest.out 2>&1
- if test ! -s conftest.out ; then
- ac_cv_lbl_have_run_path=yes
- else
- ac_cv_lbl_have_run_path=no
- fi
- rm -f -r conftest*])
- AC_MSG_RESULT($ac_cv_lbl_have_run_path)
- ])
-
-dnl
-dnl Check whether a given format can be used to print 64-bit integers
-dnl
-AC_DEFUN([AC_LBL_CHECK_64BIT_FORMAT],
- [
- AC_MSG_CHECKING([whether %$1x can be used to format 64-bit integers])
- AC_RUN_IFELSE(
- [
- AC_LANG_SOURCE(
- [[
-# ifdef HAVE_INTTYPES_H
- #include
-# endif
-# ifdef HAVE_SYS_BITYPES_H
- #include
-# endif
- #include
- #include
-
- main()
- {
- u_int64_t t = 1;
- char strbuf[16+1];
- sprintf(strbuf, "%016$1x", t << 32);
- if (strcmp(strbuf, "0000000100000000") == 0)
- exit(0);
- else
- exit(1);
- }
- ]])
- ],
- [
- AC_DEFINE(PRId64, "$1d")
- AC_DEFINE(PRIo64, "$1o")
- AC_DEFINE(PRIx64, "$1x")
- AC_DEFINE(PRIu64, "$1u")
- AC_MSG_RESULT(yes)
- ],
- [
- AC_MSG_RESULT(no)
- $2
- ])
- ])
-
-dnl
-dnl Checks to see if unaligned memory accesses fail
-dnl
-dnl usage:
-dnl
-dnl AC_LBL_UNALIGNED_ACCESS
-dnl
-dnl results:
-dnl
-dnl LBL_ALIGN (DEFINED)
-dnl
-AC_DEFUN([AC_LBL_UNALIGNED_ACCESS],
- [AC_MSG_CHECKING(if unaligned accesses fail)
- AC_CACHE_VAL(ac_cv_lbl_unaligned_fail,
- [case "$host_cpu" in
-
- #
- # These are CPU types where:
- #
- # the CPU faults on an unaligned access, but at least some
- # OSes that support that CPU catch the fault and simulate
- # the unaligned access (e.g., Alpha/{Digital,Tru64} UNIX) -
- # the simulation is slow, so we don't want to use it;
- #
- # the CPU, I infer (from the old
- #
- # XXX: should also check that they don't do weird things (like on arm)
- #
- # comment) doesn't fault on unaligned accesses, but doesn't
- # do a normal unaligned fetch, either (e.g., presumably, ARM);
- #
- # for whatever reason, the test program doesn't work
- # (this has been claimed to be the case for several of those
- # CPUs - I don't know what the problem is; the problem
- # was reported as "the test program dumps core" for SuperH,
- # but that's what the test program is *supposed* to do -
- # it dumps core before it writes anything, so the test
- # for an empty output file should find an empty output
- # file and conclude that unaligned accesses don't work).
- #
- # This run-time test won't work if you're cross-compiling, so
- # in order to support cross-compiling for a particular CPU,
- # we have to wire in the list of CPU types anyway, as far as
- # I know, so perhaps we should just have a set of CPUs on
- # which we know it doesn't work, a set of CPUs on which we
- # know it does work, and have the script just fail on other
- # cpu types and update it when such a failure occurs.
- #
- alpha*|arm*|bfin*|hp*|mips*|sh*|sparc*|ia64|nv1)
- ac_cv_lbl_unaligned_fail=yes
- ;;
-
- *)
- cat >conftest.c <
-# include
-# include
- unsigned char a[[5]] = { 1, 2, 3, 4, 5 };
- main() {
- unsigned int i;
- pid_t pid;
- int status;
- /* avoid "core dumped" message */
- pid = fork();
- if (pid < 0)
- exit(2);
- if (pid > 0) {
- /* parent */
- pid = waitpid(pid, &status, 0);
- if (pid < 0)
- exit(3);
- exit(!WIFEXITED(status));
- }
- /* child */
- i = *(unsigned int *)&a[[1]];
- printf("%d\n", i);
- exit(0);
- }
-EOF
- ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS \
- conftest.c $LIBS >/dev/null 2>&1
- if test ! -x conftest ; then
- dnl failed to compile for some reason
- ac_cv_lbl_unaligned_fail=yes
- else
- ./conftest >conftest.out
- if test ! -s conftest.out ; then
- ac_cv_lbl_unaligned_fail=yes
- else
- ac_cv_lbl_unaligned_fail=no
- fi
- fi
- rm -f -r conftest* core core.conftest
- ;;
- esac])
- AC_MSG_RESULT($ac_cv_lbl_unaligned_fail)
- if test $ac_cv_lbl_unaligned_fail = yes ; then
- AC_DEFINE(LBL_ALIGN,1,[if unaligned access fails])
- fi])
-
-dnl
-dnl If using gcc and the file .devel exists:
-dnl Compile with -g (if supported) and -Wall
-dnl If using gcc 2 or later, do extra prototype checking and some other
-dnl checks
-dnl If an os prototype include exists, symlink os-proto.h to it
-dnl
-dnl usage:
-dnl
-dnl AC_LBL_DEVEL(copt)
-dnl
-dnl results:
-dnl
-dnl $1 (copt appended)
-dnl HAVE_OS_PROTO_H (defined)
-dnl os-proto.h (symlinked)
-dnl
-AC_DEFUN([AC_LBL_DEVEL],
- [rm -f os-proto.h
- if test "${LBL_CFLAGS+set}" = set; then
- $1="$$1 ${LBL_CFLAGS}"
- fi
- if test -f .devel ; then
- if test "$GCC" = yes ; then
- if test "${LBL_CFLAGS+set}" != set; then
- if test "$ac_cv_prog_cc_g" = yes ; then
- $1="-g $$1"
- fi
- $1="$$1 -Wall"
- if test $ac_cv_lbl_gcc_vers -gt 1 ; then
- $1="$$1 -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings -Wpointer-arith -W"
- fi
- fi
- else
- case "$host_os" in
-
- irix6*)
- V_CCOPT="$V_CCOPT -n32"
- ;;
-
- *)
- ;;
- esac
- fi
- os=`echo $host_os | sed -e 's/\([[0-9]][[0-9]]*\)[[^0-9]].*$/\1/'`
- name="lbl/os-$os.h"
- if test -f $name ; then
- ln -s $name os-proto.h
- AC_DEFINE(HAVE_OS_PROTO_H, 1,
- [if there's an os_proto.h for this platform, to use additional prototypes])
- else
- AC_MSG_WARN(can't find $name)
- fi
- fi])
-
-dnl
-dnl Improved version of AC_CHECK_LIB
-dnl
-dnl Thanks to John Hawkinson (jhawk@mit.edu)
-dnl
-dnl usage:
-dnl
-dnl AC_LBL_CHECK_LIB(LIBRARY, FUNCTION [, ACTION-IF-FOUND [,
-dnl ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
-dnl
-dnl results:
-dnl
-dnl LIBS
-dnl
-dnl XXX - "AC_LBL_LIBRARY_NET" was redone to use "AC_SEARCH_LIBS"
-dnl rather than "AC_LBL_CHECK_LIB", so this isn't used any more.
-dnl We keep it around for reference purposes in case it's ever
-dnl useful in the future.
-dnl
-
-define(AC_LBL_CHECK_LIB,
-[AC_MSG_CHECKING([for $2 in -l$1])
-dnl Use a cache variable name containing the library, function
-dnl name, and extra libraries to link with, because the test really is
-dnl for library $1 defining function $2, when linked with potinal
-dnl library $5, not just for library $1. Separate tests with the same
-dnl $1 and different $2's or $5's may have different results.
-ac_lib_var=`echo $1['_']$2['_']$5 | sed 'y%./+- %__p__%'`
-AC_CACHE_VAL(ac_cv_lbl_lib_$ac_lib_var,
-[ac_save_LIBS="$LIBS"
-LIBS="-l$1 $5 $LIBS"
-AC_TRY_LINK(dnl
-ifelse([$2], [main], , dnl Avoid conflicting decl of main.
-[/* Override any gcc2 internal prototype to avoid an error. */
-]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
-extern "C"
-#endif
-])dnl
-[/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $2();
-]),
- [$2()],
- eval "ac_cv_lbl_lib_$ac_lib_var=yes",
- eval "ac_cv_lbl_lib_$ac_lib_var=no")
-LIBS="$ac_save_LIBS"
-])dnl
-if eval "test \"`echo '$ac_cv_lbl_lib_'$ac_lib_var`\" = yes"; then
- AC_MSG_RESULT(yes)
- ifelse([$3], ,
-[changequote(, )dnl
- ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-changequote([, ])dnl
- AC_DEFINE_UNQUOTED($ac_tr_lib)
- LIBS="-l$1 $LIBS"
-], [$3])
-else
- AC_MSG_RESULT(no)
-ifelse([$4], , , [$4
-])dnl
-fi
-])
-
-dnl
-dnl AC_LBL_LIBRARY_NET
-dnl
-dnl This test is for network applications that need socket() and
-dnl gethostbyname() -ish functions. Under Solaris, those applications
-dnl need to link with "-lsocket -lnsl". Under IRIX, they need to link
-dnl with "-lnsl" but should *not* link with "-lsocket" because
-dnl libsocket.a breaks a number of things (for instance:
-dnl gethostbyname() under IRIX 5.2, and snoop sockets under most
-dnl versions of IRIX).
-dnl
-dnl Unfortunately, many application developers are not aware of this,
-dnl and mistakenly write tests that cause -lsocket to be used under
-dnl IRIX. It is also easy to write tests that cause -lnsl to be used
-dnl under operating systems where neither are necessary (or useful),
-dnl such as SunOS 4.1.4, which uses -lnsl for TLI.
-dnl
-dnl This test exists so that every application developer does not test
-dnl this in a different, and subtly broken fashion.
-
-dnl It has been argued that this test should be broken up into two
-dnl seperate tests, one for the resolver libraries, and one for the
-dnl libraries necessary for using Sockets API. Unfortunately, the two
-dnl are carefully intertwined and allowing the autoconf user to use
-dnl them independantly potentially results in unfortunate ordering
-dnl dependancies -- as such, such component macros would have to
-dnl carefully use indirection and be aware if the other components were
-dnl executed. Since other autoconf macros do not go to this trouble,
-dnl and almost no applications use sockets without the resolver, this
-dnl complexity has not been implemented.
-dnl
-dnl The check for libresolv is in case you are attempting to link
-dnl statically and happen to have a libresolv.a lying around (and no
-dnl libnsl.a).
-dnl
-AC_DEFUN([AC_LBL_LIBRARY_NET], [
- # Most operating systems have gethostbyname() in the default searched
- # libraries (i.e. libc):
- # Some OSes (eg. Solaris) place it in libnsl
- # Some strange OSes (SINIX) have it in libsocket:
- AC_SEARCH_LIBS(gethostbyname, nsl socket resolv)
- # Unfortunately libsocket sometimes depends on libnsl and
- # AC_SEARCH_LIBS isn't up to the task of handling dependencies like this.
- if test "$ac_cv_search_gethostbyname" = "no"
- then
- AC_CHECK_LIB(socket, gethostbyname,
- LIBS="-lsocket -lnsl $LIBS", , -lnsl)
- fi
- AC_SEARCH_LIBS(socket, socket, ,
- AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , -lnsl))
- # DLPI needs putmsg under HPUX so test for -lstr while we're at it
- AC_SEARCH_LIBS(putmsg, str)
- ])
-
-dnl Copyright (c) 1999 WIDE Project. All rights reserved.
-dnl
-dnl Redistribution and use in source and binary forms, with or without
-dnl modification, are permitted provided that the following conditions
-dnl are met:
-dnl 1. Redistributions of source code must retain the above copyright
-dnl notice, this list of conditions and the following disclaimer.
-dnl 2. Redistributions in binary form must reproduce the above copyright
-dnl notice, this list of conditions and the following disclaimer in the
-dnl documentation and/or other materials provided with the distribution.
-dnl 3. Neither the name of the project nor the names of its contributors
-dnl may be used to endorse or promote products derived from this software
-dnl without specific prior written permission.
-dnl
-dnl THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
-dnl ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-dnl ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
-dnl FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-dnl OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-dnl LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-dnl OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-dnl SUCH DAMAGE.
-
-dnl
-dnl Checks to see if AF_INET6 is defined
-AC_DEFUN([AC_CHECK_AF_INET6], [
- AC_MSG_CHECKING(for AF_INET6)
- AC_CACHE_VAL($1,
- AC_TRY_COMPILE([
-# include
-# include ],
- [int a = AF_INET6],
- $1=yes,
- $1=no))
- AC_MSG_RESULT($$1)
- if test $$1 = yes ; then
- AC_DEFINE(HAVE_AF_INET6)
- fi
-])
-
-dnl
-dnl Checks to see if the sockaddr struct has the 4.4 BSD sa_len member
-dnl borrowed from LBL libpcap
-AC_DEFUN([AC_CHECK_SA_LEN], [
- AC_MSG_CHECKING(if sockaddr struct has sa_len member)
- AC_CACHE_VAL($1,
- AC_TRY_COMPILE([
-# include
-# include ],
- [u_int i = sizeof(((struct sockaddr *)0)->sa_len)],
- $1=yes,
- $1=no))
- AC_MSG_RESULT($$1)
- if test $$1 = yes ; then
- AC_DEFINE(HAVE_SOCKADDR_SA_LEN)
- fi
-])
-
-dnl
-dnl Checks for addrinfo structure
-AC_DEFUN([AC_STRUCT_ADDRINFO], [
- AC_MSG_CHECKING(for addrinfo)
- AC_CACHE_VAL($1,
- AC_TRY_COMPILE([
-# include ],
- [struct addrinfo a],
- $1=yes,
- $1=no))
- AC_MSG_RESULT($$1)
- if test $$1 = yes; then
- AC_DEFINE(HAVE_ADDRINFO)
- else
- AC_DEFINE(NEED_ADDRINFO_H)
- fi
-])
-
-dnl
-dnl Checks for NI_MAXSERV
-AC_DEFUN([AC_NI_MAXSERV], [
- AC_MSG_CHECKING(for NI_MAXSERV)
- AC_CACHE_VAL($1,
- AC_EGREP_CPP(yes, [#include
-#ifdef NI_MAXSERV
-yes
-#endif],
- $1=yes,
- $1=no))
- AC_MSG_RESULT($$1)
- if test $$1 != yes; then
- AC_DEFINE(NEED_ADDRINFO_H)
- fi
-])
-
-dnl
-dnl Checks for NI_NAMEREQD
-AC_DEFUN([AC_NI_NAMEREQD], [
- AC_MSG_CHECKING(for NI_NAMEREQD)
- AC_CACHE_VAL($1,
- AC_EGREP_CPP(yes, [#include
-#ifdef NI_NOFQDN
-yes
-#endif],
- $1=yes,
- $1=no))
- AC_MSG_RESULT($$1)
- if test $$1 != yes; then
- AC_DEFINE(NEED_ADDRINFO_H)
- fi
-])
-
-dnl
-dnl Checks for sockaddr_storage structure
-AC_DEFUN([AC_STRUCT_SA_STORAGE], [
- AC_MSG_CHECKING(for sockaddr_storage)
- AC_CACHE_VAL($1,
- AC_TRY_COMPILE([
-# include
-# include ],
- [struct sockaddr_storage s],
- $1=yes,
- $1=no))
- AC_MSG_RESULT($$1)
- if test $$1 = yes; then
- AC_DEFINE(HAVE_SOCKADDR_STORAGE)
- fi
-])
-
-dnl
-dnl check for h_errno
-AC_DEFUN([AC_VAR_H_ERRNO], [
- AC_MSG_CHECKING(for h_errno)
- AC_CACHE_VAL(ac_cv_var_h_errno,
- AC_TRY_COMPILE([
-# include
-# include ],
- [int foo = h_errno;],
- ac_cv_var_h_errno=yes,
- ac_cv_var_h_errno=no))
- AC_MSG_RESULT($ac_cv_var_h_errno)
- if test "$ac_cv_var_h_errno" = "yes"; then
- AC_DEFINE(HAVE_H_ERRNO)
- fi
-])
-
-dnl
-dnl Test for __attribute__
-dnl
-
-AC_DEFUN([AC_C___ATTRIBUTE__], [
-AC_MSG_CHECKING(for __attribute__)
-AC_CACHE_VAL(ac_cv___attribute__, [
-AC_COMPILE_IFELSE([
- AC_LANG_SOURCE([[
-#include
-
-static void foo(void) __attribute__ ((noreturn));
-
-static void
-foo(void)
-{
- exit(1);
-}
-
-int
-main(int argc, char **argv)
-{
- foo();
-}
- ]])],
-ac_cv___attribute__=yes,
-ac_cv___attribute__=no)])
-if test "$ac_cv___attribute__" = "yes"; then
- AC_DEFINE(HAVE___ATTRIBUTE__, 1, [define if your compiler has __attribute__])
- V_DEFS="$V_DEFS -D_U_=\"__attribute__((unused))\""
-else
- V_DEFS="$V_DEFS -D_U_=\"\""
-fi
-AC_MSG_RESULT($ac_cv___attribute__)
-])
-
-
-dnl
-dnl Test whether __attribute__((format)) can be applied to function
-dnl pointers
-dnl
-
-AC_DEFUN([AC_C___ATTRIBUTE___FORMAT_FUNCTION_POINTER], [
-AC_MSG_CHECKING([whether __attribute__((format)) can be applied to function pointers])
-AC_CACHE_VAL(ac_cv___attribute___format_function_pointer, [
-AC_COMPILE_IFELSE([
- AC_LANG_SOURCE([[
-#include
-
-extern int (*foo)(const char *fmt, ...)
- __attribute__ ((format (printf, 1, 2)));
-
-int
-main(int argc, char **argv)
-{
- (*foo)("%s", "test");
-}
- ]])],
-ac_cv___attribute___format_function_pointer=yes,
-ac_cv___attribute___format_function_pointer=no)])
-if test "$ac_cv___attribute___format_function_pointer" = "yes"; then
- AC_DEFINE(__ATTRIBUTE___FORMAT_OK_FOR_FUNCTION_POINTERS, 1,
- [define if your compiler allows __attribute__((format)) to be applied to function pointers])
-fi
-AC_MSG_RESULT($ac_cv___attribute___format_function_pointer)
-])
-
-AC_DEFUN([AC_LBL_SSLEAY],
- [
- #
- # Find the last component of $libdir; it's not necessarily
- # "lib" - it might be "lib64" on, for example, x86-64
- # Linux systems.
- #
- # We assume the directory in which we're looking for
- # libcrypto has a subdirectory with that as its name.
- #
- tmplib=`echo "$libdir" | sed 's,.*/,,'`
-
- #
- # XXX - is there a better way to check if a given library is
- # in a given directory than checking each of the possible
- # shared library suffixes?
- #
- # Are there any other suffixes we need to look for? Do we
- # have to worry about ".so.{version}"?
- #
- # Or should we just look for "libcrypto.*"?
- #
- if test -d "$1/$tmplib" -a \( -f "$1/$tmplib/libcrypto.a" -o \
- -f "$1/$tmplib/libcrypto.so" -o \
- -f "$1/$tmplib/libcrypto.sl" -o \
- -f "$1/$tmplib/libcrypto.dylib" \); then
- ac_cv_ssleay_path="$1"
- fi
-
- #
- # Make sure we have the headers as well.
- #
- if test -d "$1/include/openssl" -a -f "$1/include/openssl/des.h"; then
- incdir="-I$1/include"
- fi
-])
diff --git a/package/ntlf9t/njitclient/src/main.c b/package/ntlf9t/njitclient/src/main.c
deleted file mode 100644
index ec55054817..0000000000
--- a/package/ntlf9t/njitclient/src/main.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* File: main.c
- * ------------
- * 校园网802.1X客户端命令行
- */
-
-#include
-#include
-
-#include
-
-/* 子函数声明 */
-int Authentication(const char *UserName, const char *Password, const char *DeviceName);
-
-
-/**
- * 函数:main()
- *
- * 检查程序的执行权限,检查命令行参数格式。
- * 允许的调用格式包括:
- * njit-client username password
- * njit-client username password eth0
- * njit-client username password eth1
- * 若没有从命令行指定网卡,则默认将使用eth0
- */
-int main(int argc, char *argv[])
-{
- char *UserName;
- char *Password;
- char *DeviceName;
-
- /* 检查当前是否具有root权限 */
- if (getuid() != 0) {
- fprintf(stderr, "抱歉,运行本客户端程序需要root权限\n");
- fprintf(stderr, "(RedHat/Fedora下使用su命令切换为root)\n");
- fprintf(stderr, "(Ubuntu/Debian下在命令前添加sudo)\n");
- exit(-1);
- }
-
- /* 检查命令行参数格式 */
- if (argc<3 || argc>4) {
- fprintf(stderr, "命令行参数错误!\n");
- fprintf(stderr, "正确的调用格式例子如下:\n");
- fprintf(stderr, " %s username password\n", argv[0]);
- fprintf(stderr, " %s username password eth0\n", argv[0]);
- fprintf(stderr, " %s username password eth1\n", argv[0]);
- fprintf(stderr, "(注:若不指明网卡,默认情况下将使用eth0)\n");
- exit(-1);
- } else if (argc == 4) {
- DeviceName = argv[3]; // 允许从命令行指定设备名
- } else {
- DeviceName = "eth0"; // 缺省情况下使用的设备
- }
- UserName = argv[1];
- Password = argv[2];
-
- /* 调用子函数完成802.1X认证 */
- Authentication(UserName, Password, DeviceName);
-
- return (0);
-}
-
diff --git a/package/ntlf9t/njitclient/src/md5-buildin/Makefile.am b/package/ntlf9t/njitclient/src/md5-buildin/Makefile.am
deleted file mode 100644
index af8c578fc2..0000000000
--- a/package/ntlf9t/njitclient/src/md5-buildin/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-bin_PROGRAMS = md5test \
- $(NULL)
-md5test_SOURCES = md5test.c \
- md5_one.c \
- md5_dgst.c \
- mem_clr.c \
- $(NULL)
-md5test_CFLAGS = $(NULL)
-md5test_CFLAGS += $(libcrypto_CFLAGS)
-md5test_LDADD = $(NULL)
-md5test_LDADD += $(NULL)
-
diff --git a/package/ntlf9t/njitclient/src/md5-buildin/configure.ac b/package/ntlf9t/njitclient/src/md5-buildin/configure.ac
deleted file mode 100644
index 0d4f2d4830..0000000000
--- a/package/ntlf9t/njitclient/src/md5-buildin/configure.ac
+++ /dev/null
@@ -1,12 +0,0 @@
-AC_INIT([md5test],[1.0],[njit8021xclient@googlegroups.com],[],[https://github.com/liuqun/njit8021xclient])
-AM_INIT_AUTOMAKE([-Wall -Werror foreign])
-AC_PROG_MKDIR_P
-AC_PROG_INSTALL
-AC_PROG_CC
-PKG_CHECK_MODULES([libcrypto], [libcrypto])
-AC_CONFIG_HEADER([config.h])
-AC_CONFIG_FILES([
- Makefile
-])
-AC_OUTPUT
-
diff --git a/package/ntlf9t/njitclient/src/md5-buildin/help b/package/ntlf9t/njitclient/src/md5-buildin/help
deleted file mode 100755
index ba98b18452..0000000000
--- a/package/ntlf9t/njitclient/src/md5-buildin/help
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-echo "帮助您自动生成可发布的源码包..."
-
-echo "1、调用automake和autoconf等标准工具"
-autoreconf --install
-if test $? != 0 ; then
-echo "缺少标准开发工具automake autoconf,请先安装开发工具"
-exit 1
-fi
-
-echo "2、调用./configure脚本自动完成各项检查"
-./configure
-if test $? != 0 ; then
-echo "缺少开发库,请参考Install.html文档安装所有开发工具"
-exit 2
-fi
-
-echo "3、调用make工具生成tar.gz源代码压缩包"
-make dist --quiet
-ls *.tar.gz || ls *.tar.bz2
diff --git a/package/ntlf9t/njitclient/src/md5-buildin/md5_dgst.c b/package/ntlf9t/njitclient/src/md5-buildin/md5_dgst.c
deleted file mode 100644
index 6efccd37a1..0000000000
--- a/package/ntlf9t/njitclient/src/md5-buildin/md5_dgst.c
+++ /dev/null
@@ -1,573 +0,0 @@
-/* crypto/md5/md5_dgst.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-#ifndef MD5_LONG_LOG2
-#define MD5_LONG_LOG2 2 /* default to 32 bits */
-#endif
-
-
-#define DATA_ORDER_IS_LITTLE_ENDIAN
-
-typedef MD5_LONG HASH_LONG;
-typedef MD5_CTX HASH_CTX;
-const int HASH_CBLOCK=MD5_CBLOCK;
-
-static int HASH_Update (HASH_CTX *c, const void *data, size_t len);
-static void HASH_Transform (HASH_CTX *c, const unsigned char *data);
-static int HASH_FINAL (unsigned char *md, HASH_CTX *c);
-static void HASH_MAKE_STRING (HASH_CTX *c, unsigned char *s);
-static void HASH_BLOCK_DATA_ORDER (MD5_CTX *c, const void *p, size_t num);
-
-
-//#include "md32_common.h"
-
-/*
- * Engage compiler specific rotate intrinsic function if available.
- */
-#undef ROTATE
-#ifndef PEDANTIC
-# if defined(_MSC_VER) || defined(__ICC)
-# define ROTATE(a,n) _lrotl(a,n)
-# elif defined(__MWERKS__)
-# if defined(__POWERPC__)
-# define ROTATE(a,n) __rlwinm(a,n,0,31)
-# elif defined(__MC68K__)
- /* Motorola specific tweak. */
-# define ROTATE(a,n) ( n<24 ? __rol(a,n) : __ror(a,32-n) )
-# else
-# define ROTATE(a,n) __rol(a,n)
-# endif
-# elif defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
- /*
- * Some GNU C inline assembler templates. Note that these are
- * rotates by *constant* number of bits! But that's exactly
- * what we need here...
- *
- */
-# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
-# define ROTATE(a,n) ({ register unsigned int ret; \
- asm ( \
- "roll %1,%0" \
- : "=r"(ret) \
- : "I"(n), "0"((unsigned int)(a)) \
- : "cc"); \
- ret; \
- })
-# elif defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \
- defined(__powerpc) || defined(__ppc__) || defined(__powerpc64__)
-# define ROTATE(a,n) ({ register unsigned int ret; \
- asm ( \
- "rlwinm %0,%1,%2,0,31" \
- : "=r"(ret) \
- : "r"(a), "I"(n)); \
- ret; \
- })
-# elif defined(__s390x__)
-# define ROTATE(a,n) ({ register unsigned int ret; \
- asm ("rll %0,%1,%2" \
- : "=r"(ret) \
- : "r"(a), "I"(n)); \
- ret; \
- })
-# endif
-# endif
-#endif /* PEDANTIC */
-
-#ifndef ROTATE
-#define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))
-#endif
-
-#if defined(DATA_ORDER_IS_BIG_ENDIAN)
-
-#ifndef PEDANTIC
-# if defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
-# if ((defined(__i386) || defined(__i386__)) && !defined(I386_ONLY)) || \
- (defined(__x86_64) || defined(__x86_64__))
-# if !defined(B_ENDIAN)
- /*
- * This gives ~30-40% performance improvement in SHA-256 compiled
- * with gcc [on P4]. Well, first macro to be frank. We can pull
- * this trick on x86* platforms only, because these CPUs can fetch
- * unaligned data without raising an exception.
- */
-# define HOST_c2l(c,l) ({ unsigned int r=*((const unsigned int *)(c)); \
- asm ("bswapl %0":"=r"(r):"0"(r)); \
- (c)+=4; (l)=r; })
-# define HOST_l2c(l,c) ({ unsigned int r=(l); \
- asm ("bswapl %0":"=r"(r):"0"(r)); \
- *((unsigned int *)(c))=r; (c)+=4; r; })
-# endif
-# endif
-# endif
-#endif
-#if defined(__s390__) || defined(__s390x__)
-# define HOST_c2l(c,l) ((l)=*((const unsigned int *)(c)), (c)+=4, (l))
-# define HOST_l2c(l,c) (*((unsigned int *)(c))=(l), (c)+=4, (l))
-#endif
-
-#ifndef HOST_c2l
-#define HOST_c2l(c,l) (l =(((unsigned long)(*((c)++)))<<24), \
- l|=(((unsigned long)(*((c)++)))<<16), \
- l|=(((unsigned long)(*((c)++)))<< 8), \
- l|=(((unsigned long)(*((c)++))) ), \
- l)
-#endif
-#ifndef HOST_l2c
-#define HOST_l2c(l,c) (*((c)++)=(unsigned char)(((l)>>24)&0xff), \
- *((c)++)=(unsigned char)(((l)>>16)&0xff), \
- *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
- *((c)++)=(unsigned char)(((l) )&0xff), \
- l)
-#endif
-
-#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
-
-#ifndef PEDANTIC
-# if defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
-# if defined(__s390x__)
-# define HOST_c2l(c,l) ({ asm ("lrv %0,%1" \
- :"=d"(l) :"m"(*(const unsigned int *)(c)));\
- (c)+=4; (l); })
-# define HOST_l2c(l,c) ({ asm ("strv %1,%0" \
- :"=m"(*(unsigned int *)(c)) :"d"(l));\
- (c)+=4; (l); })
-# endif
-# endif
-#endif
-#if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
-# ifndef B_ENDIAN
- /* See comment in DATA_ORDER_IS_BIG_ENDIAN section. */
-# define HOST_c2l(c,l) ((l)=*((const unsigned int *)(c)), (c)+=4, l)
-# define HOST_l2c(l,c) (*((unsigned int *)(c))=(l), (c)+=4, l)
-# endif
-#endif
-
-#ifndef HOST_c2l
-#define HOST_c2l(c,l) (l =(((unsigned long)(*((c)++))) ), \
- l|=(((unsigned long)(*((c)++)))<< 8), \
- l|=(((unsigned long)(*((c)++)))<<16), \
- l|=(((unsigned long)(*((c)++)))<<24), \
- l)
-#endif
-#ifndef HOST_l2c
-#define HOST_l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
- *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
- *((c)++)=(unsigned char)(((l)>>16)&0xff), \
- *((c)++)=(unsigned char)(((l)>>24)&0xff), \
- l)
-#endif
-
-#endif
-
-/*
- * Time for some action:-)
- */
-static
-int HASH_UPDATE (HASH_CTX *c, const void *data_, size_t len)
- {
- const unsigned char *data=data_;
- unsigned char *p;
- HASH_LONG l;
- size_t n;
-
- if (len==0) return 1;
-
- l=(c->Nl+(((HASH_LONG)len)<<3))&0xffffffffUL;
- /* 95-05-24 eay Fixed a bug with the overflow handling, thanks to
- * Wei Dai for pointing it out. */
- if (l < c->Nl) /* overflow */
- c->Nh++;
- c->Nh+=(HASH_LONG)(len>>29); /* might cause compiler warning on 16-bit */
- c->Nl=l;
-
- n = c->num;
- if (n != 0)
- {
- p=(unsigned char *)c->data;
-
- if (len >= HASH_CBLOCK || len+n >= HASH_CBLOCK)
- {
- memcpy (p+n,data,HASH_CBLOCK-n);
- HASH_BLOCK_DATA_ORDER (c,p,1);
- n = HASH_CBLOCK-n;
- data += n;
- len -= n;
- c->num = 0;
- memset (p,0,HASH_CBLOCK); /* keep it zeroed */
- }
- else
- {
- memcpy (p+n,data,len);
- c->num += (unsigned int)len;
- return 1;
- }
- }
-
- n = len/HASH_CBLOCK;
- if (n > 0)
- {
- HASH_BLOCK_DATA_ORDER (c,data,n);
- n *= HASH_CBLOCK;
- data += n;
- len -= n;
- }
-
- if (len != 0)
- {
- p = (unsigned char *)c->data;
- c->num = (unsigned int)len;
- memcpy (p,data,len);
- }
- return 1;
- }
-
-static
-void HASH_TRANSFORM (HASH_CTX *c, const unsigned char *data)
- {
- HASH_BLOCK_DATA_ORDER (c,data,1);
- }
-
-static
-int HASH_FINAL (unsigned char *md, HASH_CTX *c)
- {
- unsigned char *p = (unsigned char *)c->data;
- size_t n = c->num;
-
- p[n] = 0x80; /* there is always room for one */
- n++;
-
- if (n > (HASH_CBLOCK-8))
- {
- memset (p+n,0,HASH_CBLOCK-n);
- n=0;
- HASH_BLOCK_DATA_ORDER (c,p,1);
- }
- memset (p+n,0,HASH_CBLOCK-8-n);
-
- p += HASH_CBLOCK-8;
-#if defined(DATA_ORDER_IS_BIG_ENDIAN)
- (void)HOST_l2c(c->Nh,p);
- (void)HOST_l2c(c->Nl,p);
-#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
- (void)HOST_l2c(c->Nl,p);
- (void)HOST_l2c(c->Nh,p);
-#endif
- p -= HASH_CBLOCK;
- HASH_BLOCK_DATA_ORDER (c,p,1);
- c->num=0;
- memset (p,0,HASH_CBLOCK);
-
- HASH_MAKE_STRING(c,md);
-
- return 1;
- }
-
-static
-void HASH_MAKE_STRING (HASH_CTX *c, unsigned char *s)
- {
- unsigned long ll;
- ll=c->A;
- (void)HOST_l2c(ll,s);
- ll=c->B;
- (void)HOST_l2c(ll,s);
- ll=c->C;
- (void)HOST_l2c(ll,s);
- ll=c->D;
- (void)HOST_l2c(ll,s);
- return;
- }
-
-static void md5_block_data_order (MD5_CTX *c, const void *p,size_t num);
-static
-void HASH_BLOCK_DATA_ORDER (MD5_CTX *c, const void *p, size_t num)
- {
- md5_block_data_order (c, p, num);
- return;
- }
-
-#ifndef MD32_REG_T
-#if defined(__alpha) || defined(__sparcv9) || defined(__mips)
-#define MD32_REG_T long
-/*
- * This comment was originaly written for MD5, which is why it
- * discusses A-D. But it basically applies to all 32-bit digests,
- * which is why it was moved to common header file.
- *
- * In case you wonder why A-D are declared as long and not
- * as MD5_LONG. Doing so results in slight performance
- * boost on LP64 architectures. The catch is we don't
- * really care if 32 MSBs of a 64-bit register get polluted
- * with eventual overflows as we *save* only 32 LSBs in
- * *either* case. Now declaring 'em long excuses the compiler
- * from keeping 32 MSBs zeroed resulting in 13% performance
- * improvement under SPARC Solaris7/64 and 5% under AlphaLinux.
- * Well, to be honest it should say that this *prevents*
- * performance degradation.
- *
- */
-#else
-/*
- * Above is not absolute and there are LP64 compilers that
- * generate better code if MD32_REG_T is defined int. The above
- * pre-processor condition reflects the circumstances under which
- * the conclusion was made and is subject to further extension.
- *
- */
-#define MD32_REG_T int
-#endif
-#endif
-//end md32_common.h
-
-/*
-#define F(x,y,z) (((x) & (y)) | ((~(x)) & (z)))
-#define G(x,y,z) (((x) & (z)) | ((y) & (~(z))))
-*/
-
-/* As pointed out by Wei Dai , the above can be
- * simplified to the code below. Wei attributes these optimizations
- * to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel.
- */
-#define F(b,c,d) ((((c) ^ (d)) & (b)) ^ (d))
-#define G(b,c,d) ((((b) ^ (c)) & (d)) ^ (c))
-#define H(b,c,d) ((b) ^ (c) ^ (d))
-#define I(b,c,d) (((~(d)) | (b)) ^ (c))
-
-#define R0(a,b,c,d,k,s,t) { \
- a+=((k)+(t)+F((b),(c),(d))); \
- a=ROTATE(a,s); \
- a+=b; };\
-
-#define R1(a,b,c,d,k,s,t) { \
- a+=((k)+(t)+G((b),(c),(d))); \
- a=ROTATE(a,s); \
- a+=b; };
-
-#define R2(a,b,c,d,k,s,t) { \
- a+=((k)+(t)+H((b),(c),(d))); \
- a=ROTATE(a,s); \
- a+=b; };
-
-#define R3(a,b,c,d,k,s,t) { \
- a+=((k)+(t)+I((b),(c),(d))); \
- a=ROTATE(a,s); \
- a+=b; };
-
-const char MD5_version[]="MD5";
-
-/* Implemented from RFC1321 The MD5 Message-Digest Algorithm
- */
-
-#define INIT_DATA_A (unsigned long)0x67452301L
-#define INIT_DATA_B (unsigned long)0xefcdab89L
-#define INIT_DATA_C (unsigned long)0x98badcfeL
-#define INIT_DATA_D (unsigned long)0x10325476L
-
-int MD5_Init(MD5_CTX *c)
- {
- memset (c,0,sizeof(*c));
- c->A=INIT_DATA_A;
- c->B=INIT_DATA_B;
- c->C=INIT_DATA_C;
- c->D=INIT_DATA_D;
- return 1;
- }
-
-#if !defined(MD5_ASM)
-#ifdef X
-#undef X
-#endif
-static
-void md5_block_data_order (MD5_CTX *c, const void *data_, size_t num)
- {
- const unsigned char *data=data_;
- register unsigned MD32_REG_T A,B,C,D,l;
-#ifndef MD32_XARRAY
- /* See comment in crypto/sha/sha_locl.h for details. */
- unsigned MD32_REG_T XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
- XX8, XX9,XX10,XX11,XX12,XX13,XX14,XX15;
-# define X(i) XX##i
-#else
- MD5_LONG XX[MD5_LBLOCK];
-# define X(i) XX[i]
-#endif
-
- A=c->A;
- B=c->B;
- C=c->C;
- D=c->D;
-
- for (;num--;)
- {
- HOST_c2l(data,l); X( 0)=l; HOST_c2l(data,l); X( 1)=l;
- /* Round 0 */
- R0(A,B,C,D,X( 0), 7,0xd76aa478L); HOST_c2l(data,l); X( 2)=l;
- R0(D,A,B,C,X( 1),12,0xe8c7b756L); HOST_c2l(data,l); X( 3)=l;
- R0(C,D,A,B,X( 2),17,0x242070dbL); HOST_c2l(data,l); X( 4)=l;
- R0(B,C,D,A,X( 3),22,0xc1bdceeeL); HOST_c2l(data,l); X( 5)=l;
- R0(A,B,C,D,X( 4), 7,0xf57c0fafL); HOST_c2l(data,l); X( 6)=l;
- R0(D,A,B,C,X( 5),12,0x4787c62aL); HOST_c2l(data,l); X( 7)=l;
- R0(C,D,A,B,X( 6),17,0xa8304613L); HOST_c2l(data,l); X( 8)=l;
- R0(B,C,D,A,X( 7),22,0xfd469501L); HOST_c2l(data,l); X( 9)=l;
- R0(A,B,C,D,X( 8), 7,0x698098d8L); HOST_c2l(data,l); X(10)=l;
- R0(D,A,B,C,X( 9),12,0x8b44f7afL); HOST_c2l(data,l); X(11)=l;
- R0(C,D,A,B,X(10),17,0xffff5bb1L); HOST_c2l(data,l); X(12)=l;
- R0(B,C,D,A,X(11),22,0x895cd7beL); HOST_c2l(data,l); X(13)=l;
- R0(A,B,C,D,X(12), 7,0x6b901122L); HOST_c2l(data,l); X(14)=l;
- R0(D,A,B,C,X(13),12,0xfd987193L); HOST_c2l(data,l); X(15)=l;
- R0(C,D,A,B,X(14),17,0xa679438eL);
- R0(B,C,D,A,X(15),22,0x49b40821L);
- /* Round 1 */
- R1(A,B,C,D,X( 1), 5,0xf61e2562L);
- R1(D,A,B,C,X( 6), 9,0xc040b340L);
- R1(C,D,A,B,X(11),14,0x265e5a51L);
- R1(B,C,D,A,X( 0),20,0xe9b6c7aaL);
- R1(A,B,C,D,X( 5), 5,0xd62f105dL);
- R1(D,A,B,C,X(10), 9,0x02441453L);
- R1(C,D,A,B,X(15),14,0xd8a1e681L);
- R1(B,C,D,A,X( 4),20,0xe7d3fbc8L);
- R1(A,B,C,D,X( 9), 5,0x21e1cde6L);
- R1(D,A,B,C,X(14), 9,0xc33707d6L);
- R1(C,D,A,B,X( 3),14,0xf4d50d87L);
- R1(B,C,D,A,X( 8),20,0x455a14edL);
- R1(A,B,C,D,X(13), 5,0xa9e3e905L);
- R1(D,A,B,C,X( 2), 9,0xfcefa3f8L);
- R1(C,D,A,B,X( 7),14,0x676f02d9L);
- R1(B,C,D,A,X(12),20,0x8d2a4c8aL);
- /* Round 2 */
- R2(A,B,C,D,X( 5), 4,0xfffa3942L);
- R2(D,A,B,C,X( 8),11,0x8771f681L);
- R2(C,D,A,B,X(11),16,0x6d9d6122L);
- R2(B,C,D,A,X(14),23,0xfde5380cL);
- R2(A,B,C,D,X( 1), 4,0xa4beea44L);
- R2(D,A,B,C,X( 4),11,0x4bdecfa9L);
- R2(C,D,A,B,X( 7),16,0xf6bb4b60L);
- R2(B,C,D,A,X(10),23,0xbebfbc70L);
- R2(A,B,C,D,X(13), 4,0x289b7ec6L);
- R2(D,A,B,C,X( 0),11,0xeaa127faL);
- R2(C,D,A,B,X( 3),16,0xd4ef3085L);
- R2(B,C,D,A,X( 6),23,0x04881d05L);
- R2(A,B,C,D,X( 9), 4,0xd9d4d039L);
- R2(D,A,B,C,X(12),11,0xe6db99e5L);
- R2(C,D,A,B,X(15),16,0x1fa27cf8L);
- R2(B,C,D,A,X( 2),23,0xc4ac5665L);
- /* Round 3 */
- R3(A,B,C,D,X( 0), 6,0xf4292244L);
- R3(D,A,B,C,X( 7),10,0x432aff97L);
- R3(C,D,A,B,X(14),15,0xab9423a7L);
- R3(B,C,D,A,X( 5),21,0xfc93a039L);
- R3(A,B,C,D,X(12), 6,0x655b59c3L);
- R3(D,A,B,C,X( 3),10,0x8f0ccc92L);
- R3(C,D,A,B,X(10),15,0xffeff47dL);
- R3(B,C,D,A,X( 1),21,0x85845dd1L);
- R3(A,B,C,D,X( 8), 6,0x6fa87e4fL);
- R3(D,A,B,C,X(15),10,0xfe2ce6e0L);
- R3(C,D,A,B,X( 6),15,0xa3014314L);
- R3(B,C,D,A,X(13),21,0x4e0811a1L);
- R3(A,B,C,D,X( 4), 6,0xf7537e82L);
- R3(D,A,B,C,X(11),10,0xbd3af235L);
- R3(C,D,A,B,X( 2),15,0x2ad7d2bbL);
- R3(B,C,D,A,X( 9),21,0xeb86d391L);
-
- A = c->A += A;
- B = c->B += B;
- C = c->C += C;
- D = c->D += D;
- }
- }
-#endif /* !defined(MD5_ASM) */
-
-#if defined(MD5_ASM)
-#error "TODO: The MD5_ASM code for x86 will be ported in njit-client sooner or later"
-# if defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(__INTEL__) || \
- defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64) || \
- defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
-static
-void md5_block_data_order (MD5_CTX *c, const void *p,size_t num)
- {
- md5_block_asm_data_order(c, p, num);
- return;
- }
-# else
-# error "md5_block_asm_data_order() has not been supported on your platform"
-# endif
-#endif /* defined(MD5_ASM) */
-
-int MD5_Update (HASH_CTX *c, const void *data, size_t len)
- {
- return HASH_UPDATE (c, data, len);
- }
-
-void MD5_Transform (HASH_CTX *c, const unsigned char *data)
- {
- HASH_TRANSFORM (c, data);
- return;
- }
-
-int MD5_Final (unsigned char *md, HASH_CTX *c)
- {
- return HASH_FINAL (md, c);
- }
-
diff --git a/package/ntlf9t/njitclient/src/md5-buildin/md5_one.c b/package/ntlf9t/njitclient/src/md5-buildin/md5_one.c
deleted file mode 100644
index 43fee89379..0000000000
--- a/package/ntlf9t/njitclient/src/md5-buildin/md5_one.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* crypto/md5/md5_one.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include
-#include
-#include
-#include
-
-#ifdef CHARSET_EBCDIC
-#include
-#endif
-
-unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md)
- {
- MD5_CTX c;
- static unsigned char m[MD5_DIGEST_LENGTH];
-
- if (md == NULL) md=m;
- if (!MD5_Init(&c))
- return NULL;
-#ifndef CHARSET_EBCDIC
- MD5_Update(&c,d,n);
-#else
- {
- char temp[1024];
- unsigned long chunk;
-
- while (n > 0)
- {
- chunk = (n > sizeof(temp)) ? sizeof(temp) : n;
- ebcdic2ascii(temp, d, chunk);
- MD5_Update(&c,temp,chunk);
- n -= chunk;
- d += chunk;
- }
- }
-#endif
- MD5_Final(md,&c);
- OPENSSL_cleanse(&c,sizeof(c)); /* security consideration */
- return(md);
- }
-
diff --git a/package/ntlf9t/njitclient/src/md5-buildin/md5test.c b/package/ntlf9t/njitclient/src/md5-buildin/md5test.c
deleted file mode 100644
index 030aebc7e6..0000000000
--- a/package/ntlf9t/njitclient/src/md5-buildin/md5test.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* crypto/md5/md5test.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include
-#include
-#include
-
-#include
-#include
-
-static char *test[]={
- "",
- "a",
- "abc",
- "message digest",
- "abcdefghijklmnopqrstuvwxyz",
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
- "12345678901234567890123456789012345678901234567890123456789012345678901234567890",
- NULL,
- };
-
-static char *ret[]={
- "d41d8cd98f00b204e9800998ecf8427e",
- "0cc175b9c0f1b6a831c399e269772661",
- "900150983cd24fb0d6963f7d28e17f72",
- "f96b697d7cb7938d525a2f31aaf161d0",
- "c3fcd3d76192e4007dfb496cca67e13b",
- "d174ab98d277d9f5a5611c2c9f419d9f",
- "57edf4a22be3c955ac49da2e2107b67a",
- };
-
-static char *pt(unsigned char *md);
-int main(int argc, char *argv[])
- {
- int i,err=0;
- char **P,**R;
- char *p;
- unsigned char md[MD5_DIGEST_LENGTH];
-
- P=test;
- R=ret;
- i=1;
- while (*P != NULL)
- {
- MD5(&(P[0][0]),strlen((char *)*P),md);
- p=pt(md);
- if (strcmp(p,(char *)*R) != 0)
- {
- printf("error calculating MD5 on '%s'\n",*P);
- printf("got %s instead of %s\n",p,*R);
- err++;
- }
- else
- {
- printf("test %d ok\n",i);
- }
- i++;
- R++;
- P++;
- }
-
- if (err>=1)
- {
- printf("Total error: %d\n", err);
- exit(err);
- }
- return(0);
- }
-
-static char *pt(unsigned char *md)
- {
- int i;
- static char buf[80];
-
- for (i=0; i
-#include
-
-unsigned char cleanse_ctr = 0;
-
-void OPENSSL_cleanse(void *ptr, size_t len)
- {
- unsigned char *p = ptr;
- size_t loop = len, ctr = cleanse_ctr;
- while(loop--)
- {
- *(p++) = (unsigned char)ctr;
- ctr += (17 + ((size_t)p & 0xF));
- }
- p=memchr(ptr, (unsigned char)ctr, len);
- if(p)
- ctr += (63 + (size_t)p);
- cleanse_ctr = (unsigned char)ctr;
- }
diff --git a/package/ntlf9t/njitclient/src/njit8021xclient.c b/package/ntlf9t/njitclient/src/njit8021xclient.c
deleted file mode 100644
index f3876344d8..0000000000
--- a/package/ntlf9t/njitclient/src/njit8021xclient.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#if HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifndef PACKAGE_NAME
-#define PACKAGE_NAME ""
-#endif
-
-#ifndef PACKAGE_VERSION
-#define PACKAGE_VERSION ""
-#endif
-
-#ifndef LOCALEDIR
-#define LOCALEDIR "/usr/local/share/locale"
-#endif
-
-#include "njit8021xclient.h"
-
-const struct GlobalConfig g_config = {
- /*.package_name = */ PACKAGE_NAME,
- /*.package_version = */ PACKAGE_VERSION,
- /*.locale_dir = */ LOCALEDIR,
-};
-
diff --git a/package/ntlf9t/njitclient/src/njit8021xclient.h b/package/ntlf9t/njitclient/src/njit8021xclient.h
deleted file mode 100644
index 3683aaca6b..0000000000
--- a/package/ntlf9t/njitclient/src/njit8021xclient.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef NJIT8021XCLIENT_H
-#define NJIT8021XCLIENT_H
-
-extern const struct GlobalConfig {
- const char *package_name;
- const char *package_version;
- const char *locale_dir;
-} g_config;
-
-#endif//nJIT8021XCLIENT_H
diff --git a/package/ntlf9t/njitclient/src/tests/Makefile b/package/ntlf9t/njitclient/src/tests/Makefile
deleted file mode 100644
index 628cabce53..0000000000
--- a/package/ntlf9t/njitclient/src/tests/Makefile
+++ /dev/null
@@ -1,100 +0,0 @@
-# Makefile
-#
-
-# Compiler options
-CC := gcc
-CFLAGS := -g -O0
-LDFLAGS :=
-EXEEXT :=
-
-
-# Useful commands
-XGETTEXT := xgettext
-MSGINIT := msginit
-MSGMERGE := msgmerge
-MSGFMT := msgfmt
-MKDIR := mkdir -p
-RM := rm -rf
-INSTALL := install
-INSTALL_PROGRAM := $(INSTALL)
-INSTALL_DATA := $(INSTALL) -m 644
-INSTALL_DIR := $(INSTALL) -d
-
-# Installation configuration
-PACKAGE_NAME := njit-tests
-prefix := /usr/local
-exec_prefix := ${prefix}
-bindir := ${exec_prefix}/bin
-datarootdir := ${prefix}/share
-datadir := ${datarootdir}
-localedir := ${datarootdir}/locale
-
-# Configure project files
-srcdir := .
-podir := $(srcdir)/po
-po_files := $(notdir $(wildcard $(podir)/*.po))
-languages := $(basename $(po_files))
-gmo_files := $(addsuffix .gmo, $(languages))
-vpath %.c $(srcdir)
-vpath %.h $(srcdir)
-vpath %.po $(podir)
-vpath %.pot $(podir)
-executable_files :=
-source_files :=
-object_files :=
-xml_files :=
-data_files :=
-
-# Load all building dependences...
-.PHONY: all
-all:
-
--include $(srcdir)/*.mk
-
-all: Makefile $(executable_files)
-
-#------------------------------
-# Default building rules.
-%: %.o
- $(LINK.o) $^ $(LDLIBS) -o $@
-%.o: %.c
- $(COMPILE.c) $< -o $@
-%.pot: %.c
- $(XGETTEXT) --from-code=UTF-8 -k_ $^ --output-dir=$(podir) --output=$@
-%.gmo: %.po
- $(MSGFMT) --directory=$(podir) $(notdir $<) -o $@
-#------------------------------
-# make clean
-.PHONY: clean
-clean:
- $(RM) $(executable_files)
- $(RM) $(object_files)
-ifdef gmo_files
- $(RM) $(gmo_files)
-endif
-#------------------------------
-# make distclean
-.PHONY: distclean
-distclean: clean
- $(RM) config.log config.status
-#------------------------------
-# make update-po
-.PHONY: update-po
-update-po: $(po_files)
-#------------------------------
-# make install
-.PHONY: install install-exec install-data install-mo
-install: install-exec install-data install-mo
-install-exec: $(executable_files)
- $(INSTALL_DIR) $(bindir)
- $(INSTALL_PROGRAM) $(executable_files) $(bindir)
-install-data: $(data_files) $(xml_files)
- $(INSTALL_DIR) $(datadir)
- $(INSTALL_DATA) $(data_files) $(xml_files) $(datadir)
-install-mo: $(gmo_files)
- for i in $^ ; do \
- lang=`basename $$i .gmo` ; \
- $(INSTALL_DIR) $(localedir)/$$lang/LC_MESSAGES ; \
- $(INSTALL_DATA) $$i $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE_NAME).mo ; \
- done
-
diff --git a/package/ntlf9t/njitclient/src/tests/ifchk.c b/package/ntlf9t/njitclient/src/tests/ifchk.c
deleted file mode 100644
index 6c1eecddb9..0000000000
--- a/package/ntlf9t/njitclient/src/tests/ifchk.c
+++ /dev/null
@@ -1,61 +0,0 @@
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-int main()
-{
- struct ifaddrs *ifap = NULL;
- struct ifaddrs *i = NULL;
- const struct sockaddr_dl *sdl = NULL;
- caddr_t addr;
-
- if (getifaddrs(&ifap) != 0)
- {
- char reason[256]="";
- strerror_r(errno, reason, sizeof(reason));
- fprintf(stderr, "Error: %s: %s\n", "getifaddrs() failed", reason);
- return (EXIT_FAILURE);
- }
-
- for (i=ifap; i!=NULL; i=i->ifa_next)
- {
- sdl = (const struct sockaddr_dl *) i->ifa_addr;
- if (sdl != NULL
- && sdl->sdl_family == AF_LINK
- && sdl->sdl_type == IFT_ETHER
- && sdl->sdl_alen == ETHER_ADDR_LEN)
- {
- addr = LLADDR(sdl);
-
- if (i->ifa_name != NULL)
- {
- printf("%s", i->ifa_name);
- }
- else
- {
- printf("%s", "(unknown)");
- }
- printf("\t");
- printf("%02hhX:%02hhX:%02hhX:%02hhX:%02hhX:%02hhX\n",
- addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
- }
- }
-
- freeifaddrs(ifap);
-
- return (0);
-}
-
-
diff --git a/package/ntlf9t/njitclient/src/tests/ifchk.mk b/package/ntlf9t/njitclient/src/tests/ifchk.mk
deleted file mode 100644
index 5c5fc7b9df..0000000000
--- a/package/ntlf9t/njitclient/src/tests/ifchk.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-
-local_source_files := ifchk.c
-local_object_files := $(local_source_files:.c=.o)
-local_executable_files := ifchk
-local_executable_files := $(addsuffix $(EXEEXT), $(local_executable_files))
-
-$(local_executable_files): $(local_object_files)
-#-------------------------------------------------
-ifchk.pot: $(local_source_files)
-$(po_files): ifchk.pot
- $(MSGMERGE) --quiet --directory=$(podir) --update $(notdir $@) $(notdir $<)
-#-------------------------------------------------
-
-executable_files += $(local_executable_files)
-source_files += $(local_source_files)
-object_files += $(local_object_files)
-
diff --git a/package/ntlf9t/njitclient/src/tests/md5test.c b/package/ntlf9t/njitclient/src/tests/md5test.c
deleted file mode 100644
index f7c50ae77b..0000000000
--- a/package/ntlf9t/njitclient/src/tests/md5test.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* crypto/md5/md5test.c */
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-#include
-#include
-#include
-
-#include
-#include
-
-static char *test[]={
- "",
- "a",
- "abc",
- "message digest",
- "abcdefghijklmnopqrstuvwxyz",
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
- "12345678901234567890123456789012345678901234567890123456789012345678901234567890",
- NULL,
- };
-
-static char *ret[]={
- "d41d8cd98f00b204e9800998ecf8427e",
- "0cc175b9c0f1b6a831c399e269772661",
- "900150983cd24fb0d6963f7d28e17f72",
- "f96b697d7cb7938d525a2f31aaf161d0",
- "c3fcd3d76192e4007dfb496cca67e13b",
- "d174ab98d277d9f5a5611c2c9f419d9f",
- "57edf4a22be3c955ac49da2e2107b67a",
- };
-
-static char *pt(unsigned char *md);
-int main(int argc, char *argv[])
- {
- int i,err=0;
- char **P,**R;
- char *p;
- unsigned char md[MD5_DIGEST_LENGTH];
-
- P=test;
- R=ret;
- i=1;
- while (*P != NULL)
- {
- EVP_Digest(&(P[0][0]),strlen((char *)*P),md,NULL,EVP_md5(), NULL);
- p=pt(md);
- if (strcmp(p,(char *)*R) != 0)
- {
- printf("error calculating MD5 on '%s'\n",*P);
- printf("got %s instead of %s\n",p,*R);
- err++;
- }
- else
- {
- printf("test %d ok\n",i);
- }
- i++;
- R++;
- P++;
- }
-
- if (err>=1)
- {
- printf("Total error: %d\n", err);
- exit(err);
- }
- return(0);
- }
-
-static char *pt(unsigned char *md)
- {
- int i;
- static char buf[80];
-
- for (i=0; i