Tag: x509certificate

使用c / c ++发送和validationSSL证书

我实际上正致力于协议安全性。 我需要发送证书并在另一侧validation。 现在这就是我的计划: 1像普通数据流一样发送证书链 2.在另一侧捕获它并将其存储在char []缓冲区中 现在,如何从此char []缓冲区validation证书并提取所需的参数? 我需要用c / c ++。

OpenSSL x509证书:使用X509_add1_ext_i2d()添加扩展名

语境: 我正在使用OpenSSL中的API生成x509证书。 我首先创建这样的X509结构: X509 *x509 = X509_new(); // Assume no errors 我想做什么: 现在我想为此证书添加扩展名。 具体来说,我想将“扩展密钥用法”扩展名设置为值serverAuth,clientAuth 。 为此,我尝试使用具有以下签名的OpenSSL函数x509_add1_ext_i2d() : X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, unsigned long flags) 我正在调用该函数传递一个C字符串的value ,我认为这是不正确的。 这是我正在制作的电话: X509_add1_ext_i2d(x509, NID_ext_key_usage, “serverAuth,clientAuth”, 0, 0) 发生了什么: 当该行代码运行时,我得到一个EXC_BAD_ACCESS (code=EXC_i386_GPFLT)exception。 我假设那是因为我传入的value必须是某种特殊的东西(一个八位字符串?某种其他的OpenSSL值?) 我需要的: 为了正确地将该扩展名设置为字符串值serverAuth,clientAuth我需要为value参数传递什么? 或者,或者,为什么我得到列出的例外? 注意:如果我删除此行并尝试生成没有扩展名的证书(其他属性,如名称,到期日期等,我为了简洁而在此处排除),它可以正常工作。 我花了一整天的时间来倾听OpenSSL(荒谬可怜)的文档和谷歌搜索。 我能找到的所有内容都讨论了如何从命令行而不是代码中添加证书扩展。 我无法追踪这个函数期望在value参数中看到的内容。

如何在C中validationX509证书

我有X509格式的证书。 这是函数中的输入参数。 我想做的是validation证书的有效性。 怎么做到呢? X509_verify_cert(); 我找到了这个function,但这不接受X509 *证书,它接受X509_store而我只有一个X509。 最诚挚的问候。