【房源发布 源码】【caffe源码读不懂】【android textview源码分析】evp源码

2024-12-29 16:29:43 来源:物流跟踪 源码 分类:热点

1.php的openssl_sign($data,$sign,$private_key)这个函数的源码是什么?

evp源码

php的openssl_sign($data,$sign,$private_key)这个函数的源码是什么?

       PHP_FUNCTION(openssl_sign)

       {

       zval **key, *signature;

       EVP_PKEY *pkey;

       int siglen;

       unsigned char *sigbuf;

       long keyresource = -1;

       char * data;

       int data_len;

       EVP_MD_CTX md_ctx;

       zval *method = NULL;

       long signature_algo = OPENSSL_ALGO_SHA1;

       const EVP_MD *mdtype;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "szZ|z", &data, &data_len, &signature, &key, &method) == FAILURE) {

       return;

       }

       pkey = php_openssl_evp_from_zval(key, 0, "", 0, &keyresource TSRMLS_CC);

       if (pkey == NULL) {

       php_error_docref(NULL TSRMLS_CC, E_WARNING, "supplied key param cannot be coerced into a private key");

       RETURN_FALSE;

       }

       if (method == NULL || Z_TYPE_P(method) == IS_LONG) {

       if (method != NULL) {

       signature_algo = Z_LVAL_P(method);

       }

       mdtype = php_openssl_get_evp_md_from_algo(signature_algo);

       } else if (Z_TYPE_P(method) == IS_STRING) {

       mdtype = EVP_get_digestbyname(Z_STRVAL_P(method));

       } else {

       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown signature algorithm.");

       RETURN_FALSE;

       }

       if (!mdtype) {

       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown signature algorithm.");

       RETURN_FALSE;

       }

       siglen = EVP_PKEY_size(pkey);

       sigbuf = emalloc(siglen + 1);

       EVP_SignInit(&md_ctx, mdtype);

       EVP_SignUpdate(&md_ctx, data, data_len);

       if (EVP_SignFinal (&md_ctx, sigbuf,(unsigned int *)&siglen, pkey)) {

       zval_dtor(signature);

       sigbuf[siglen] = '\0';

       ZVAL_STRINGL(signature, (char *)sigbuf, siglen, 0);

       RETVAL_TRUE;

       } else {

       efree(sigbuf);

       RETVAL_FALSE;

       }

       EVP_MD_CTX_cleanup(&md_ctx);

       if (keyresource == -1) {

       EVP_PKEY_free(pkey);

       }

       }

       这个是函数的源码,C写的房源发布 源码。源码可以在php官网下载一个php版本,caffe源码读不懂解压打开里面的android textview源码分析ext/openssl.c搜上面代码即可。

android 浮动通知 源码

android 浮动通知 源码

更多资讯请点击:热点

热门资讯

pnfs 源码分析

2024-12-29 15:52379人浏览

gb游戏源码_gba游戏源码

2024-12-29 15:47227人浏览

迪蒙源码_迪蒙软件

2024-12-29 15:191884人浏览

偏离值源码_偏离算法

2024-12-29 14:08245人浏览

推荐资讯

MLB/大谷翔平176轟出爐! 超越松井秀喜登大聯盟最多轟日人

道奇隊球星大谷翔平敲出大聯盟生涯第176支全壘打,正式超越「酷斯拉」松井秀喜,成為大聯盟累計最多轟的日本球員。道奇隊今天在主場迎戰大都會隊,大谷在三局下半、一壘有人時,轟出一支兩分砲,這是他本季第五轟

uos系统源码

1.GitLab ARM64源码在信创统信UOS下的搭建2.UOS终极波动指标源码的组成要素:综合三个不同周期的RSI3.统信UOS家庭版是否支持国产CPU详情4.统信UOS系统开发笔记八):在统信U

Ktv android 源码

1.手机移动ktv代码是多少手机移动ktv代码是多少 一个android编写的KTV手机端,和一个苹果IOS编写的KTV手机端的源代码。实现KTV里通过手机来控制点歌,这样很方便 (A wri