PBC Library Manual(PBC库手册)翻译(六)

目录

 

6.其它函数

6.1 随机比特流

6.2 自定义分配

6.3 日志记录


6.其它函数

随机数生成、内存分配、日志记录。

6.1 随机比特流

第一次要求PBC生成随机数时,PBC库将尝试打开 /dev/urandom 文件作为随机比特的来源。如果失败,PBC就会回落到确定性随机数发生器(对于密码学来说这毫无用处)。

改变用于随机比特的文件是可能的。此外,显式选择确定性随机数生成器将会抑制警告(suppress the warning)。

在Windows中,PBC默认使用Microsoft Crypto API生成随机bits。

void pbc_random_set_file(char *filename) // 设置 filename 作为随机字节的源。例如,在Linux中可能会使用 /dev/random

void pbc_random_set_deterministic(unsigned int seed) // 使用一个确定的随机数生成器,以seed为种子。

void pbc_mpz_random(mpz_t z, mpz_t limit) // 选择一个小于 limit 的z。

void pbc_mpz_randomb(mpz_t z, unsigned int bits) // 选择一个随机的bits位的整数z。

6.2 自定义分配

像GMP一样,PBC可以按照指令使用自定义内存分配函数。必须在执行任何内存操作前完成此操作,通常是在调用其他PBC函数之前,在程序的开始时执行。

像GMP一样,封装 mallocrealloc的封装器会在调用失败时在标准error上打印一条信息并且终止程序执行。替换这些函数应该类似。

然而,与GMP不同的是,在调用reallocfree函数时PBC不会传递之前与指针一起分配的字节数。

void pbc_set_memory_functions(void *(*malloc_fn)(size_t), void *(*realloc_fn)(void *, size_t), void (*free_fn)(void *))

设置自定义内存分配函数。参数必须是指向malloc、realloc和free的函数指针,只是malloc和realloc在失败时应该终止程序:在这种情况下函数一定没有返回。

6.3 日志记录

// 默认情况下,error消息被打印成标准error。调用int pbc_set_msg_to_stderr(0)来suppress messages.
int pbc_set_msg_to_stderr(int i)

// 报告error 消息并以代码128退出。
void pbc_die(const char *err, ...)

// 报告信息(informational)消息
void pbc_info(const char *err, ...)

// 报告warning消息
void pbc_warn(const char *err, ...)

// 报告error消息
void pbc_error(const char *err, ...)
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页