课上测试
main.c 在test中的main.c
//#include "sdf.h"
#include<stdio.h>
#include <openssl/bn.h>
#include <string.h>
#include <openssl/bio.h>
#include <stdlib.h>
#include <stdio.h>
int main(){
void ** pdh;
unsigned char ran[100];
int ret;
int len;
//ret = SDF_OpenDevice(pdh);
SDF_GenerateRandom(pdh,1,ran);
printf("%s\n",ran);
SDF_GenerateRandom(pdh,5,ran);
printf("%s\n",ran);
SDF_GenerateRandom(pdh,20,ran);
printf("%s\n",ran);
return 0;
//#include "sdf.h"
include <openssl/bn.h>
include <string.h>
include <openssl/bio.h>
include <stdlib.h>
include <stdio.h>
sdf.c 在src中的sdf.c
int SDF_GenerateRandom (void * hSessionHandle, unsigned int uiLength, unsigned char * pucRandom){
BIGNUM *ans;
BN_CTX *ctx;
ctx=BN_CTX_new();
ans=BN_new();
BN_rand(ans,uiLength, -1, 0); //产生随机数
char *toU = BN_bn2hex(ans);
strcpy(pucRandom, toU);
BN_free(ans);
OPENSSL_free(toU);
BN_CTX_free(ctx);
return 0;
}
结果:
编译指令:gcc /home/oxygen/sdfproject/test/main.c /home/oxygen/sdfproject/src/sdf.c -o /home/oxygen/sdfproject/bin/test -Iinclude -lpthread -lcrypto