Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NoSuchMethodException in X509Utils.java #1265

Closed
mgliewe opened this issue Nov 25, 2020 · 6 comments
Closed

NoSuchMethodException in X509Utils.java #1265

mgliewe opened this issue Nov 25, 2020 · 6 comments

Comments

@mgliewe
Copy link

mgliewe commented Nov 25, 2020

Hi,

I'm getting constant reconnects with my configuration. while thats ok for most uses, its annoying when keping long term connections, as I do. (it will drop connection several times a day)

I see a Java Exception on a regular basis, several times a day.

Stacktrace from log below.

Is it possible there is some mixup with the Bounty Castle libtrary version in the build dependencies, as suggested in [1]?

greets
Mario Gliewe

[1] https://stackoverflow.com/questions/43878176/bouncy-castle-nosuchmethoderror-org-bouncycastle-asn1-asn1integer#--stacks-s-tooltip-gekl3li3

tested on ics/openvpn/v7.0.21 and Orbot 16.3.3-RC-1-tor-0.4.3.6 (both Playstore latest)
on Pixel 3a (Android 10 latest)

stacktrace:
2020-11-24 22:15:03 Getting X509 Name from certificate: com.android.org.bouncycastle.asn1.x509.X509Name.getInstance [class java.lang.Object]

java.lang.NoSuchMethodException: com.android.org.bouncycastle.asn1.x509.X509Name.getInstance [class java.lang.Object]
at java.lang.Class.getMethod(Class.java:2072)
at java.lang.Class.getMethod(Class.java:1693)
at de.blinkt.openvpn.core.X509Utils.getCertificateFriendlyName(X509Utils.java:136)
at de.blinkt.openvpn.core.X509Utils.getCertificateFriendlyName(X509Utils.java:82)
at de.blinkt.openvpn.views.FileSelectLayout.setData(FileSelectLayout.java:155)
at de.blinkt.openvpn.fragments.Settings_Basic.loadPreferences(Settings_Basic.java:182)
at de.blinkt.openvpn.fragments.KeyChainSettingsFragment.onStart(KeyChainSettingsFragment.kt:208)
at androidx.fragment.app.Fragment.performStart(Fragment.java:2730)
at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:365)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1194)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447)
at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2169)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1992)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1947)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1818)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:303)
at androidx.fragment.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:246)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
at android.view.View.measure(View.java:25086)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6872)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:25086)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6872)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
at android.view.View.measure(View.java:25086)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6872)
at androidx.appcompat.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:403)
at android.view.View.measure(View.java:25086)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6872)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:25086)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6872)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:25086)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6872)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:742)
at android.view.View.measure(View.java:25086)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3083)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1857)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2146)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1745)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7768)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:967)
at android.view.Choreographer.doCallbacks(Choreographer.java:791)
at android.view.Choreographer.doFrame(Choreographer.java:726)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

@mgliewe
Copy link
Author

mgliewe commented Nov 25, 2020

After reviewing the code and taken a closer look to the logfile, the reconnect are not related to above Exception.
I edited my initial report.

@mgliewe mgliewe changed the title constant reconnects due to NoSuchMethodException NoSuchMethodException in X509Utils.java Nov 25, 2020
@schwabe
Copy link
Owner

schwabe commented Nov 28, 2020

Hm the crash looks not connection related but editing the profile (Basic_settings in the stacktrace). Also the VPN connection is a different process and an UI should not disconnect it. For the crash I need something to reproduce it since I cannot reproduce this on my GOogle pixel devices.

@ridderr
Copy link

ridderr commented Feb 18, 2021

I do have the same errors. maybe my trace helps?

2021-02-18 17:54:42 Control Channel: TLSv1.2, cipher TLSv1.2 DHE-RSA-AES256-GCM-SHA384, peer certificate: 1024 bit RSA, signature: RSA-SHA256
2021-02-18 18:54:43 TLS: soft reset sec=3601/3600 bytes=69291678/-1 pkts=67405/0
2021-02-18 18:54:43 VERIFY KU OK
2021-02-18 18:54:43 Validating certificate extended key usage
2021-02-18 18:54:43 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
2021-02-18 18:54:43 VERIFY EKU OK
2021-02-18 18:54:43 VERIFY OK: depth=0, C=CN, ST=GD, L=ShenZhen, O=TP-Link, OU=SOHO-I18N, CN=server, emailAddress=xxxx@xxxx
2021-02-18 18:54:43 NOTE: Options consistency check may be skewed by version differences
2021-02-18 18:54:43 WARNING: 'version' is used inconsistently, local='version V4', remote='version V0 UNDEF'
2021-02-18 18:54:43 WARNING: 'dev-type' is present in local config but missing in remote config, local='dev-type tun'
2021-02-18 18:54:43 WARNING: 'link-mtu' is present in local config but missing in remote config, local='link-mtu 1558'
2021-02-18 18:54:43 WARNING: 'tun-mtu' is present in local config but missing in remote config, local='tun-mtu 1500'
2021-02-18 18:54:43 WARNING: 'comp-lzo' is present in local config but missing in remote config, local='comp-lzo'
2021-02-18 18:54:43 WARNING: 'auth' is present in local config but missing in remote config, local='auth SHA1'
2021-02-18 18:54:43 WARNING: 'keysize' is present in local config but missing in remote config, local='keysize 128'
2021-02-18 18:54:43 WARNING: 'tls-server' is present in local config but missing in remote config, local='tls-server'
2021-02-18 18:54:43 Outgoing Data Channel: Cipher 'AES-128-CBC' initialized with 128 bit key
2021-02-18 18:54:43 Outgoing Data Channel: Using 160 bit message hash 'SHA1' for HMAC authentication
2021-02-18 18:54:43 Incoming Data Channel: Cipher 'AES-128-CBC' initialized with 128 bit key
2021-02-18 18:54:43 Incoming Data Channel: Using 160 bit message hash 'SHA1' for HMAC authentication
2021-02-18 18:54:43 Control Channel: TLSv1.2, cipher TLSv1.2 DHE-RSA-AES256-GCM-SHA384, peer certificate: 1024 bit RSA, signature: RSA-SHA256
2021-02-18 18:58:12 Getting X509 Name from certificate: com.android.org.bouncycastle.asn1.x509.X509Name.getInstance [class java.lang.Object]

java.lang.NoSuchMethodException: com.android.org.bouncycastle.asn1.x509.X509Name.getInstance [class java.lang.Object]
at java.lang.Class.getMethod(Class.java:2072)
at java.lang.Class.getMethod(Class.java:1693)
at de.blinkt.openvpn.core.X509Utils.getCertificateFriendlyName(X509Utils.java:136)
at de.blinkt.openvpn.core.X509Utils.getCertificateFriendlyName(X509Utils.java:82)
at de.blinkt.openvpn.views.FileSelectLayout.setData(FileSelectLayout.java:155)
at de.blinkt.openvpn.fragments.Settings_Basic.loadPreferences(Settings_Basic.java:182)
at de.blinkt.openvpn.fragments.KeyChainSettingsFragment.onStart(KeyChainSettingsFragment.kt:208)
at androidx.fragment.app.Fragment.performStart(Fragment.java:2730)
at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:365)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1194)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447)
at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2169)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1992)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1947)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1818)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:303)
at androidx.fragment.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:246)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
at android.view.View.measure(View.java:26411)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:26411)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
at android.view.View.measure(View.java:26411)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
at androidx.appcompat.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:403)
at android.view.View.measure(View.java:26411)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:26411)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:26411)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:1050)
at android.view.View.measure(View.java:26411)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3638)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2373)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2665)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2225)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9126)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:999)
at android.view.Choreographer.doCallbacks(Choreographer.java:797)
at android.view.Choreographer.doFrame(Choreographer.java:732)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:984)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:8167)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)

@dmitrygribenchuk
Copy link

Hello. I have the same.

Android 11 (RP1A.200720.011)
MIUI 12.5.5
Redmi Redmi Note 8 Pro (begonia)
official build 0.7.30

I have I choose "check peer certificate fingerprint" and leave it blank I have a stack trace on connection:

2022-01-02 21:57:57 Getting X509 Name from certificate: com.android.org.bouncycastle.asn1.x509.X509Name.getInstance [class java.lang.Object]
java.lang.NoSuchMethodException: com.android.org.bouncycastle.asn1.x509.X509Name.getInstance [class java.lang.Object]
at java.lang.Class.getMethod(Class.java:2072)
at java.lang.Class.getMethod(Class.java:1693)
at de.blinkt.openvpn.core.X509Utils.getCertificateFriendlyName(X509Utils.java:136)
at de.blinkt.openvpn.core.X509Utils.getCertificateFriendlyName(X509Utils.java:82)
at de.blinkt.openvpn.views.FileSelectLayout.setData(FileSelectLayout.java:155)
at de.blinkt.openvpn.fragments.Settings_Basic.loadPreferences(Settings_Basic.java:192)
at de.blinkt.openvpn.fragments.KeyChainSettingsFragment.onStart(KeyChainSettingsFragment.kt:208)
at androidx.fragment.app.Fragment.performStart(Fragment.java:3021)
at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:589)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:300)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1971)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:311)
at androidx.fragment.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:249)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
at android.view.View.measure(View.java:26057)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7105)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:26057)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7105)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:145)
at android.view.View.measure(View.java:26057)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7105)
at androidx.appcompat.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:496)
at android.view.View.measure(View.java:26057)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7105)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:26057)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7105)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:26057)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7105)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:767)
at android.view.View.measure(View.java:26057)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3633)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2411)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2677)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2135)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8622)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:975)
at android.view.Choreographer.doCallbacks(Choreographer.java:799)
at android.view.Choreographer.doFrame(Choreographer.java:734)
at android.view.Choreog
rapher$FrameDisplayEventReceiver.run(Choreographer.java:960)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:8057)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)

2022-01-02 21:57:58 Getting X509 Name from certificate: com.android.org.bouncycastle.asn1.x509.X509Name.getInstance [class java.lang.Object]

java.lang.NoSuchMethodException: com.android.org.bouncycastle.asn1.x509.X509Name.getInstance [class java.lang.Object]
at java.lang.Class.getMethod(Class.java:2072)
at java.lang.Class.getMethod(Class.java:1693)
at de.blinkt.openvpn.core.X509Utils.getCertificateFriendlyName(X509Utils.java:136)
at de.blinkt.openvpn.fragments.KeyChainSettingsFragment$setCertificate$1.run(KeyChainSettingsFragment.kt:131)

@gokaybiz
Copy link

gokaybiz commented Mar 4, 2022

I have same issue also.

OS: Android 12
OVPN BUILD: 0.7.33

@Simthem
Copy link

Simthem commented Mar 10, 2022

I have same issue also.

OS: Android 12
OVPN BUILD: 0.7.33

Same for me and same environnement ..
But all was fine on Android 11 ..

laschico pushed a commit to laschico/ics-openvpn that referenced this issue Jul 21, 2022
czdawid pushed a commit to czdawid/ics-openvpn that referenced this issue Oct 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants