NativeScript / nativescript-app-encryption

This plugin encrypts all your app/**.js files during a release build. In experimental state.
Apache License 2.0
35 stars 6 forks source link

App crashed when build Android release version #5

Open pamontep opened 7 years ago

pamontep commented 7 years ago

As a subject, I tried to build Android version as a Release version. After that, My app was crashed when I open it. So, I tried to monitor this issue and get these error below.

Can pls help to suggest on this?

 --------- beginning of crash
03-15 22:42:18.640 3393-3393/com.abcdef.ghijkl E/AndroidRuntime: FATAL EXCEPTION: main
                                                                  Process: com.abcdef.ghijkl, PID: 3393
                                                                  java.lang.RuntimeException: Unable to create application com.tns.NativeScriptApplication: com.tns.NativeScriptException: 

                                                                  Error calling module function 

                                                                  Error: javax.crypto.BadPaddingException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
                                                                      com.android.org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(Native Method)
                                                                      com.android.org.conscrypt.OpenSSLCipher$EVP_CIPHER.doFinalInternal(OpenSSLCipher.java:568)
                                                                      com.android.org.conscrypt.OpenSSLCipher.engineDoFinal(OpenSSLCipher.java:350)
                                                                      javax.crypto.Cipher.doFinal(Cipher.java:2056)
                                                                      com.tns.app_protection.AppProtection.decrypt(AppProtection.java:30)
                                                                      com.tns.app_protection.AppProtection.decrypt(AppProtection.java:22)
                                                                      com.tns.Runtime.runModule(Native Method)
                                                                      com.tns.Runtime.runModule(Runtime.java:504)
                                                                      com.tns.Runtime.run(Runtime.java:499)
                                                                      com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
                                                                      android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
                                                                      android.app.ActivityThread.handleBindApplication(ActivityThread.java:5403)
                                                                      android.app.ActivityThread.-wrap2(ActivityThread.java)
                                                                      android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
                                                                      android.os.Handler.dispatchMessage(Handler.java:102)
                                                                      android.os.Looper.loop(Looper.java:154)
                                                                      android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                      java.lang.reflect.Method.invoke(Native Method)
                                                                      com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                      com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                  File: "file:///data/data/com.abcdef.ghijkl/files/app/tns_modules/nativescript-app-encryption/app-protection.js, line: 2, column: 47

                                                                  StackTrace: 
                                                                    Frame: function:'exports.decrypt', file:'file:///data/data/com.abcdef.ghijkl/files/app/tns_modules/nativescript-app-encryption/app-protection.js', line: 2, column: 48
                                                                    Frame: function:'', file:'', line: 1, column: 45
                                                                    Frame: function:'', file:'file:///data/data/com.abcdef.ghijkl/files/app/main.js', line: 1, column: 61
                                                                    Frame: function:'require', file:'', line: 1, column: 266

                                                                  Error: javax.crypto.BadPaddingException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
                                                                      com.android.org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(Native Method)
                                                                      com.android.org.conscrypt.OpenSSLCipher$EVP_CIPHER.doFinalInternal(OpenSSLCipher.java:568)
                                                                      com.android.org.conscrypt.OpenSSLCipher.engineDoFinal(OpenSSLCipher.java:350)
                                                                      javax.crypto.Cipher.doFinal(Cipher.java:2056)
                                                                      com.tns.app_protection.AppProtection.decrypt(AppProtection.java:30)
                                                                      com.tns.app_protection.AppProtection.decrypt(AppProtection.java:22)
                                                                      com.tns.Runtime.runModule(Native Method)
                                                                      com.tns.Runtime.runModule(Runtime.java:504)
                                                                      com.tns.Runtime.run(Runtime.java:499)
                                                                      com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
                                                                      android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
                                                                      android.app.ActivityThread.handleBindApplication(ActivityThread.java:5403)
                                                                      android.app.ActivityThread.-wrap2(ActivityThread.java)
                                                                      android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
                                                                      android.os.Handler.dispatchMessage(Handler.java:102)
                                                                      android.os.Looper.loop(Looper.java:154)
                                                                      android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                      java.lang.reflect.Method.invoke(Native Method)
                                                                      com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                      com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                  File: "<unknown>, line: 1, column: 265

                                                                  StackTrace: 
                                                                    Frame: function:'exports.decrypt', file:'file:///data/data/com.abcdef.ghijkl/files/app/tns_modules/nativescript-app-encryption/app-protection.js', line: 2, column: 48
                                                                    Frame: function:'', file:'', line: 1, column: 45
                                                                    Frame: function:'', file:'file:///data/data/com.abcdef.ghijkl/files/app/main.js', line: 1, column: 61
                                                                    Frame: function:'require', file:'', line: 1, column: 266
03-15 22:42:18.640 3393-3393/com.abcdef.ghijkl E/AndroidRuntime:     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5406)
                                                                      at android.app.ActivityThread.-wrap2(ActivityThread.java)
                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
                                                                      at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                      at android.os.Looper.loop(Looper.java:154)
                                                                      at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                      at java.lang.reflect.Method.invoke(Native Method)
                                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                   Caused by: com.tns.NativeScriptException: 

                                                                  Error calling module function 

                                                                  Error: javax.crypto.BadPaddingException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
                                                                      com.android.org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(Native Method)
                                                                      com.android.org.conscrypt.OpenSSLCipher$EVP_CIPHER.doFinalInternal(OpenSSLCipher.java:568)
                                                                      com.android.org.conscrypt.OpenSSLCipher.engineDoFinal(OpenSSLCipher.java:350)
                                                                      javax.crypto.Cipher.doFinal(Cipher.java:2056)
                                                                      com.tns.app_protection.AppProtection.decrypt(AppProtection.java:30)
                                                                      com.tns.app_protection.AppProtection.decrypt(AppProtection.java:22)
                                                                      com.tns.Runtime.runModule(Native Method)
                                                                      com.tns.Runtime.runModule(Runtime.java:504)
                                                                      com.tns.Runtime.run(Runtime.java:499)
                                                                      com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
                                                                      android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
                                                                      android.app.ActivityThread.handleBindApplication(ActivityThread.java:5403)
                                                                      android.app.ActivityThread.-wrap2(ActivityThread.java)
                                                                      android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
                                                                      android.os.Handler.dispatchMessage(Handler.java:102)
                                                                      android.os.Looper.loop(Looper.java:154)
                                                                      android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                      java.lang.reflect.Method.invoke(Native Method)
                                                                      com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                      com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                  File: "file:///data/data/com.abcdef.ghijkl/files/app/tns_modules/nativescript-app-encryption/app-protection.js, line: 2, column: 47

                                                                  StackTrace: 
                                                                    Frame: function:'exports.decrypt', file:'file:///data/data/com.abcdef.ghijkl/files/app/tns_modules/nativescript-app-encryption/app-protection.js', line: 2, column: 48
                                                                    Frame: function:'', file:'', line: 1, column: 45
                                                                    Frame: function:'', file:'file:///data/data/com.abcdef.ghijkl/files/app/main.js', line: 1, column: 61
                                                                    Frame: function:'require', file:'', line: 1, column: 266

                                                                  Error: javax.crypto.BadPaddingException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
                                                                      com.android.org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(Native Method)
                                                                      com.android.org.conscrypt.OpenSSLCipher$EVP_CIPHER.doFinalInternal(OpenSSLCipher.java:568)
                                                                      com.android.org.conscrypt.OpenSSLCipher.engineDoFinal(OpenSSLCipher.java:350)
                                                                      javax.crypto.Cipher.doFinal(Cipher.java:2056)
                                                                      com.tns.app_protection.AppProtection.decrypt(AppProtection.java:30)
                                                                      com.tns.app_protection.AppProtection.decrypt(AppProtection.java:22)
                                                                      com.tns.Runtime.runModule(Native Method)
                                                                      com.tns.Runtime.runModule(Runtime.java:504)
                                                                      com.tns.Runtime.run(Runtime.java:499)
                                                                      com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
                                                                      android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
                                                                      android.app.ActivityThread.handleBindApplication(ActivityThread.java:5403)
                                                                      android.app.ActivityThread.-wrap2(ActivityThread.java)
                                                                      android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
                                                                      android.os.Handler.dispatchMessage(Handler.java:102)
                                                                      android.os.Looper.loop(Looper.java:154)
                                                                      android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                      java.lang.reflect.Method.invoke(Native Method)
                                                                      com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
03-15 22:42:18.640 3393-3393/com.abcdef.ghijkl E/AndroidRuntime:     com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                  File: "<unknown>, line: 1, column: 265

                                                                  StackTrace: 
                                                                    Frame: function:'exports.decrypt', file:'file:///data/data/com.abcdef.ghijkl/files/app/tns_modules/nativescript-app-encryption/app-protection.js', line: 2, column: 48
                                                                    Frame: function:'', file:'', line: 1, column: 45
                                                                    Frame: function:'', file:'file:///data/data/com.abcdef.ghijkl/files/app/main.js', line: 1, column: 61
                                                                    Frame: function:'require', file:'', line: 1, column: 266

                                                                      at com.tns.Runtime.runModule(Native Method)
                                                                      at com.tns.Runtime.runModule(Runtime.java:504)
                                                                      at com.tns.Runtime.run(Runtime.java:499)
                                                                      at com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
                                                                      at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
                                                                      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5403)
                                                                        ... 8 more
03-15 22:42:18.641 3393-3393/com.abcdef.ghijkl D/Error: ERR: exClass=com.tns.NativeScriptException
03-15 22:42:18.641 3393-3393/com.abcdef.ghijkl D/Error: ERR: exMsg=

                                                         Error calling module function 

                                                         Error: javax.crypto.BadPaddingException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
                                                             com.android.org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(Native Method)
                                                             com.android.org.conscrypt.OpenSSLCipher$EVP_CIPHER.doFinalInternal(OpenSSLCipher.java:568)
                                                             com.android.org.conscrypt.OpenSSLCipher.engineDoFinal(OpenSSLCipher.java:350)
                                                             javax.crypto.Cipher.doFinal(Cipher.java:2056)
                                                             com.tns.app_protection.AppProtection.decrypt(AppProtection.java:30)
                                                             com.tns.app_protection.AppProtection.decrypt(AppProtection.java:22)
                                                             com.tns.Runtime.runModule(Native Method)
                                                             com.tns.Runtime.runModule(Runtime.java:504)
                                                             com.tns.Runtime.run(Runtime.java:499)
                                                             com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
                                                             android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
                                                             android.app.ActivityThread.handleBindApplication(ActivityThread.java:5403)
                                                             android.app.ActivityThread.-wrap2(ActivityThread.java)
                                                             android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
                                                             android.os.Handler.dispatchMessage(Handler.java:102)
                                                             android.os.Looper.loop(Looper.java:154)
                                                             android.app.ActivityThread.main(ActivityThread.java:6119)
                                                             java.lang.reflect.Method.invoke(Native Method)
                                                             com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                             com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                         File: "file:///data/data/com.abcdef.ghijkl/files/app/tns_modules/nativescript-app-encryption/app-protection.js, line: 2, column: 47

                                                         StackTrace: 
                                                            Frame: function:'exports.decrypt', file:'file:///data/data/com.abcdef.ghijkl/files/app/tns_modules/nativescript-app-encryption/app-protection.js', line: 2, column: 48
                                                            Frame: function:'', file:'', line: 1, column: 45
                                                            Frame: function:'', file:'file:///data/data/com.abcdef.ghijkl/files/app/main.js', line: 1, column: 61
                                                            Frame: function:'require', file:'', line: 1, column: 266

                                                         Error: javax.crypto.BadPaddingException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
                                                             com.android.org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(Native Method)
                                                             com.android.org.conscrypt.OpenSSLCipher$EVP_CIPHER.doFinalInternal(OpenSSLCipher.java:568)
                                                             com.android.org.conscrypt.OpenSSLCipher.engineDoFinal(OpenSSLCipher.java:350)
                                                             javax.crypto.Cipher.doFinal(Cipher.java:2056)
                                                             com.tns.app_protection.AppProtection.decrypt(AppProtection.java:30)
                                                             com.tns.app_protection.AppProtection.decrypt(AppProtection.java:22)
                                                             com.tns.Runtime.runModule(Native Method)
                                                             com.tns.Runtime.runModule(Runtime.java:504)
                                                             com.tns.Runtime.run(Runtime.java:499)
                                                             com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
                                                             android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
                                                             android.app.ActivityThread.handleBindApplication(ActivityThread.java:5403)
                                                             android.app.ActivityThread.-wrap2(ActivityThread.java)
                                                             android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
                                                             android.os.Handler.dispatchMessage(Handler.java:102)
                                                             android.os.Looper.loop(Looper.java:154)
                                                             android.app.ActivityThread.main(ActivityThread.java:6119)
                                                             java.lang.reflect.Method.invoke(Native Method)
                                                             com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                             com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                         File: "<unknown>, line: 1, column: 265

                                                         StackTrace: 
                                                            Frame: function:'exports.decrypt', file:'file:///data/data/com.abcdef.ghijkl/files/app/tns_modules/nativescript-app-encryption/app-protection.js', line: 2, column: 48
                                                            Frame: function:'', file:'', line: 1, column: 45
                                                            Frame: function:'', file:'file:///data/data/com.abcdef.ghijkl/files/app/main.js', line: 1, column: 61
                                                            Frame: function:'require', file:'', line: 1, column: 266
03-15 22:42:18.641 3393-3393/com.abcdef.ghijkl D/Error: ERR: file=Runtime.java
03-15 22:42:18.641 3393-3393/com.abcdef.ghijkl D/Error: ERR: class=com.tns.Runtime
03-15 22:42:18.641 3393-3393/com.abcdef.ghijkl D/Error: ERR: method=runModule line=-2
03-15 22:42:18.641 3393-3393/com.abcdef.ghijkl D/Error: ERR: stack=java.lang.RuntimeException: Unable to create application com.tns.NativeScriptApplication: com.tns.NativeScriptException: 

                                                         Error calling module function 

                                                         Error: javax.crypto.BadPaddingException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
                                                             com.android.org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(Native Method)
                                                             com.android.org.conscrypt.OpenSSLCipher$EVP_CIPHER.doFinalInternal(OpenSSLCipher.java:568)
                                                             com.android.org.conscrypt.OpenSSLCipher.engineDoFinal(OpenSSLCipher.java:350)
                                                             javax.crypto.Cipher.doFinal(Cipher.java:2056)
                                                             com.tns.app_protection.AppProtection.decrypt(AppProtection.java:30)
                                                             com.tns.app_protection.AppProtection.decrypt(AppProtection.java:22)
                                                             com.tns.Runtime.runModule(Native Method)
                                                             com.tns.Runtime.runModule(Runtime.java:504)
                                                             com.tns.Runtime.run(Runtime.java:499)
                                                             com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
                                                             android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
                                                             android.app.ActivityThread.handleBindApplication(ActivityThread.java:5403)
                                                             android.app.ActivityThread.-wrap2(ActivityThread.java)
                                                             android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
                                                             android.os.Handler.dispatchMessage(Handler.java:102)
                                                             android.os.Looper.loop(Looper.java:154)
                                                             android.app.ActivityThread.main(ActivityThread.java:6119)
                                                             java.lang.reflect.Method.invoke(Native Method)
                                                             com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                             com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                         File: "file:///data/data/com.abcdef.ghijkl/files/app/tns_modules/nativescript-app-encryption/app-protection.js, line: 2, column: 47

                                                         StackTrace: 
                                                            Frame: function:'exports.decrypt', file:'file:///data/data/com.abcdef.ghijkl/files/app/tns_modules/nativescript-app-encryption/app-protection.js', line: 2, column: 48
                                                            Frame: function:'', file:'', line: 1, column: 45
                                                            Frame: function:'', file:'file:///data/data/com.abcdef.ghijkl/files/app/main.js', line: 1, column: 61
                                                            Frame: function:'require', file:'', line: 1, column: 266

                                                         Error: javax.crypto.BadPaddingException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT
                                                             com.android.org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(Native Method)
                                                             com.android.org.conscrypt.OpenSSLCipher$EVP_CIPHER.doFinalInternal(OpenSSLCipher.java:568)
                                                             com.android.org.conscrypt.OpenSSLCipher.engineDoFinal(OpenSSLCipher.java:350)
                                                             javax.crypto.Cipher.doFinal(Cipher.java:2056)
                                                             com.tns.app_protection.AppProtection.decrypt(AppProtection.java:30)
                                                             com.tns.app_protection.AppProtection.decrypt(AppProtection.java:22)
                                                             com.tns.Runtime.runModule(Native Method)
                                                             com.tns.Runtime.runModule(Runtime.java:504)
                                                             com.tns.Runtime.run(Runtime.java:499)
                                                             com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
                                                             android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
                                                             android.app.ActivityThread.handleBindApplication(ActivityThread.java:5403)
                                                             android.app.ActivityThread.-wrap2(ActivityThread.java)
                                                             android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
                                                             android.os.Handler.dispatchMessage(Handler.java:102)
                                                             android.os.Looper.loop(Looper.java:154)
                                                             android.app.ActivityThread.main(ActivityThread.java:6119)
                                                             java.lang.reflect.Method.invoke(Native Method)
                                                             com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                             com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                         File: "<unknown>, line: 1, column: 265

                                                         StackTrace: 
                                                            Frame: function:'exports.decrypt', file:'file:///data/data/com.abcdef.ghijkl/files/app/tns_modules/nativescript-app-encryption/app-protection.js', line: 2, column: 48
                                                            Frame: function:'', file:'', line: 1, column: 45
                                                            Frame: function:'', file:'file:///data/data/com.abcdef.ghijkl/files/app/main.js', line: 1, column: 61
                                                            Frame: function:'require', file:'', line: 1, column: 266

                                                             at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5406)
                                                            at andro
03-15 22:42:18.641 3393-3393/com.abcdef.ghijkl D/Error: ERR: TOTAL BYTES WRITTEN: 25460
03-15 22:42:18.643 1525-1540/system_process W/ActivityManager:   Force finishing activity com.abcdef.ghijkl/com.tns.NativeScriptActivity
priyangamani commented 7 years ago

I'm also getting this error.Is there any solution for this??

guilhermesgb commented 6 years ago

I also get this exact same issue using some other library (https://github.com/ryan652/EasyCrypt). Decryption worked on older Android versions and stopped working on newer ones. And I'm assuming you also had proguard enabled (since you were building a release apk).

nicolasthemmer-aaa commented 4 years ago

Having the same issue when upgrading from andorid 9 to android 10. encrypting my data in andorid 9 leads to a byte[] of size 2000 while encrypting it in android 10 leads to a size of 2032. encryption on different versions lead to different array sizes, therefore decrypting my (android 9 encrypted) data on andorid 10 won't work because it expects a different size. I still don't now why this happens 1and how to workaround this issue...