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

use*_*091 5 embedded gmp bignum static-libraries

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

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

Grz*_*ski 2

我认为你不会找到任何像样的大整数C库,它不使用malloc,calloc以及可能的或任何动态分配,因为任意realloc精度数字的全部意义在于超越有限的、依赖于平台的堆栈大小,其次它是很多比编译时静态内存分配更灵活的方法。

我的猜测是调整mini-gmp软件包以克服您的特定限制。(您可以在主目录下找到它以及一些测试)。它包含一个头文件和一个 C 源文件,因此“切断”libc依赖关系而不是全功能发布应该要简单得多,但是它不会那么快,因为 GMP 严重依赖于高度优化的汇编代码各种CPU架构。

正如kkrambo所建议的,您也可以尝试BigDigits带有选项的库NO_ALLOCS,该选项自 2.2 版起可用:

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

  • [BigDigits](http://www.di-mgt.com.au/bigdigits.html) 库包含一个核心库,可以使用“NO_ALLOCS”预处理器定义禁用该核心库的内存分配。然后,核心库将使用固定数组,您可以根据对应用程序的了解来调整这些数组的大小。 (2认同)