资源简介
GB28181信令交互实例,使用osip库,信令有Register、Invite、Message等
GB28181信令交互实例,使用osip库,信令有Register、Invite、Message等
代码片段和文件信息
#include “stdafx.h“
static void CvtHex(HASH Bin HASHHEX Hex)
{
unsigned short i;
unsigned char j;
for (i = 0; i < HASHLEN; i++)
{
j = (Bin[i] >> 4) & 0xf;
if (j <= 9)
Hex[i * 2] = (j + ‘0‘);
else
Hex[i * 2] = (j + ‘a‘ - 10);
j = Bin[i] & 0xf;
if (j <= 9)
Hex[i * 2 + 1] = (j + ‘0‘);
else
Hex[i * 2 + 1] = (j + ‘a‘ - 10);
};
Hex[HASHHEXLEN] = ‘\0‘;
}
void DigestCalcHA1(const char *pszAlg const char *pszUserName
const char *pszRealm const char *pszPassword
const char *pszNonce const char *pszCNonce
HASHHEX SessionKey)
{
osip_MD5_CTX Md5Ctx;
HASH HA1;
osip_MD5Init(&Md5Ctx);
osip_MD5Update(&Md5Ctx (unsigned char *) pszUserName strlen(pszUserName));
osip_MD5Update(&Md5Ctx (unsigned char *) “:“ 1);
osip_MD5Update(&Md5Ctx (unsigned char *) pszRealm strlen(pszRealm));
osip_MD5Update(&Md5Ctx (unsigned char *) “:“ 1);
osip_MD5Update(&Md5Ctx (unsigned char *) pszPassword strlen(pszPassword));
osip_MD5Final((unsigned char *) HA1 &Md5Ctx);
if ((pszAlg != NULL) && strcmp(pszAlg “md5-sess“) == 0)
{
osip_MD5Init(&Md5Ctx);
osip_MD5Update(&Md5Ctx (unsigned char *) HA1 HASHLEN);
osip_MD5Update(&Md5Ctx (unsigned char *) “:“ 1);
osip_MD5Update(&Md5Ctx (unsigned char *) pszNonce strlen(pszNonce));
osip_MD5Update(&Md5Ctx (unsigned char *) “:“ 1);
osip_MD5Update(&Md5Ctx (unsigned char *) pszCNonce strlen(pszCNonce));
osip_MD5Final((unsigned char *) HA1 &Md5Ctx);
}
CvtHex(HA1 SessionKey);
}
void DigestCalcResponse(HASHHEX HA1 const char *pszNonce
const char *pszNonceCount const char *pszCNonce
const char *pszQop int Aka const char *pszMethod
const char *pszDigestUri HASHHEX HEntity HASHHEX Response)
{
osip_MD5_CTX Md5Ctx;
HASH HA2;
HASH RespHash;
HASHHEX HA2Hex;
/* calculate H(A2) */
osip_MD5Init(&Md5Ctx);
osip_MD5Update(&Md5Ctx (unsigned char *) pszMethod strlen(pszMethod));
osip_MD5Update(&Md5Ctx (unsigned char *) “:“ 1);
osip_MD5Update(&Md5Ctx (unsigned char *) pszDigestUri
strlen(pszDigestUri));
if (pszQop == NULL)
{
goto auth_withoutqop;
}
else if (0 == strcmp(pszQop “auth-int“))
{
goto auth_withauth_int;
}
else if (0 == strcmp(pszQop “auth“))
{
goto auth_withauth;
}
auth_withoutqop: osip_MD5Final((unsigned char *) HA2 &Md5Ctx);
CvtHex(HA2 HA2Hex);
/* calculate response */
osip_MD5Init(&Md5Ctx);
osip_MD5Update(&Md5Ctx (unsigned char *) HA1 HASHHEXLEN);
osip_MD5Update(&Md5Ctx (unsigned char *) “:“ 1);
osip_MD5Update(&Md5Ctx (unsigned char *) pszNonce strlen(pszNonce));
osip_MD5Update(&Md5Ctx (unsigned char *) “:“ 1);
goto end;
auth_withauth_int:
osip_MD5Update(&Md5Ctx (unsigned char *) “:“ 1);
osip_MD5Update(&Md5Ctx (unsigned char *) HEntity HASHHEXLEN);
auth_withauth: osip_MD5Final((unsigned char *) HA2 &Md5Ctx);
CvtHex(HA2 HA2Hex);
/* calculate response */
osip_MD5Init(&Md5Ctx);
osip_MD5Update(&Md5Ctx (unsigned c
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 96768 2017-03-04 12:58 设备UAC\Debug\osip2.dll
文件 194560 2017-03-04 12:58 设备UAC\Debug\osipparser2.dll
文件 284160 2017-03-30 14:32 设备UAC\Debug\UAC.exe
文件 972536 2017-03-30 14:32 设备UAC\Debug\UAC.ilk
文件 1420288 2017-03-30 14:32 设备UAC\Debug\UAC.pdb
文件 2359296 2017-03-30 15:09 设备UAC\ipch\uac-3f6d8569\uac-14ec0305.ipch
文件 5138 2017-03-30 14:32 设备UAC\UAC\Debug\cl.command.1.tlog
文件 64838 2017-03-30 14:32 设备UAC\UAC\Debug\CL.read.1.tlog
文件 1892 2017-03-30 14:32 设备UAC\UAC\Debug\CL.write.1.tlog
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
文件 2 2017-03-30 14:32 设备UAC\UAC\Debug\li
............此处省略160个文件信息
相关资源
- 火狐NP插件开发
- vc运行库修复工具
- opencv4.0.1+contrib+vs2017编译x64x86完全版本
- 推箱子及其地图编辑器
- 精通Windows API-函数、接口、编程(源
- 获取屏幕上任意一点的RGB值
- 李建忠_设计模式源码和课件.rar
- Linux窗口程序设计-Qt4精彩分析 part02
- 蓝桥杯历年试题附完整测试数据和题
- 双目标定后的三维重建
- 泛型编程与STL中文版 -----侯捷
- Make: Getting Started with Arduino 3rd
- cmake-3.16.0-rc1-win64-x64.msi
- 编译好的cryptlib.lib,包含32位,64位,
- 奔腾绿色浏览器
- OpenCV与OpenGL实现增强现实
- 算法竞赛入门经典-训练指南
- ACM超级模板
- 算法竞赛宝典第二部资源包
- 八思量打标卡sdk,积分改为0试试看
- 基于机器视觉的自动分拣系统
- STL源码剖析中文完整版pdf
- List Control动态修改编辑Demo
- 分布式实时处理系统 原理、架构与实
- 最新手机号段归属地数据库(2019年
- 点集压缩算法douglas-peucker等
- COM原理与应用.pdf
- Qt 5开发及第4版陆文周.zip
- QT Css设计器
- 类似qq的交流工具
评论
共有 条评论