如何为 BN_generate_prime 播种 PRNG

2023-12-20

我一直无法找到关于在 openssl/bn.h 中使用 BN_generate_prime 生成素数的答案。另外,我如何播种该函数使用的 PRNG?

单独的问题但与我的代码相关(我正在编写一个程序来生成 RSA 密钥对):如何检查高位是否设置为 BIGNUM?假设我生成一个 512 位素数。我会使用 BN_is_bit_set(prime, 512) 吗?

Thanks


BN_generate_prime 是一个已弃用的函数,说here https://www.openssl.org/docs/crypto/BN_generate_prime.html。此外,它是在 crypto/bn_depr.c 中定义的。你不应该用它来生成素数。相反,您应该使用 BN_generate_prime_ex。以下是 BN_generate_prime_ex 的示例用法:

BIGNUM *r;
static const char rnd_seed[] = "string to make the random number generator think it has entropy";

r = BN_new();
RAND_seed(rnd_seed, sizeof rnd_seed); /* or BN_generate_prime_ex may fail */

BN_generate_prime_ex(r, 512, 0, NULL, NULL, NULL);

BN_free(r);

然后你将得到一个 512 位伪随机素数。如上面的示例,您可以通过 RAND_seed 为 PRNG 播种。

对于第二个问题,尝试BN_num_bits http://www.openssl.org/docs/crypto/BN_num_bytes.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 BN_generate_prime 播种 PRNG 的相关文章

  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但
  • malloc :匿名映射和魔法区域

    我只是在摆弄内存映射 想查看用户空间虚拟内存区域映射 写了一些像这样的行 char ptr NULL printf Allocating 300KB n ptr malloc 300 1024 printf Allocated at p s
  • 使用 terminfo 的终端颜色?

    我正在编写一个 C 类 允许在终端中使用颜色 我希望它适用于每个终端 在支持真彩色 24 位 的终端上打印 在支持它的终端上具有 256 色 6x6x6 其他都是基本的 16 种颜色 我曾经使用 termcap 编写过一次 C 函数 并且我
  • 将新行添加到表后如何更新 datagridview 的行列表

    我有一个 datagridview 在表单的加载事件上填充了表集合 我还有一个由用户填写的表单 并将新行添加到表 onclick 事件 我想在向该表添加新行后更新 datagridview表 我使用绑定到绑定数据源的 sqladapter
  • 保存时的 NHibernate FlushMode

    我已将 NHibernate 会话上的 FlushMode 属性设置为 FlushMode Never 但是当我调用 session Save User 时 无论如何都会调用数据库 这是应该如何工作的吗 我认为在我调用 Flush 之前它不
  • 在哪里可以找到有关嵌入式 C++ 的信息?

    我想查找有关 嵌入式平台中的 C 编程 的信息 我用谷歌搜索 但无法找到有关该主题的足够信息 我到底想找到的是 C 在嵌入式环境中到底如何有用 并带有详细的描述和示例 如果可用 如果我能得到 任何人都可以建议任何链接或任何免费电子书下载吗
  • IIS 上托管的 WCF 服务无法运行

    我想构建一个公开 basicHTTP 端点和 webHTTP 端点的服务 如果我在运行模式下使用 VS2010 测试以下项目 一切都很好 但我想在 IIS 中托管服务 本地或远程 并通过测试 服务 svc 我将我的网站托管到本地 IIS 中
  • 如何命名泛型类的 C# 源文件

    我试图坚持通用命名约定 例如中描述的那些开发类库的设计指南 http msdn microsoft com en us library ms229042 aspx 我将每种类型放入其自己的源文件中 并且部分类将拆分为多个文件 如问题中所述部

随机推荐

  • 如何获取要从 Elastic Beanstalk 上的 Dockerfile.aws.json 运行的命令?

    我有一个Dockerfile and a Dockerfile aws json AWSEBDockerrunVersion 1 Ports ContainerPort 5000 HostPort 5000 Volumes HostDire
  • 列出 RestEasy 服务的所有公开/可用端点?

    是否可以以简单的方式列出 RestEasy 服务的所有公开 可用端点 有一个 RestEasy 插件 stats 它公开了 resteasy registry 它需要注册在web xml
  • 使用step_naomit进行预测并使用tidymodels保留ID

    在使用随机森林模型进行预测以合并回原始数据帧时 我尝试在行上保留 ID 我在配方中使用了step naomit 它在烘焙训练数据时删除了缺少数据的行 同时也删除了测试数据上缺少数据的记录 不幸的是 我没有 ID 来轻松知道哪些记录被删除 因
  • Java:以管理员身份运行时无法访问 jarfile

    我有一个名为 test jar 的 jar 文件 我使用同一文件夹中的批处理脚本运行该文件 这是批处理代码 java jar test jar pause jar 本身工作没有问题 我可以很好地运行它 但是 如果我尝试以管理员身份运行批处理
  • 如果订阅是在用户帐户上管理的,自动续订订阅是否需要恢复按钮?

    在 WWDC 2013 中 他们提到自动续订订阅需要恢复按钮 但是 在我们的模型中 订阅是通过用户帐户进行管理的 恢复是通过登录帐户来完成的 收据存储在我们的服务器上 拥有恢复按钮实际上不会做任何事情 但如果不使用它会面临被拒绝的风险吗 N
  • dyld:未加载库:@rpath/libswiftAVFoundation.dylib

    我刚刚更新到 Xcode 7 和 swift 2 并完成了转换带来的错误的修复 我终于得到了要构建的项目 但在启动屏幕后我收到一条错误消息 dyld 未加载库 rpath libswiftAVFoundation dylib 引用自 var
  • 致命:坏对象 HEAD

    有人可以帮我解决这个问题吗 我之前曾就此发表过一篇文章 但我无法通过这些答案解决它 请帮忙 我尝试过跑步git fsck full我得到 Checking object directories 100 256 256 done error
  • ORACLE更新后触发器:解决ORA-04091突变表错误

    我正在尝试创建一个触发器 create or replace trigger NAME OF TRIGGER after insert or update on table1 REFERENCING OLD AS OLD NEW AS NE
  • Pandas 对行值进行排序

    我有一个像这样的熊猫数据框 Col1 Col2 Col3 1 1092 203 802 是否可以对这个数据框进行排序并得到这样的结果 Col1 Col3 Col2 1 1092 802 203 I tried sort values但它不起
  • ExecutorService 按顺序执行任务,但从池中获取线程

    我正在尝试构建一个实现ExecutorService 我们称之为SequentialPooledExecutor 具有以下性质 的所有实例SequentialPooledExecutor共享同一个线程池 调用同一个实例SequentialP
  • 如何对 Bundle 中的 javascript 文件进行版本控制?

    我想将我的 JS 脚本包含在Bundle并且同时version它们以避免浏览器缓存 如果这些脚本已更改 有没有 native 方式与ASP NET MVC 5来完成这个 我找到了一个名为的图书馆Cassette http getcasset
  • 如何使用动态行跨度显示数据库中的数据

    我是 php 编程新手 在使用 php 和 html 显示 mysql 数据库中的数据时遇到一些问题 这是我的桌子 location id location location component id comopnent id locati
  • C 多类型函数

    我想用 C 编写一些函数 但它们必须适用于所有数字类型 int float double 什么是好的做法 在 void 上使用指针 当然还有指向函数的指针 或者为每种类型编写不同的函数 例如 float func float a float
  • pyenv 在执行所述模块时在终端中打印模块

    我已经转向使用pyenv运行 python 时 但问题是当我执行一个模块并且该模块导入其他模块时pyenv经常会打印出一大堆对我来说是胡言乱语的内容 例如 alias py37 pyenv local 3 7 3 python Admins
  • Symfony2 __toString() 错误

    我在将实体保存回给我时遇到此错误 Catchable Fatal Error Method My BusinessBundle Entity Type toString must return a string value in var w
  • 使用rest api在Google Drive中创建新文件夹

    仅当谷歌驱动器不存在时 如何使用 python 在谷歌驱动器中创建新文件夹 我对这个 google API 和 python 完全陌生 我的帐户有一个访问令牌 我想使用它创建文件夹 创建文件夹 import json import requ
  • 当 BOM(字节顺序标记)丢失时,如何才能最好地猜测编码?

    我的程序必须读取使用各种编码的文件 它们可能是 ANSI UTF 8 或 UTF 16 大端或小端 当 BOM 字节顺序标记 存在时 我没有问题 我知道该文件是 UTF 8 还是 UTF 16 BE 或 LE 我想假设当没有 BOM 时该文
  • 英特尔 Fortran 95 编译器是否允许模块数组具有非常量大小?

    我已经下载了 Fortran 90 95 自适应网格细化库 Paramesh http www physics drexel edu olson paramesh doc Users manual amr html 现在我正在尝试编译一个附
  • 如何停止水平滚动?

    我用 html 和 javascript 编写了一个文件 垂直滚动应该存在 但我想停止水平滚动 我怎样才能做到这一点 萨弗拉兹有已经提到过 https stackoverflow com questions 2987261 how to s
  • 如何为 BN_generate_prime 播种 PRNG

    我一直无法找到关于在 openssl bn h 中使用 BN generate prime 生成素数的答案 另外 我如何播种该函数使用的 PRNG 单独的问题但与我的代码相关 我正在编写一个程序来生成 RSA 密钥对 如何检查高位是否设置为