Invalid TLS padding data

The worst monsters in the Hearthlands warp the fabric of space and time...
animary
Posts: 442
Joined: Wed Feb 23, 2011 4:05 am
Location: Ohio

Invalid TLS padding data

Post by animary »

Trying to access Haven&Hearth from a different computer (Vista 32 desktop) throws this long-winded message about "Invalid TLS padding data". No problems connecting on this laptop, both systems hooked to same router/modem. So how do I get valid TLS padding data?

Code: Select all

java.lang.RuntimeException: javax.net.ssl.SSLException: Invalid TLS padding data
	at haven.launcher.Driver.execute(Driver.java:91)
	at haven.launcher.Driver.run(Driver.java:108)
	at haven.launcher.Driver.main(Driver.java:193)
Caused by: javax.net.ssl.SSLException: Invalid TLS padding data
	at sun.security.ssl.Alerts.getSSLException(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
	at sun.security.ssl.AppInputStream.read(Unknown Source)
	at java.io.BufferedInputStream.read1(Unknown Source)
	at java.io.BufferedInputStream.read(Unknown Source)
	at sun.net.www.MeteredStream.read(Unknown Source)
	at java.io.FilterInputStream.read(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
	at haven.launcher.Cache.update0(Cache.java:270)
	at haven.launcher.Cache.update(Cache.java:332)
	at haven.launcher.Resource.update(Resource.java:69)
	at haven.launcher.Driver.execute(Driver.java:48)
	... 2 more
	Suppressed: javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: Invalid TLS padding data
		at sun.security.ssl.SSLSocketImpl.checkEOF(Unknown Source)
		at sun.security.ssl.AppInputStream.available(Unknown Source)
		at java.io.BufferedInputStream.available(Unknown Source)
		at sun.net.www.MeteredStream.available(Unknown Source)
		at sun.net.www.http.KeepAliveStream.close(Unknown Source)
		at java.io.FilterInputStream.close(Unknown Source)
		at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close(Unknown Source)
		at haven.launcher.Cache.update0(Cache.java:276)
		... 5 more
	[CIRCULAR REFERENCE:javax.net.ssl.SSLException: Invalid TLS padding data]
	Suppressed: javax.net.ssl.SSLException: Invalid TLS padding data
		... 17 more
		Suppressed: javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: Invalid TLS padding data
			at sun.security.ssl.SSLSocketImpl.checkEOF(Unknown Source)
			at sun.security.ssl.AppInputStream.available(Unknown Source)
			at java.io.BufferedInputStream.available(Unknown Source)
			at sun.net.www.MeteredStream.available(Unknown Source)
			at sun.net.www.http.KeepAliveStream.close(Unknown Source)
			at java.io.FilterInputStream.close(Unknown Source)
			at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close(Unknown Source)
			at haven.launcher.Cache.update0(Cache.java:276)
			... 5 more
	[CIRCULAR REFERENCE:javax.net.ssl.SSLException: Invalid TLS padding data]
	Caused by: javax.crypto.BadPaddingException: Invalid TLS padding data
		at sun.security.ssl.CipherBox.removePadding(Unknown Source)
		at sun.security.ssl.CipherBox.decrypt(Unknown Source)
		at sun.security.ssl.InputRecord.decrypt(Unknown Source)
		... 15 more
	Suppressed: javax.net.ssl.SSLException: Invalid TLS padding data
		... 17 more
		Suppressed: javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: Invalid TLS padding data
			at sun.security.ssl.SSLSocketImpl.checkEOF(Unknown Source)
			at sun.security.ssl.AppInputStream.available(Unknown Source)
			at java.io.BufferedInputStream.available(Unknown Source)
			at sun.net.www.MeteredStream.available(Unknown Source)
			at sun.net.www.http.KeepAliveStream.close(Unknown Source)
			at java.io.FilterInputStream.close(Unknown Source)
			at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close(Unknown Source)
			at haven.launcher.Cache.update0(Cache.java:276)
			... 5 more
	[CIRCULAR REFERENCE:javax.net.ssl.SSLException: Invalid TLS padding data]
	Caused by: javax.crypto.BadPaddingException: Invalid TLS padding data
		at sun.security.ssl.CipherBox.removePadding(Unknown Source)
		at sun.security.ssl.CipherBox.decrypt(Unknown Source)
		at sun.security.ssl.InputRecord.decrypt(Unknown Source)
		... 15 more
Caused by: javax.crypto.BadPaddingException: Invalid TLS padding data
	at sun.security.ssl.CipherBox.removePadding(Unknown Source)
	at sun.security.ssl.CipherBox.decrypt(Unknown Source)
	at sun.security.ssl.InputRecord.decrypt(Unknown Source)
	... 15 more
Last edited by loftar on Mon Jun 07, 2021 12:02 am, edited 1 time in total.
Reason: Added code tags
User avatar
loftar
Posts: 9096
Joined: Fri Apr 03, 2009 7:05 am
Location: Your character database

Re: Invalid TLS padding data

Post by loftar »

I'm not really sure what might cause that, but as a random guess, are you perhaps using some outdated version of Java that isn't up to the latest TLS specs?
"Object-oriented design is the roman numerals of computing." -- Rob Pike
animary
Posts: 442
Joined: Wed Feb 23, 2011 4:05 am
Location: Ohio

Re: Invalid TLS padding data

Post by animary »

Updated Java. Now get this message:

Code: Select all

java.lang.RuntimeException: javax.net.ssl.SSLException: javax.crypto.AEADBadTagException: Tag mismatch!
	at haven.launcher.Driver.execute(Driver.java:91)
	at haven.launcher.Driver.run(Driver.java:108)
	at haven.launcher.Driver.main(Driver.java:193)
Caused by: javax.net.ssl.SSLException: javax.crypto.AEADBadTagException: Tag mismatch!
	at sun.security.ssl.Alert.createSSLException(Unknown Source)
	at sun.security.ssl.TransportContext.fatal(Unknown Source)
	at sun.security.ssl.TransportContext.fatal(Unknown Source)
	at sun.security.ssl.TransportContext.fatal(Unknown Source)
	at sun.security.ssl.SSLTransport.decode(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.decode(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.readApplicationRecord(Unknown Source)
	at sun.security.ssl.SSLSocketImpl.access$300(Unknown Source)
	at sun.security.ssl.SSLSocketImpl$AppInputStream.read(Unknown Source)
	at java.io.BufferedInputStream.read1(Unknown Source)
	at java.io.BufferedInputStream.read(Unknown Source)
	at sun.net.www.MeteredStream.read(Unknown Source)
	at java.io.FilterInputStream.read(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
	at haven.launcher.Cache.update0(Cache.java:270)
	at haven.launcher.Cache.update(Cache.java:332)
	at haven.launcher.Resource.update(Resource.java:69)
	at haven.launcher.Driver.execute(Driver.java:48)
	... 2 more
	Suppressed: javax.net.ssl.SSLException: javax.crypto.AEADBadTagException: Tag mismatch!
		... 21 more
	Caused by: javax.crypto.AEADBadTagException: Tag mismatch!
		at com.sun.crypto.provider.GaloisCounterMode.decryptFinal(GaloisCounterMode.java:620)
		at com.sun.crypto.provider.CipherCore.finalNoPadding(CipherCore.java:1116)
		at com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:1053)
		at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:941)
		at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:491)
		at javax.crypto.CipherSpi.bufferCrypt(CipherSpi.java:779)
		at javax.crypto.CipherSpi.engineDoFinal(CipherSpi.java:730)
		at javax.crypto.Cipher.doFinal(Cipher.java:2463)
		at sun.security.ssl.SSLCipher$T12GcmReadCipherGenerator$GcmReadCipher.decrypt(Unknown Source)
		at sun.security.ssl.SSLSocketInputRecord.decodeInputRecord(Unknown Source)
		at sun.security.ssl.SSLSocketInputRecord.decode(Unknown Source)
		... 17 more
	Suppressed: javax.net.ssl.SSLException: javax.crypto.AEADBadTagException: Tag mismatch!
		... 21 more
	Caused by: javax.crypto.AEADBadTagException: Tag mismatch!
		at com.sun.crypto.provider.GaloisCounterMode.decryptFinal(GaloisCounterMode.java:620)
		at com.sun.crypto.provider.CipherCore.finalNoPadding(CipherCore.java:1116)
		at com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:1053)
		at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:941)
		at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:491)
		at javax.crypto.CipherSpi.bufferCrypt(CipherSpi.java:779)
		at javax.crypto.CipherSpi.engineDoFinal(CipherSpi.java:730)
		at javax.crypto.Cipher.doFinal(Cipher.java:2463)
		at sun.security.ssl.SSLCipher$T12GcmReadCipherGenerator$GcmReadCipher.decrypt(Unknown Source)
		at sun.security.ssl.SSLSocketInputRecord.decodeInputRecord(Unknown Source)
		at sun.security.ssl.SSLSocketInputRecord.decode(Unknown Source)
		... 17 more
Caused by: javax.crypto.AEADBadTagException: Tag mismatch!
	at com.sun.crypto.provider.GaloisCounterMode.decryptFinal(GaloisCounterMode.java:620)
	at com.sun.crypto.provider.CipherCore.finalNoPadding(CipherCore.java:1116)
	at com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:1053)
	at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:941)
	at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:491)
	at javax.crypto.CipherSpi.bufferCrypt(CipherSpi.java:779)
	at javax.crypto.CipherSpi.engineDoFinal(CipherSpi.java:730)
	at javax.crypto.Cipher.doFinal(Cipher.java:2463)
	at sun.security.ssl.SSLCipher$T12GcmReadCipherGenerator$GcmReadCipher.decrypt(Unknown Source)
	at sun.security.ssl.SSLSocketInputRecord.decodeInputRecord(Unknown Source)
	at sun.security.ssl.SSLSocketInputRecord.decode(Unknown Source)
	... 17 more
Last edited by loftar on Tue Jun 08, 2021 1:08 am, edited 1 time in total.
Reason: Added code tags
User avatar
loftar
Posts: 9096
Joined: Fri Apr 03, 2009 7:05 am
Location: Your character database

Re: Invalid TLS padding data

Post by loftar »

That really is weird, especially that it fails in a different way. I'm really not at all sure how to even debug that without being able to reproduce it locally so that I could run an interactive debugger through it.

Could it possibly be that you have some "transparent" HTTP proxy (or some software with a similar effect) running that could corrupt the TLS traffic? I wouldn't really know exactly what to look for, I'm just grasping at straws.
"Object-oriented design is the roman numerals of computing." -- Rob Pike
animary
Posts: 442
Joined: Wed Feb 23, 2011 4:05 am
Location: Ohio

Re: Invalid TLS padding data

Post by animary »

I am of little help here as I've no idea what "TLS" is, nor a "transparent proxy". I can say I played H&H on this system years ago; recently pulled it out of mothballs, replaced the power supply and vid card, and put it back in service ...so everything on it is three years out of date. Updated all drivers, antivirus, and java. Only suspects I can think of are firewall (PC Tools Firewall Plus) and antivirus (Kaspersky).
animary
Posts: 442
Joined: Wed Feb 23, 2011 4:05 am
Location: Ohio

Re: Invalid TLS padding data

Post by animary »

Have tried with firewall and Kaspersky temporarily disabled, no difference, still throws that error. Windows title bar shows it as "launcher error!".

Have searched "SSLException: javax.crypto.AEADBadTagException: Tag mismatch!" and all results are quite developer oriented, I don't understand a word of it.
animary
Posts: 442
Joined: Wed Feb 23, 2011 4:05 am
Location: Ohio

Re: Invalid TLS padding data

Post by animary »

Someone suggested copying the launcher folder from laptop to desktop; tried that and get a different error:

java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jre1.8.0_291\bin\management.dll: The specified procedure could not be found
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.management.ManagementFactoryHelper$4.run(Unknown Source)
at sun.management.ManagementFactoryHelper$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.management.ManagementFactoryHelper.<clinit>(Unknown Source)
at java.lang.management.ManagementFactory.getThreadMXBean(Unknown Source)
at haven.DeadlockWatchdog.run(DeadlockWatchdog.java:84)

FWIW, the "unsatisfied link" is same path on both systems.
User avatar
loftar
Posts: 9096
Joined: Fri Apr 03, 2009 7:05 am
Location: Your character database

Re: Invalid TLS padding data

Post by loftar »

animary wrote:java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jre1.8.0_291\bin\management.dll: The specified procedure could not be found
That makes it sound as if you have some sort of problem with your Java installation. Not sure exactly what, but I'd try reinstalling it. You might also try OpenJDK instead of Oracle's JRE, see if that makes a difference (just avoid version 16, since it has become incompatible with Java OpenGL).
"Object-oriented design is the roman numerals of computing." -- Rob Pike
animary
Posts: 442
Joined: Wed Feb 23, 2011 4:05 am
Location: Ohio

Re: Invalid TLS padding data

Post by animary »

It seems that error is endemic to Java 8, I found several threads regarding it while researching this irritant. So, I removed Java 8, also some orphan registry entries for Java 7, reboot and start from scratch. Downloaded openlogic-openjdk-8u262-b10-win-32, extracted it to Program Files and, according to install instructions, added that path to environment variables. Typing "java -version" at command prompt gives "openjdk version 1.8.0-262". Associate .jar file with java.exe, double click autohaven.jar and a blank window opens briefly with the path in the title bar, that's all. Now what?
animary
Posts: 442
Joined: Wed Feb 23, 2011 4:05 am
Location: Ohio

Re: Invalid TLS padding data

Post by animary »

More research, unfortunately most of what I find is written from a developer's standpoint, not an end user.
Tried running from a command prompt: java -jar autohaven.jar

and get this:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Program Files\open
logic-openjdk-8u262-b10-win-32\jre\bin\freetype.dll: Can't find dependent librar
ies
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1838)
at java.lang.Runtime.loadLibrary0(Runtime.java:871)
at java.lang.System.loadLibrary(System.java:1124)
at sun.font.FontManagerNativeLibrary$1.run(FontManagerNativeLibrary.java
:59)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.FontManagerNativeLibrary.<clinit>(FontManagerNativeLibrary.j
ava:32)
at sun.font.SunFontManager$1.run(SunFontManager.java:339)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.SunFontManager.<clinit>(SunFontManager.java:335)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:82)
at java.security.AccessController.doPrivileged(Native Method)
at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
at java.awt.Font.getFont2D(Font.java:491)
at java.awt.Font.access$000(Font.java:224)
at java.awt.Font$FontAccessImpl.getFont2D(Font.java:228)
at sun.font.FontUtilities.getFont2D(FontUtilities.java:180)
at sun.font.FontUtilities.fontSupportsDefaultEncoding(FontUtilities.java
:338)
at com.sun.java.swing.plaf.windows.WindowsLookAndFeel$WindowsFontPropert
y.configureValue(WindowsLookAndFeel.java:2293)
at com.sun.java.swing.plaf.windows.DesktopProperty.createValue(DesktopPr
operty.java:154)
at javax.swing.UIDefaults.getFromHashtable(UIDefaults.java:231)
at javax.swing.UIDefaults.get(UIDefaults.java:161)
at javax.swing.MultiUIDefaults.get(MultiUIDefaults.java:64)
at javax.swing.UIDefaults.getFont(UIDefaults.java:388)
at javax.swing.UIManager.getFont(UIManager.java:672)
at javax.swing.LookAndFeel.installColorsAndFont(LookAndFeel.java:208)
at javax.swing.plaf.basic.BasicPanelUI.installDefaults(BasicPanelUI.java
:66)
at javax.swing.plaf.basic.BasicPanelUI.installUI(BasicPanelUI.java:56)
at javax.swing.JComponent.setUI(JComponent.java:666)
at javax.swing.JPanel.setUI(JPanel.java:153)
at javax.swing.JPanel.updateUI(JPanel.java:126)
at javax.swing.JPanel.<init>(JPanel.java:86)
at javax.swing.JPanel.<init>(JPanel.java:109)
at javax.swing.JPanel.<init>(JPanel.java:117)
at javax.swing.JRootPane.createGlassPane(JRootPane.java:546)
at javax.swing.JRootPane.<init>(JRootPane.java:366)
at javax.swing.JFrame.createRootPane(JFrame.java:286)
at javax.swing.JFrame.frameInit(JFrame.java:267)
at javax.swing.JFrame.<init>(JFrame.java:234)
at haven.launcher.AWTStatus.<init>(AWTStatus.java:52)
at haven.launcher.Driver.main(Driver.java:101)

Return to “Bugs”