Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0003538 [Quercus] major always 05-30-09 16:05 07-20-09 09:31
Reporter Taylor View Status public  
Assigned To
Priority normal Resolution open  
Status new   Product Version 3.2.1
Summary 0003538: phpMyAdmin has problem with padding of cleartext for blowfish decryption
Description Trying to get phpmyadmin running on quercus on glassfish v2.1. There is failure due to padding for encryption, using blowfish, when it decrypts in MCrypt. I went to quercus source to change it to no-padding. I discovered that Quercus already chooses no-padding for all encryption methods, except that it has been commented out and replaced with PKCS5 for blowfish. I assume there is a reason for this, so I guess there is no point in changing it back?

This is independent of digitalrinaldo's bug about invalid key length.

Note: I was hoping to use this in a class I'm teaching, use glassfish+mysql and phpmyadmin. All those students would go out and tell their employers to take a look at quercus.....
Additional Information From the glassfish logs:

PWC1406: Servlet.service() for servlet phpMyAdmin threw exception java.lang.RuntimeException: java.lang.RuntimeException: javax.crypto.BadPaddingException: Given final block not properly padded at com.caucho.quercus.lib.mcrypt.McryptModule.mcrypt_decrypt(McryptModule.java:177) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:129) at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:618) at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:553) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.env.JavaInvoker.evalArguments(JavaInvoker.java:429) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:170) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:363) at com.caucho.quercus.program.Function.callCopy(Function.java:297) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180) at com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150) at com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86) at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.Function.callImpl(Function.java:363) at com.caucho.quercus.program.Function.call(Function.java:292) at com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182) at com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126) at com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:467) at com.caucho.quercus.expr.NotExpr.evalBoolean(NotExpr.java:72) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:80) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:327) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:71) at com.caucho.quercus.env.Env.include(Env.java:4074) at com.caucho.quercus.env.Env.includeOnce(Env.java:4025) at com.caucho.quercus.expr.IncludeOnceExpr.eval(IncludeOnceExpr.java:89) at com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64) at com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105) at com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:327) at com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:71) at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119) at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:167) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:407) at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Caused by: java.lang.RuntimeException: javax.crypto.BadPaddingException: Given final block not properly padded at com.caucho.quercus.lib.mcrypt.Mcrypt.decrypt(Mcrypt.java:98) at com.caucho.quercus.lib.mcrypt.McryptModule.mcrypt_decrypt(McryptModule.java:173) ... 73 more Caused by: javax.crypto.BadPaddingException: Given final block not properly padded at com.sun.crypto.provider.SunJCE_h.b(DashoA12275) at com.sun.crypto.provider.SunJCE_h.b(DashoA12275) at com.sun.crypto.provider.BlowfishCipher.engineDoFinal(DashoA12275) at javax.crypto.Cipher.doFinal(DashoA12275) at com.caucho.quercus.lib.mcrypt.Mcrypt.decrypt(Mcrypt.java:96) ... 74 more
Attached Files

- Relationships

- Notes
(0004099)
Morbo
07-20-09 09:31

Hello,
Same probleme here with tomcat6 and phpmyadmin 3.2.0.1

java.lang.RuntimeException: java.lang.RuntimeException: javax.crypto.BadPaddingException: Given final block not properly padded
    com.caucho.quercus.lib.mcrypt.McryptModule.mcrypt_decrypt(McryptModule.java:177)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:129)
    com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:618)
    com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:553)
    com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182)
    com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
    com.caucho.quercus.env.JavaInvoker.evalArguments(JavaInvoker.java:429)
    com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:170)
    com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
    com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.Function.callImpl(Function.java:363)
    com.caucho.quercus.program.Function.callCopy(Function.java:297)
    com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180)
    com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150)
    com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86)
    com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.Function.callImpl(Function.java:363)
    com.caucho.quercus.program.Function.call(Function.java:292)
    com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182)
    com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
    com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:467)
    com.caucho.quercus.expr.NotExpr.evalBoolean(NotExpr.java:72)
    com.caucho.quercus.program.IfStatement.execute(IfStatement.java:80)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:327)
    com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:71)
    com.caucho.quercus.env.Env.include(Env.java:4074)
    com.caucho.quercus.env.Env.includeOnce(Env.java:4025)
    com.caucho.quercus.expr.IncludeOnceExpr.eval(IncludeOnceExpr.java:89)
    com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:327)
    com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:71)
    com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119)
    com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:167)
    com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:407)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

cause mère

java.lang.RuntimeException: javax.crypto.BadPaddingException: Given final block not properly padded
    com.caucho.quercus.lib.mcrypt.Mcrypt.decrypt(Mcrypt.java:98)
    com.caucho.quercus.lib.mcrypt.McryptModule.mcrypt_decrypt(McryptModule.java:173)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:129)
    com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:618)
    com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:553)
    com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182)
    com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
    com.caucho.quercus.env.JavaInvoker.evalArguments(JavaInvoker.java:429)
    com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:170)
    com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
    com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.Function.callImpl(Function.java:363)
    com.caucho.quercus.program.Function.callCopy(Function.java:297)
    com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180)
    com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150)
    com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86)
    com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.Function.callImpl(Function.java:363)
    com.caucho.quercus.program.Function.call(Function.java:292)
    com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182)
    com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
    com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:467)
    com.caucho.quercus.expr.NotExpr.evalBoolean(NotExpr.java:72)
    com.caucho.quercus.program.IfStatement.execute(IfStatement.java:80)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:327)
    com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:71)
    com.caucho.quercus.env.Env.include(Env.java:4074)
    com.caucho.quercus.env.Env.includeOnce(Env.java:4025)
    com.caucho.quercus.expr.IncludeOnceExpr.eval(IncludeOnceExpr.java:89)
    com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:327)
    com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:71)
    com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119)
    com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:167)
    com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:407)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

cause mère

javax.crypto.BadPaddingException: Given final block not properly padded
    com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
    com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
    com.sun.crypto.provider.BlowfishCipher.engineDoFinal(DashoA13*..)
    javax.crypto.Cipher.doFinal(DashoA13*..)
    com.caucho.quercus.lib.mcrypt.Mcrypt.decrypt(Mcrypt.java:96)
    com.caucho.quercus.lib.mcrypt.McryptModule.mcrypt_decrypt(McryptModule.java:173)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    java.lang.reflect.Method.invoke(Method.java:597)
    com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:129)
    com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:618)
    com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:553)
    com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182)
    com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
    com.caucho.quercus.env.JavaInvoker.evalArguments(JavaInvoker.java:429)
    com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:170)
    com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
    com.caucho.quercus.program.ReturnStatement.execute(ReturnStatement.java:68)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.Function.callImpl(Function.java:363)
    com.caucho.quercus.program.Function.callCopy(Function.java:297)
    com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:180)
    com.caucho.quercus.expr.FunctionExpr.evalCopy(FunctionExpr.java:150)
    com.caucho.quercus.expr.AssignExpr.eval(AssignExpr.java:86)
    com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.Function.callImpl(Function.java:363)
    com.caucho.quercus.program.Function.call(Function.java:292)
    com.caucho.quercus.expr.FunctionExpr.evalImpl(FunctionExpr.java:182)
    com.caucho.quercus.expr.FunctionExpr.eval(FunctionExpr.java:126)
    com.caucho.quercus.expr.Expr.evalBoolean(Expr.java:467)
    com.caucho.quercus.expr.NotExpr.evalBoolean(NotExpr.java:72)
    com.caucho.quercus.program.IfStatement.execute(IfStatement.java:80)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.IfStatement.execute(IfStatement.java:81)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:327)
    com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:71)
    com.caucho.quercus.env.Env.include(Env.java:4074)
    com.caucho.quercus.env.Env.includeOnce(Env.java:4025)
    com.caucho.quercus.expr.IncludeOnceExpr.eval(IncludeOnceExpr.java:89)
    com.caucho.quercus.program.ExprStatement.execute(ExprStatement.java:64)
    com.caucho.quercus.program.BlockStatement.execute(BlockStatement.java:105)
    com.caucho.quercus.program.QuercusProgram.execute(QuercusProgram.java:327)
    com.caucho.quercus.page.InterpretedPage.execute(InterpretedPage.java:71)
    com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119)
    com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:167)
    com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:407)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 

- Issue History
Date Modified Username Field Change
05-30-09 16:05 Taylor New Issue
07-20-09 09:29 Morbo Issue Monitored: Morbo
07-20-09 09:31 Morbo Note Added: 0004099


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
30 total queries executed.
26 unique queries executed.
Powered by Mantis Bugtracker