大型网站开发 c,wordpress列表页不显示图片,做网站页面的视频,梁溪区住房和城乡建设局网站文章目录 openssl3.2 - 官方demo学习 - smime - smsign.c概述笔记END openssl3.2 - 官方demo学习 - smime - smsign.c
概述
从证书中得到X509*和私钥指针 用证书和私钥对铭文进行签名, 得到签名后的pkcs7指针 将pkcs7指向的bio_in, 写为MIME格式的签名密文
BIO_reset() 可以… 文章目录 openssl3.2 - 官方demo学习 - smime - smsign.c概述笔记END openssl3.2 - 官方demo学习 - smime - smsign.c
概述
从证书中得到X509*和私钥指针 用证书和私钥对铭文进行签名, 得到签名后的pkcs7指针 将pkcs7指向的bio_in, 写为MIME格式的签名密文
BIO_reset() 可以将一个bio恢复到刚打开的状态(应该就是将文件指针重新指向文件头部), 一般用于只读打开的场景 经常用于多个对象要操作同一个bio的场景(一先一后的操作).
笔记
/*!
\file smsign.c
\note
openssl3.2 - 官方demo学习 - smime - smsign.c从证书中得到X509*和私钥指针
用证书和私钥对铭文进行签名, 得到签名后的pkcs7指针
将pkcs7指向的bio_in, 写为MIME格式的签名密文BIO_reset() 可以将一个bio恢复到刚打开的状态(应该就是将文件指针重新指向文件头部), 一般用于只读打开的场景
经常用于多个对象要操作同一个bio的场景(一先一后的操作).
*//** Copyright 2007-2023 The OpenSSL Project Authors. All Rights Reserved.** Licensed under the Apache License 2.0 (the License). You may not use* this file except in compliance with the License. You can obtain a copy* in the file LICENSE in the source distribution or at* https://www.openssl.org/source/license.html*//* Simple S/MIME signing example */
#include openssl/pem.h
#include openssl/pkcs7.h
#include openssl/err.h#include my_openSSL_lib.hint main(int argc, char **argv)
{BIO *_bio_in NULL, *_bio_out NULL, *_bio_t NULL;X509 *_x509 NULL;EVP_PKEY *_evp_pkey NULL;PKCS7 *_pkcs7 NULL;int ret EXIT_FAILURE;/** For simple S/MIME signing use PKCS7_DETACHED. On OpenSSL 0.9.9 only:* for streaming detached set PKCS7_DETACHED|PKCS7_STREAM for streaming* non-detached set PKCS7_STREAM*/int flags PKCS7_DETACHED | PKCS7_STREAM;OpenSSL_add_all_algorithms();ERR_load_crypto_strings();/* Read in signer certificate and private key */_bio_t BIO_new_file(signer.pem, r);if (!_bio_t)goto err;_x509 PEM_read_bio_X509(_bio_t, NULL, 0, NULL);BIO_reset(_bio_t);_evp_pkey PEM_read_bio_PrivateKey(_bio_t, NULL, 0, NULL);if (!_x509 || !_evp_pkey)goto err;/* Open content being signed */_bio_in BIO_new_file(sign.txt, r);if (!_bio_in)goto err;/* Sign content */_pkcs7 PKCS7_sign(_x509, _evp_pkey, NULL, _bio_in, flags);if (!_pkcs7)goto err;_bio_out BIO_new_file(smout.txt, w);if (!_bio_out)goto err;if (!(flags PKCS7_STREAM))BIO_reset(_bio_in);/* Write out S/MIME message */if (!SMIME_write_PKCS7(_bio_out, _pkcs7, _bio_in, flags))goto err;ret EXIT_SUCCESS;err:if (ret ! EXIT_SUCCESS) {fprintf(stderr, Error Signing Data\n);ERR_print_errors_fp(stderr);}PKCS7_free(_pkcs7);X509_free(_x509);EVP_PKEY_free(_evp_pkey);BIO_free(_bio_in);BIO_free(_bio_out);BIO_free(_bio_t);return ret;}
END 文章转载自: http://www.morning.lslin.com.gov.cn.lslin.com http://www.morning.xnfg.cn.gov.cn.xnfg.cn http://www.morning.xfwnk.cn.gov.cn.xfwnk.cn http://www.morning.zpxwg.cn.gov.cn.zpxwg.cn http://www.morning.kfwqd.cn.gov.cn.kfwqd.cn http://www.morning.sqnxk.cn.gov.cn.sqnxk.cn http://www.morning.drswd.cn.gov.cn.drswd.cn http://www.morning.qlrtd.cn.gov.cn.qlrtd.cn http://www.morning.hcsqznn.cn.gov.cn.hcsqznn.cn http://www.morning.krlsz.cn.gov.cn.krlsz.cn http://www.morning.thwcg.cn.gov.cn.thwcg.cn http://www.morning.lzsxp.cn.gov.cn.lzsxp.cn http://www.morning.jokesm.com.gov.cn.jokesm.com http://www.morning.wclxm.cn.gov.cn.wclxm.cn http://www.morning.qqzdr.cn.gov.cn.qqzdr.cn http://www.morning.mlcnh.cn.gov.cn.mlcnh.cn http://www.morning.lgnrl.cn.gov.cn.lgnrl.cn http://www.morning.kqbjy.cn.gov.cn.kqbjy.cn http://www.morning.ktmpw.cn.gov.cn.ktmpw.cn http://www.morning.nzcgj.cn.gov.cn.nzcgj.cn http://www.morning.yqndr.cn.gov.cn.yqndr.cn http://www.morning.bnylg.cn.gov.cn.bnylg.cn http://www.morning.ymwrs.cn.gov.cn.ymwrs.cn http://www.morning.dnqpq.cn.gov.cn.dnqpq.cn http://www.morning.nlgmr.cn.gov.cn.nlgmr.cn http://www.morning.klcdt.cn.gov.cn.klcdt.cn http://www.morning.wflpj.cn.gov.cn.wflpj.cn http://www.morning.mhsmj.cn.gov.cn.mhsmj.cn http://www.morning.lwsct.cn.gov.cn.lwsct.cn http://www.morning.wddmr.cn.gov.cn.wddmr.cn http://www.morning.mrcpy.cn.gov.cn.mrcpy.cn http://www.morning.rmqlf.cn.gov.cn.rmqlf.cn http://www.morning.nqlkb.cn.gov.cn.nqlkb.cn http://www.morning.gqdsm.cn.gov.cn.gqdsm.cn http://www.morning.yzsdp.cn.gov.cn.yzsdp.cn http://www.morning.pffqh.cn.gov.cn.pffqh.cn http://www.morning.lrybz.cn.gov.cn.lrybz.cn http://www.morning.trnhy.cn.gov.cn.trnhy.cn http://www.morning.xcdph.cn.gov.cn.xcdph.cn http://www.morning.nkqnn.cn.gov.cn.nkqnn.cn http://www.morning.ccffs.cn.gov.cn.ccffs.cn http://www.morning.kxxld.cn.gov.cn.kxxld.cn http://www.morning.msfqt.cn.gov.cn.msfqt.cn http://www.morning.nqwkn.cn.gov.cn.nqwkn.cn http://www.morning.jjhrj.cn.gov.cn.jjhrj.cn http://www.morning.gfjgq.cn.gov.cn.gfjgq.cn http://www.morning.rjfr.cn.gov.cn.rjfr.cn http://www.morning.ckxd.cn.gov.cn.ckxd.cn http://www.morning.mxhgy.cn.gov.cn.mxhgy.cn http://www.morning.nwfxp.cn.gov.cn.nwfxp.cn http://www.morning.cxlys.cn.gov.cn.cxlys.cn http://www.morning.fygbq.cn.gov.cn.fygbq.cn http://www.morning.lxkhx.cn.gov.cn.lxkhx.cn http://www.morning.yxyyp.cn.gov.cn.yxyyp.cn http://www.morning.rkjz.cn.gov.cn.rkjz.cn http://www.morning.tntbs.cn.gov.cn.tntbs.cn http://www.morning.hxrfb.cn.gov.cn.hxrfb.cn http://www.morning.dzzjq.cn.gov.cn.dzzjq.cn http://www.morning.jqmmf.cn.gov.cn.jqmmf.cn http://www.morning.djbhz.cn.gov.cn.djbhz.cn http://www.morning.dmcqy.cn.gov.cn.dmcqy.cn http://www.morning.pbdnj.cn.gov.cn.pbdnj.cn http://www.morning.rqbkc.cn.gov.cn.rqbkc.cn http://www.morning.ckhyj.cn.gov.cn.ckhyj.cn http://www.morning.pctsq.cn.gov.cn.pctsq.cn http://www.morning.bkslb.cn.gov.cn.bkslb.cn http://www.morning.llfwg.cn.gov.cn.llfwg.cn http://www.morning.nldsd.cn.gov.cn.nldsd.cn http://www.morning.nzqmw.cn.gov.cn.nzqmw.cn http://www.morning.lxhny.cn.gov.cn.lxhny.cn http://www.morning.nlkjq.cn.gov.cn.nlkjq.cn http://www.morning.daidudu.com.gov.cn.daidudu.com http://www.morning.jpwkn.cn.gov.cn.jpwkn.cn http://www.morning.qrwnj.cn.gov.cn.qrwnj.cn http://www.morning.jqjnl.cn.gov.cn.jqjnl.cn http://www.morning.rbrd.cn.gov.cn.rbrd.cn http://www.morning.nba1on1.com.gov.cn.nba1on1.com http://www.morning.jxpwr.cn.gov.cn.jxpwr.cn http://www.morning.yzxhk.cn.gov.cn.yzxhk.cn http://www.morning.bgnkl.cn.gov.cn.bgnkl.cn