读书人

求libtomcrypt库施用

发布时间: 2013-04-26 16:27:53 作者: rapoo

求libtomcrypt库使用
本人想使用libtomcrypt库实现rsa的加密解密,下载了libtomcrypt-1.17,使用vc6.0打开里面的libtomcrypt.dsp文件,编译成功后得到tomcrypt.lib。
之后我新开一个c项目,吧tomcrypt.lib放在该目录下,然后吧libtomcrypt-1.17文件夹里的Demo中 encrypt.c 的内容取出
#include <tomcrypt.h>

int main(int argc, char *argv[])
{
unsigned char plaintext[512],ciphertext[512];
unsigned char tmpkey[512], key[MAXBLOCKSIZE], IV[MAXBLOCKSIZE];
unsigned char inbuf[512]; /* i/o block size */
unsigned long outlen, y,
......

但编译就多了好多错误
rsa_main.obj : error LNK2001: unresolved external symbol _cipher_descriptor
rsa_main.obj : error LNK2001: unresolved external symbol _sprng_desc
rsa_main.obj : error LNK2001: unresolved external symbol _register_prng
rsa_main.obj : error LNK2001: unresolved external symbol _yarrow_desc
rsa_main.obj : error LNK2001: unresolved external symbol _register_hash
rsa_main.obj

所以,我想知道libtomcrypt库是如何使用的,是否需要依赖其他库,并求一个完整的rsa加解密过程,请各位给点意见,本人qq:78626423
[解决办法]
求libtomcrypt库使用 同问啊!
我想用libtomcrypt进行ECC192的使用。使用下列例程,运行也会出错。求高人指点啊!
#include <tomcrypt.h>
int main(void)
{
ecc_key mykey;
prng_state prng;
int err;
/* register yarrow */
if (register_prng(&yarrow_desc) == -1) {
printf("Error registering Yarrow\n");
return -1;
}
/* setup the PRNG */
if ((err = rng_make_prng(128, find_prng("yarrow"), &prng, NULL))
!= CRYPT_OK) {
printf("Error setting up PRNG, %s\n", error_to_string(err));
return -1;
}
/* make a 192-bit ECC key */
if ((err = ecc_make_key(&prng, find_prng("yarrow"), 24, &mykey))
!= CRYPT_OK) {
printf("Error making key: %s\n", error_to_string(err));
return -1;
}
return 0;
}

出错信息:
LTC_ARGCHK 'ltc_mp.name != NULL' failure on line 59 of file src/pk/ecc/ecc_make_key.c
Aborted

增加下面代码根本编译不过
#ifdef USE_LTM
ltc_mp = ltm_desc;
#elif defined(USE_TFM)
ltc_mp = tfm_desc;
#elif defined(USE_GMP)
ltc_mp = gmp_desc;
#else
extern ltc_math_descriptor EXT_MATH_LIB;
ltc_mp = EXT_MATH_LIB;
#endif

[解决办法]
tomsfastmath-0.12这个需要先编译的
[解决办法]
#define TFM_DESC

读书人网 >C++

热点推荐