搜索嵌入式C库以操作不使用标准libc的大数字?

时间:2014-05-30 05:53:06

标签: embedded static-libraries gmp bignum

我必须操作非常大的数字可能是2048字节用于实现RSA。根据汽车领域的规则,我不能使用使用标准libc的bignum库。我搜索了GMP和Polarssl,但他们都使用malloc()和其他东西。

那么有没有可用的库/方法不依赖于libc并且还管理这么大的数字..? ???

1 个答案:

答案 0 :(得分:2)

我认为你不会发现任何体面的大整数C库,不使用malloccalloc和可能realloc或任何动态分配,因为< strong>任意精度数字超出了有限的,与平台相关的堆栈大小,其次是比编译时静态内存分配更灵活的方法。

我的猜测是调整mini-gmp包以克服您的特定限制。 (你会在主目录下找到它并进行一些测试)。它包含一个头文件和一个C源文件,所以它应该更简单地“切断”libc依赖而不是全功能版本,但它不会那么快,因为GMP严重依赖于高度 - 针对各种CPU架构的优化汇编代码。

根据 kkrambo 的建议,您也可以尝试BigDigitsNO_ALLOCS选项,该版本自2.2版开始提供:

  

添加NO_ALLOCS选项以编译“mp”库而不使用   任何内存分配。