随笔分类 - c
c
摘要:有两个so,其中soB中调用soA; 那么我们打包soB的时候连接soA; 在打包test程序的时候连接soB,此时soB会自动查找依赖的soA; 如下测试 在编译之前指定环境变量:export LD_LIBRARY_PATH=./ soA 编译成so soB 编译成so,编译时连接soA,就是 -
阅读全文
摘要:RSA私钥格式PKCS1和PKCS8相互转换 RSA公钥格式PKCS1和PKCS8相互转换 以下转换基于openssl命令的操作; 1. openssl 生成pkcs1格式的私钥,密钥长度1024位, (PKCS1) openssl genrsa -out private.pem 1024 2. P
阅读全文
摘要:什么是sm3,是一种类似于sha256的哈希算法,是咱们国家的哈希标准算法; 最近在使用sm3算法时,同样的一份数据,调用同样的sm3接口,发现得到的结果是不一样的; 那么在应用过的过程中,如果同样的算法出的结果不一样,那验证签名业务就会不过,出问题; 最后发现是sm3算法在内部使用了unsigne
阅读全文
摘要:libusb是一个跨平台的usb通讯库;https://libusb.info/ 在ubuntu16上安装 1. 首先安装 libudev-dev sudo apt-get install libudev-dev 2. 下载源码并解压 tar -xjf libusb-1.0.22.tar.bz2 3
阅读全文
摘要:安装了ubuntu16 64位的系统,想在该环境下用gcc编译64位和32位的程序 默认已经安装了64位环境的gcc 1. 首先确认安装的环境是不是64位的 2. 确认系统是否支持多架构环境 如果不支持那么手动打开,如下 3. 安装支持32编译程序的gcc库 4. 编译一个测试程序 main.c如下
阅读全文
摘要:android ndk-build 编译静态库libxx.a 需求场景: 目前有安卓编码好的现在的openssl的两个.a,我们需要调用openssl的函数,并把功能再封装成.a; 这样使用时,在android studio jni项目 cmake 里面,需要先引用openssl的.a再引用 上面封
阅读全文
摘要:哈希表是一种数据结构,通过在记录的存储位置和它的关键字之间建立确定的对应关系,来快速查询表中的数据; openssl lhash.h 为我们提供了哈希表OPENSSL_LHASH 的相关接口,我们可以直接使用,用来存放各种数据; 哈希表类似前面提到的栈,但是哈希表的优势是查询速度快。 1. lhas
阅读全文
摘要:堆栈是两种不同的数据结构; 堆:数据先进先出; 栈:数据先进后观; 在stack.h 中 openssl 为我们提供了一个通用的栈,利用提供的接口我们可以方便的用此栈来存放开发中的任意数据。 openssl stack 栈类似于数组,元素下标从0开始; 1. openssl stack 主要接口有
阅读全文
摘要:openssl pem.h 中提供了关于pem格式密钥对的操作接口 通常使用.pem的格式文件来保存openssl 生成的密钥对; 在终端下 cat xxx.pem 可以看到 BEGIN RSA PRIVATE KEY XXXX END RSA PRIVATE KEY 密钥数据进行了BASE64编码
阅读全文
摘要:openssl evp RSA 加密解密 可以直接使用RSA.h 提供的接口 如下测试使用EVP提供的RSA接口 1. EVP提供的RSA 加密解密 主要接口: 测试代码 先生成 EVP_KEY 测试加密解密 执行结果: src=01234567890123456789012345678901234
阅读全文
摘要:1. 简介 openssl rsa.h 提供了密码学中公钥加密体系的一些接口, 本文主要讨论利用rsa.h接口开发以下功能 公钥私钥的生成 公钥加密,私钥解密 私钥加密,公钥解密 签名:私钥签名 验证签名:公钥验签 2. 生成公钥私钥对 主要接口, 接口调用需要先生成一个大数,如下生成密钥对示例 打
阅读全文
摘要:openssl evp 对称加密(AES_ecb,ccb) evp.h 封装了openssl常用密码学工具,以下主要说对称加密的接口 1. 如下使用 aes_256_ecb 模式的加密解密测试代码 如上这种init,update,final的调用方式和之前 提供的哈希接口调用方式差不多 大致流程 E
阅读全文
摘要:1. 简述 openssl提供了丰富密码学工具,一些常用的哈希算法 比如md5,sha 可以直接用提供的md5.h ,sha.h 接口使用; 为了方便开发者使用,openssl 又提供了一个EVP, evp.h 该文件中提供各种常用工具; man evp 可以得知,evp 是openssl 提供的更
阅读全文
摘要:linux gcc 编译动态类库(.so)和静态类库(.a) 我的编译环境 ubuntu desktop 16.04 一:测试代码 测试有3个文件:AB.h,AB.c,test.c //AB.h void hello(); //AB.c #include <stdio.h> void hello()
阅读全文
摘要:C 语言字符串连接的 3种方式#include#include#includechar *join1(char *, char*);void join2(char *, char *);char *join3(char *, char*);int main(void) { char a[4] ...
阅读全文
摘要:mac 下基于firebreath 开发多浏览器支持的浏览器插件首先要区分什么是浏览器扩展和浏览器插件;插件可以像本地程序一样做的更多一. 关于 firebreathhttp://www.firebreath.orgfirebreath 是一个夸平台,夸浏览器的,开发浏览器插件框架;利用firebr...
阅读全文
摘要:iOS 静态类库 编译 C,C++我们都知道,OC 原生支持C, 在 创建的 OC类的 .m 里面,可以直接编写C的代码;同样 Xcode 也支持 OC ,C++的混编,此时,我们通常把OC创建的 .m 文件,手动修改为 .mm 文件以支持 oc c++的混编基于上面的特性,我们在打包静态类时,可以...
阅读全文
摘要:c time_t 和 oc NSDate 的转换1:time_t 转 oc NSDatetime_t some_time_t=NULL;NSDate *someDate = [NSDate dateWithTimeIntervalSince1970:some_time_t];2: NSDate 转 ...
阅读全文