OpenCSP开源程序解析之OPENCSP_Alg.cpp

#include ".\opencsp_alg.h"

DWORD OPENCSP_Alg::_index = 0;

BOOL OPENCSP_Alg::isAlgSupported(ALG_ID algId)         //判断algId是否是支持的算法
{
    for (DWORD i = 0; i < M_OPENCSP_ALG_INFO_NUM; i++)  //M_OPENCSP_ALG_INFO_NUM 支持的算法的个数
    {
        if (s_algInfo[i].aiAlgid == algId)  //结构体的aiAlgid为算法id
            return TRUE;
    }
    return FALSE;
} 

const OPENCSP_ALG_INFO_EX* OPENCSP_Alg::getAt(DWORD index)  //根据索引返回算法地址,OPENCSP_ALG_INFO_EX*类型
{
    if (index > M_OPENCSP_ALG_INFO_NUM - 1) return NULL;
    return &s_algInfo[index++];
}

const OPENCSP_ALG_INFO_EX* OPENCSP_Alg::getNext()  //索引号递增,得到下一个算法地址
{
    if (_index > M_OPENCSP_ALG_INFO_NUM - 1)
    {
        _index = 0;
        return NULL;
    }
    return &s_algInfo[_index++];  //索引加1,_index是成员变量
}

DWORD OPENCSP_Alg::getKeyLen(ALG_ID algId)      //得到algId这个算法的dwDefaultLen
{
    for (DWORD i = 0; i < M_OPENCSP_ALG_INFO_NUM; i++)
    {
        if (s_algInfo[i].aiAlgid == algId)
            return s_algInfo[i].dwDefaultLen;
    }
    return 0;
}
时间: 2024-10-24 16:51:49

OpenCSP开源程序解析之OPENCSP_Alg.cpp的相关文章

OpenCSP开源程序解析之OPENCSP_Main.cpp

#include "OPENCSP_define.h" #include "OPENCSP_Keyset.h" #include "OPENCSP_Provider.h" #include ".\opencsp_cardaccess.h" #pragma data_seg("_OPENCSP_SHARED") /* Two variables are used to OPENCSP_UserMutext *

OpenCSP开源程序解析之OPENCSP_AuthUI.cpp

#include ".\opencsp_authui.h" #include ".\resource.h" extern HINSTANCE g_hModule; // 当前实例 MY_DATA_BLOB OPENCSP_AuthUI::_authData; //MY_DATA_BLOB二进制容器 INT_PTR OPENCSP_AuthUI::showAuthUI() {//在32位操作系统,64位操作系统上,一个int是4或8个字节.用INT_PTR代替int可

OpenCSP开源程序解析之OPENCSP_Hash.cpp

#include ".\opencsp_hash.h" //HASH函数主要用于完整性校验和提高数字签名的有效 OPENCSP_M$CSP* OPENCSP_Hash::_csp; //hKey如果哈希算法是密钥哈希,如HMAC或MAC 算法,就用此密钥句柄传递密钥.对非密钥算法,此参数为NULL OPENCSP_Hash::OPENCSP_Hash(ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags)//Algid哈希算法的标示符 :_algId(

OpenCSP开源程序解析之OPENCSP_Mutex.cpp

#include ".\opencsp_mutex.h" unsigned long OPENCSP_UsrMutex::_ulLockCnt(0); DWORD OPENCSP_UsrMutex::_dwProcessId(0); OPENCSP_Mutex OPENCSP_UsrMutex::_dscs; OPENCSP_Mutex::OPENCSP_Mutex() //线程同步 :_sect() //构造函数后加冒号 ,使用初始化成员列表对对象进行初始化 {//初始化一个临界资源

OpenCSP开源程序解析之OPENCSP_M*CSP.cpp

#include ".\opencsp_m$csp.h" OPENCSP_M$CSP* OPENCSP_M$CSP::_instance; OPENCSP_M$CSP::OPENCSP_M$CSP(void) { BOOL fOK = FALSE; fOK = CryptAcquireContext(&_hProv, TEXT("Keyset in MSCSP used by OpenCSP"), MS_ENHANCED_PROV, PROV_RSA_FUL

MFC画图程序解析笔记一

这是 //if not define的简写,是宏定义的一种,它可以根据是否已经定义了一个变量来进行分支选择,一般用于调试等等.实际上确切的说这应该是预处理功能中三种(宏定义,文件包含和条件编译)中的一种----条件编译. 目录 1定义 2内容 3作用 4形式 1定义编辑 #define x ... #endif C语言在对程序进行编译时,会先根据预处理命令进行"预处理".C语言编译系统包括预处理,编译和链接等部分. #ifndef x //先测试x是否被宏定义过 #define x 程

Joomla软件功能介绍与开源程序大比拼Joomla,wordpress,Drupal哪个好?

Joomla 软件功能介绍:    Joomla!是一套在国外相当知名的内容管理系统 (Content Management System, CMS),它属于Portal(企业入口网站)类型,顾名思义,就是比较适合作为商业类型的网站程序.一般人对这类型的内容管理系统可能会有以下的别名来称呼: ■ 架站程序(或软件) ■ 快速架站程序(或软件) ■ 整站程序 Joomla!是使用PHP语言加上MySQL数据库所开发的软件系统,可以在Linux. Windows.MacOSX等各种不同的平台上执行.

利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别

利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别 分类: 开放项目2012-07-23 17:28 6712人阅读 评论(0) 收藏 举报 tiffimagecompression引擎pascalcharacter --------------------------------------------------低调的分割线--------------------------------------------------- Linux下有两个重要的编程准则

fastjson是阿里巴巴的开源JSON解析库

fastjson的API十分简洁. String text = JSON.toJSONString(obj); //序列化 VO vo = JSON.parseObject("{...}", VO.class); //反序列化 https://github.com/alibaba/fastjson/wiki/Quick-Start-CN fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串