课上测试

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

posted @ 2022-04-28 14:12  氧气2019  阅读(39)  评论(0编辑  收藏  举报