module-Apache Modulue开发中遇到的问题,关于openssl加密,总是报错,错在哪里?

问题描述

Apache Modulue开发中遇到的问题,关于openssl加密,总是报错,错在哪里?

char *iaisession_getobmuid(request_rec *r, const char *encid, const unsigned char *enckey, unsigned char *iv, const char *mtiid)
{
unsigned char *obmuid = (unsigned char *) apr_pcalloc(r->pool, LENGTH_OBMUID + 1);
char *b64edobmuid;
// get muid length
int mtiidlen = strlen(mtiid);
// encrypted obmuid length
int obmuidlen = 0;
// padding length
int paddinglen = 0;
// according to the key length, decide 128bit or 256bit AES encryption algorithm.
const EVP_CIPHER *aes_cbc = NULL;
int keylen = strlen((char *)enckey);
if (keylen == LENGTH_KEY_16) {
aes_cbc = EVP_aes_128_cbc();
} else if (keylen == LENGTH_KEY_32) {
aes_cbc = EVP_aes_256_cbc();
}
// cipher contex
EVP_CIPHER_CTX ctx;
// initializes cipher contex.
EVP_CIPHER_CTX_init(&ctx);
// sets up cipher context ctx for encryption with cipher type from ENGINE (default implementation).
EVP_EncryptInit_ex(&ctx, aes_cbc, NULL, enckey, iv);
// encrypts mtiidlen bytes from the mtiid in and writes the encrypted version to obmuid.
EVP_EncryptUpdate(&ctx, obmuid, &obmuidlen, (unsigned char *)mtiid, mtiidlen);
// obmuid is the encrypts.
EVP_EncryptFinal_ex(&ctx, obmuid + obmuidlen, &paddinglen);
// clears all information from a cipher context and free up any allocated memory associate with it.
EVP_CIPHER_CTX_cleanup(&ctx);
// base64 encode
b64edobmuid = iaisession_encodebybase64(r->pool, obmuid);
return b64edobmuid;
}

[Wed Jul 03 01:43:13 2013] [notice] child pid 28278 exit signal Segmentation fault (11)

解决方案

segmentation fault,程序异常了,比如指针越界等

时间: 2025-01-29 23:35:43

module-Apache Modulue开发中遇到的问题,关于openssl加密,总是报错,错在哪里?的相关文章

Yeoman提供各种Web应用开发中所需的实用功能

浏览器端所包含的 HTML.CSS 和 JavaScript 代码也变得更加复杂.对于日益复杂的前端代码,需要有更好的流程和工具来管理开发的各个方面,包括初始的代码结构.开发流程和自动化测试等.Yeoman 是一个新兴的工具.它结合了 Yo.Grunt 和 Bower 等工具,组成了一个完整的工具集合,提供各种 Web 应用开发中所需的实用功能. Yeoman 的最大优势在于它整合了各种流行的实用工具,提供了一站式的解决方案,使得 Web 应用开发中的很多方面变得简单.Yeoman 使得开发人员

网站开发中, php所扮演的角色,以及与其他语言,工具或库的关系,这个问题很重要

问题描述 网站开发中, php所扮演的角色,以及与其他语言,工具或库的关系,这个问题很重要 网站开发中, php所扮演的角色,以及与其他语言,工具或库的关系,这个问题很重要 解决方案 php是一种web脚本语言,它主要用来编写应用层.web应用层需要iis或者apache这样的web服务器去执行.只使用php其实也可以开发一个完整的服务器端程序了.如果你希望一部分业务放在客户端执行,那么需要用js脚本.如果你希望调用一些别的语言的库,或者出于性能的优化,可以用C++写dll,用php模块加载.

WEB开发中Spring AOP实际应用一例

web   在WEB开发中,用户对网页的访问权限检查是一个重要的环节.以STRUST为例,我们需要在Action的excute方法中编写相关的代码(一般是调用基类的函数),也很显然,在每个Action中这是一种重复劳动. 如果我们在excute运行之前,能够自动去调用基类的权限检查函数,这无疑是个好的解决办法.AOP就为我们提供了这样一种解决方法. 下面以一个简化的实例介绍实现的办法. 首先我们做一个接口: public interface CheckInterface {  public ab

在SOA开发中使用WBSF动态调用业务服务,第2部分(上)

引言 在上一篇文章中,我们介绍了WBSF动态调用业务服务的基本概念和工作原理.WBSF让我们在SOA 开发中能够根据服务策略动态调用业务服务.WBSF V6.02 提供了SCA 编程模型,让开发业务服务更加灵活,方便.本文通过一个具体的例子,介绍如何通过 WBSF V6.02 的 SCA 编程模型动态调用业务服务.我们将基于上下文属性制定服务策略:在ResponseListener 扩展中设置基于服务内容的断言:通过 ContextExtractor 扩展更新事务中的上下文属性: 业务场景与建模

PHP前端开发中的性能那点事

 在我们平时的php开发中,一个大的项目经过长时间的积累以后你会发现性能越来越慢,而性能到底消耗在了什么地方,常常是一个令人头疼的问题,function a()调用了多少次,function b()又消耗了多少时间,我们到底怎么查找是哪个蛀虫拉慢了我们的程序运行速度呢?在这里给大家介绍一款工具xdebug,相信很多人已经听说过了,希望借助这个工具我们可以起到简单分析php程序性能瓶颈的问题. A)假设1,假设用户目录在/home/ad B)假设2,假设php目录在/home/ad/php 1.x

PHP网站开发中常用的8个小技巧

 这篇文章主要介绍了PHP网站开发中常用的8个小技巧,本文讲解了命名.使用.PHP判断Form表单是否提交.PHP 获取字符串长度.PHP超全局对象等内容,需要的朋友可以参考下     PHP是一种用于创建动态WEB页面的服务端脚本语言.如同ASP和ColdFusion,用户可以混合使用PHP和HTML编写WEB页面,当访 问者浏览到该页面时,服务端会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起传送到访问端的浏览器.但是与ASP或 ColdFusion不同,PHP是一

Android开发中Eclipse报错及对应处理方法总结_Android

本文较为详细的总结了Android开发中Eclipse报错及对应处理方法.分享给大家供大家参考,具体如下: 报错1: Conversion to Dalvik format failed with error 1 报错原因:原因是我在android工程中不小心多导入Java的mina,结果一跑程序就报这个错误. 解决方法:将Java中用到的mina包移除,就OK了. 小结:以后遇到这种报错时,记得提醒自己可能是由于自己导错包了. 附: 网上其他处理方法:<丢失Android系统库或者Conver

【JAVA秒会技术之Dubbo入门】Dubbo在电商开发中的应用

Dubbo在电商开发中的应用 一.Dubbo背景 所谓背景介绍,就是"我们在什么情况下,基于什么原因开发了这样一个中间件?"就博主来看,简而言之,总结如下: (1) 随着服务的不断增多,服务的URL配置管理变得非常困难.此时,我们需要找一个中介替我们管理. (2) 服务间的依赖关系变得错踪复杂,相互调用混乱.此时,我们需要厘清谁是服务提供方,谁是服务的消费方. (3) 服务间的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?此时,我们需要有一个自动

web开发中的jsp标签问题

问题描述 web开发中的jsp标签问题 /index.jsp(11,1) The TLD for the class com.hyd.tag.HelloWordTag specifies an invalid body-content (JSP) for a SimpleTag. at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) at org.apache.jasper.