<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	    <channel>
        <title>Prosys Forum - Forum: OPC UA SDK for Java</title>
        <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/</link>
        <description><![CDATA[Prosys OPC &#038; OPC UA related discussion]]></description>
        <generator>Simple:Press Version 6.11.14</generator>
        <atom:link href="https://forum.prosysopc.com/forum/opc-ua-java-sdk/rss/" rel="self" type="application/rss+xml"/>
		                <item>
                    <title>rocket science on Question about ApplicationIdentity constructor with keyStoreType parameter</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/question-about-applicationidentity-constructor-with-keystoretype-parameter/#p7563</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/question-about-applicationidentity-constructor-with-keystoretype-parameter/#p7563</guid>
					                        <description><![CDATA[<p>Thank you so much for providing the beta version that quick.</p>
<p>I've tested it and worked 😉</p>
]]></description>
					                    <pubDate>Mon, 11 May 2026 14:42:55 +0300</pubDate>
                </item>
				                <item>
                    <title>rocket science on Question about ApplicationIdentity constructor with keyStoreType parameter</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/question-about-applicationidentity-constructor-with-keystoretype-parameter/#p7562</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/question-about-applicationidentity-constructor-with-keystoretype-parameter/#p7562</guid>
					                        <description><![CDATA[<p>Thanks for your tests and explanations!</p>
]]></description>
					                    <pubDate>Fri, 08 May 2026 20:53:01 +0300</pubDate>
                </item>
				                <item>
                    <title>Bjarne Boström on Question about ApplicationIdentity constructor with keyStoreType parameter</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/question-about-applicationidentity-constructor-with-keystoretype-parameter/#p7561</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/question-about-applicationidentity-constructor-with-keystoretype-parameter/#p7561</guid>
					                        <description><![CDATA[<p>Few tests later<br />
...<br />
So, it would seem the wrong-things working was not what I assumed. It is 2 things. It would seem PKCS12 in the Java world doesn't use private key passwords, only the store ones, <a href="https://bugs.openjdk.org/browse/JDK-8008292" rel="nofollow" target="_blank"><a href="https://bugs.openjdk.org/brows" rel="nofollow">https://bugs.openjdk.org/brows</a>.....DK-8008292</a>, also <a href="https://docs.oracle.com/en/middleware/standalone/weblogic-server/14.1.1.0/secmg/identity_trust.html" rel="nofollow" target="_blank"><a href="https://docs.oracle.com/en/mid" rel="nofollow">https://docs.oracle.com/en/mid</a>.....trust.html</a><br />
"For PKCS12 keystores, keytool does not support different keystore and key passwords and uses the keystore password to persist the key. If you specify a password using the -keypass option and it differs from the password specified for the -storepass option, keytool displays a warning and ignores the keypass value. "</p>
<p>Also, for this reason I believe BouncyCastle will also ignore it, <a href="https://github.com/bcgit/bc-java/blob/e25720be800c21724dc16d3a13adb2a2fb587de6/prov/src/main/java/org/bouncycastle/jcajce/provider/keystore/pkcs12/PKCS12KeyStoreSpi.java#L536" rel="nofollow" target="_blank"><a href="https://github.com/bcgit/bc-ja" rel="nofollow">https://github.com/bcgit/bc-ja</a>......java#L536</a> in the engineGetKey method.</p>
<p>So that explains why the privateKeyPassword does nothing and only the store password matters. However, based on my tests a JKS store can use both.</p>
<p>Then separate to this for the alias thing. SecureIdentity constructor has more documentation, <a href="https://documentation.prosysopc.com/JSDK/javadoc/com/prosysopc/ua/SecureIdentity.html#SecureIdentity-java.io.File-java.lang.String-java.lang.String-java.lang.String-java.lang.String-" rel="nofollow" target="_blank"><a href="https://documentation.prosysop" rel="nofollow">https://documentation.prosysop</a>.....ng.String-</a>   the com.prosysopc.ua.ApplicationIdentity.ApplicationIdentity(File, String, String, String, String) does call this super constructor. There is a mention "alias - string alias of the key pair, if null or not found in specified pfx-file, last entry is used". This something very old, but I would believe the intention is that .NET world used pfx files, but not in a way that there would be more than a single key so rather than fail it will fall back to the only key there is anyway. Since you probably as well have only a single key there, it is always found regardless of the alias.</p>
]]></description>
					                    <pubDate>Fri, 08 May 2026 18:41:55 +0300</pubDate>
                </item>
				                <item>
                    <title>Bjarne Boström on Cannot resolve windows console charset CP850</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/cannot-resolve-windows-console-charset-cp850/#p7560</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/cannot-resolve-windows-console-charset-cp850/#p7560</guid>
					                        <description><![CDATA[<p>We will add logic to handle the dot output.</p>
<p>P.S.<br />
One extra note for future readers. This was a DEBUG level log. On failure it should use Charset.defaultCharset() as a fallback. With that there would only be issues if there are non-ASCII characters in the outputs.</p>
]]></description>
					                    <pubDate>Fri, 08 May 2026 18:19:33 +0300</pubDate>
                </item>
				                <item>
                    <title>Bjarne Boström on Question about ApplicationIdentity constructor with keyStoreType parameter</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/question-about-applicationidentity-constructor-with-keystoretype-parameter/#p7559</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/question-about-applicationidentity-constructor-with-keystoretype-parameter/#p7559</guid>
					                        <description><![CDATA[<p>Hi,</p>
<p>Unfortunately formats other than the .der/.pem the samples use are not that well tested (or tested continuously/automatically).</p>
<p>Seems to be a bug. During <a href="https://downloads.prosysopc.com/opcua/Prosys_OPC_UA_SDK_for_Java_5_Release_Notes.html#version-5-4-0" rel="nofollow" target="_blank"><a href="https://downloads.prosysopc.co" rel="nofollow">https://downloads.prosysopc.co</a>.....sion-5-4-0</a> + <a href="https://documentation.prosysopc.com/JSDK/tutorial/html/Prosys_OPC_UA_SDK_for_Java_4_To_5_Migration_Guide.html#crypto-libraries-and-their-usages" rel="nofollow" target="_blank"><a href="https://documentation.prosysop" rel="nofollow">https://documentation.prosysop</a>.....eir-usages</a> we did do some changes. As a result BouncyCastle is not installed, only the Provider is loaded and used directly via java.security.XXX.getInstance(String, Provider). Few places are different, since e.g. BouncyCastle doesn't support the JKS type, but seems that was missed for the SecureIdentity case.</p>
<p>As to why it loads with wrong-things, not sure. My guess would be that since <a href="https://downloads.prosysopc.com/opcua/Prosys_OPC_UA_SDK_for_Java_5_Release_Notes.html#version-5-6-2" rel="nofollow" target="_blank"><a href="https://downloads.prosysopc.co" rel="nofollow">https://downloads.prosysopc.co</a>.....sion-5-6-2</a> did fix a thing where BouncyCastle seems to return null for some erroneous data instead of throwing (I believe this was at least empty byte[]), maybe something similar can happen here. Then the scenario could become the same as if no cert was defined, which would be ok for NONE security connections.</p>
<p>Can you send mail to <a href="mailto:jsdk-support@prosysopc.com" target="_blank">jsdk-support@prosysopc.com</a> and refer this; we can give a beta build once we have fixes (might not happen today).</p>
]]></description>
					                    <pubDate>Fri, 08 May 2026 16:05:54 +0300</pubDate>
                </item>
				                <item>
                    <title>rocket science on Cannot resolve windows console charset CP850</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/cannot-resolve-windows-console-charset-cp850/#p7558</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/cannot-resolve-windows-console-charset-cp850/#p7558</guid>
					                        <description><![CDATA[<p>Hi, here's the output</p>
<p>C:\Users\home&#062;chcp<br />
Aktive Codepage: 850.</p>
<p>There is a dot at the end. Seems to be different with different system languages.</p>
]]></description>
					                    <pubDate>Fri, 08 May 2026 14:26:59 +0300</pubDate>
                </item>
				                <item>
                    <title>Bjarne Boström on Cannot resolve windows console charset CP850</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/cannot-resolve-windows-console-charset-cp850/#p7557</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/cannot-resolve-windows-console-charset-cp850/#p7557</guid>
					                        <description><![CDATA[<p>Hi,</p>
<p>On the machine that caused the log, could it be possible to see the output of the command "chcp" (without quotes) from the Command Prompt (specifically cmd, not powershell). It should output like this:</p>
<p></p>
<div class='sfcode' id='sfcode5035'>
Active code page: 850
</div>
<p>i.e. no dot at the end, but the number can be different on locales and regions. At least that it how it worked on the windows 10 and 11 machines we tested on.</p>
<p>A workaround would be to set the hostname manually (if you know it) via static ApplicationIdentity.setActualHostName(String), then SDK doesn't try to figure out it by itself.</p>
<p>We can also try to improve the parsing logic once we see the output. It should be noted that normally at least currently the only scenario where SDK will try to use platform specific ways is if there is or has been Docker installed on the machine at some point. The Docker's installation will write some hosts file entries that break Java's reverse-DNS lookup for the hostname that we use. This would result in an unusable "host.docker.internal" hostname, thus as a fallback we will attempt platform specific ways. On windows the console output encodings can be different and it matters for reading because there can be special characters, thus we try to parse it from the chcp output.</p>
]]></description>
					                    <pubDate>Fri, 08 May 2026 13:46:11 +0300</pubDate>
                </item>
				                <item>
                    <title>rocket science on Question about ApplicationIdentity constructor with keyStoreType parameter</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/question-about-applicationidentity-constructor-with-keystoretype-parameter/#p7555</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/question-about-applicationidentity-constructor-with-keystoretype-parameter/#p7555</guid>
					                        <description><![CDATA[<p>Hi,<br />
with migration from SDK 4.x to 5.x I recognized that loading a pfx file did not work when using keyStoreType JKS.</p>
<p>My pfx showed anyway 'PrivateKey (Format): PKCS#8' but it looks like it could be loaded with SDK 4.x also with "JKS" as keyStoreType</p>
<p>I'm using following constructor: to load a pfx file.</p>
<p>public ApplicationIdentity(File storeLocation,<br />
                           String alias,<br />
                           String privateKeyPassword,<br />
                           String keyStorePassword,<br />
                           String keyStoreType)</p>
<p>Create an identity with an application certificate. The certificate and private key are loaded from a pfx-keystore file.</p>
<p>    keyStoreType - type of the key store, "JKS" and "PKCS12" are supported types</p>
<p>With SDK 4.x I used following code:</p>
<p>ApplicationIdentity applicationIdentity = new ApplicationIdentity(new File(keystore), alias, password, storePassword, "JKS");</p>
<p>With this the pfx file could be loaded and a connection to a server was possible.</p>
<p>With SDK 5.x the loading failed with:</p>
<p>2026-05-07 17:52:15,886&#124;DEBUG&#124;CryptoUtil                    &#124;CryptoUtil init, trying to get: Windows-PRNG<br />
2026-05-07 17:52:15,915&#124;DEBUG&#124;CryptoUtil                    &#124;CryptoUtil init, using Windows-PRNG, random=PRNG<br />
2026-05-07 17:52:15,915&#124;DEBUG&#124;CryptoUtil                    &#124;Providers=[SUN version 17, SunRsaSign version 17, SunEC version 17, SunJSSE version 17, SunJCE version 17, SunJGSS version 17, SunSASL version 17, XMLDSig version 17, SunPCSC version 17, JdkLDAP version 17, JdkSASL version 17, SunMSCAPI version 17, SunPKCS11 version 17]<br />
2026-05-07 17:52:16,563&#124;INFO &#124;CryptoUtil                    &#124;Using CryptoProvider com.prosysopc.ua.stack.transport.security.BcCryptoProvider<br />
2026-05-07 17:52:16,575&#124;ERROR&#124;CreateApplicationIdentity     &#124;Failed to load ApplicationIdentity from KeyStore ./resources/opcua-keystore.pfx with Alias myAlias<br />
2026-05-07 17:52:16,578&#124;ERROR&#124;DefaultErrorHandler           &#124;com.prosysopc.ua.SecureIdentityException: Cannot load key from PKCS12 KeyStore: JKS not found<br />
com.prosysopc.ua.SecureIdentityException: Cannot load key from PKCS12 KeyStore: JKS not found<br />
	at com.prosysopc.ua.SecureIdentity.(SourceFile:?)<br />
	at com.prosysopc.ua.ApplicationIdentity.(SourceFile:?)</p>
<p>When I change the keyStoreType from JKS to PKCS12 ....</p>
<p>ApplicationIdentity applicationIdentity = new ApplicationIdentity(new File(keystore), alias, password, storePassword, "PKCS12");</p>
<p>...then it loads, but I observed it is always loading as long as the storePassword is correct.</p>
<p>If I use a wrong-alias or a wrong-password it is still loading and I can get a connection to an OpcUa server.</p>
<p>ApplicationIdentity applicationIdentity = new ApplicationIdentity(new File(keystore), wrong-alias, wrong-password, storePassword, "PKCS12");</p>
<p>With 4.x and JKS a connection was not possible when alias ot key password was wrong.</p>
<p>Was there any change in the internal implementation? I could'nt find any hint in the Migration Guide or in the ReleaseNotes.</p>
]]></description>
					                    <pubDate>Thu, 07 May 2026 23:11:10 +0300</pubDate>
                </item>
				                <item>
                    <title>rocket science on Cannot resolve windows console charset CP850</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/cannot-resolve-windows-console-charset-cp850/#p7554</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/cannot-resolve-windows-console-charset-cp850/#p7554</guid>
					                        <description><![CDATA[<p>Hi, </p>
<p>I've updated an application to SDK 5.6.2 (from 4.x) and there seems to be one exception in the log file.</p>
<p>Cannot resolve windows console charset<br />
java.nio.charset.UnsupportedCharsetException: CP850.<br />
	at java.base/java.nio.charset.Charset.forName<br />
	at com.prosysopc.ua.stack.utils.OSUtil.eMY<br />
	at com.prosysopc.ua.stack.utils.OSUtil.a<br />
	at com.prosysopc.ua.stack.utils.OSUtil.exec<br />
	at com.prosysopc.ua.stack.utils.OSUtil.exec<br />
	at com.prosysopc.ua.stack.utils.OSUtil.eNa<br />
	at com.prosysopc.ua.stack.utils.OSUtil.eMZ<br />
	at com.prosysopc.ua.stack.utils.OSUtil.getDomainNameFromOs<br />
	at com.prosysopc.ua.stack.utils.OSUtil.getHostNameWithDomain<br />
	at com.prosysopc.ua.ApplicationIdentity.getActualHostName</p>
<p>One observation on the exception...</p>
<p>java.nio.charset.UnsupportedCharsetException: CP850.</p>
<p>...is that there is a dot at the end of CP850.</p>
<p>The Java class Charset does not add the dot at the end of the charset name when it throws the exception.</p>
<p>    public static Charset forName(String charsetName) {<br />
        Charset cs = lookup(charsetName);<br />
        if (cs != null)<br />
            return cs;<br />
        throw new UnsupportedCharsetException(charsetName);<br />
    }</p>
<p>So my guess is as CP850 is valid, that somehow you have used 'CP850.' somewhere in your SDK instead of 'CP850'</p>
<p>Can you check this?</p>
]]></description>
					                    <pubDate>Thu, 07 May 2026 20:25:05 +0300</pubDate>
                </item>
				                <item>
                    <title>Bjarne Boström on Server - SecureIdentityException</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/server-secureidentityexception/#p7553</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/server-secureidentityexception/#p7553</guid>
					                        <description><![CDATA[<p>Hi,</p>
<p>What SDK version you are using? </p>
<p>Any option you could send one of the .pem to <a href="mailto:jsdk-support@prosysopc.com" target="_blank">jsdk-support@prosysopc.com</a>?</p>
<p>Alternatively, you could try loading them manually using (exactly these methods) com.prosysopc.ua.stack.utils.FileUtil.readFile(File) and then PrivKey.load(byte[], null) on the returned byte[]. This should throw an Exception that might help to explain what happened. In the loadOrCreate there is a fallback to try in another format (loadFromKeyStore), and the posted error is from that, but it failed before that (that would output a DEBUG level log only) because SDK writes them in format the load(..) should be able to load.</p>
<p>So my guess would be that somehow the writing of the .pem didn't work or it got corrupted somehow (or the filesystem did it afterwards somehow). SDK doesn't load them back on the method call that created them, it would only fail on the next call.</p>
<p>Also as a sidenote, unless I missed something, you are calling <a href="https://documentation.prosysopc.com/JSDK/javadoc/com/prosysopc/ua/ApplicationIdentity.html#loadOrCreateCertificate-com.prosysopc.ua.stack.core.ApplicationDescription-java.lang.String-java.lang.String-java.io.File-boolean-java.lang.String" rel="nofollow" target="_blank">https://documentation.prosysopc.com/JSDK/javadoc/com/prosysopc/ua/ApplicationIdentity.html#loadOrCreateCertificate-com.prosysopc.ua.stack.core.ApplicationDescription-java.lang.String-java.lang.String-java.io.File-boolean-java.lang.String</a>...-<br />
whose signature is<br />
loadOrCreateCertificate(ApplicationDescription applicationDescription, String organisation, String privateKeyPassword, File path, boolean enableRenew, String... hostNames) so your comments on the parameters are wrong. You give a null File as the folder where the keys would be stored so they become relative Files instead so it is possibly dependent on how your application is executed could the previously created be found. The boolean enableRenew means SDK will attemt to re-create the certificate if it expires. By default the certificates SDK creates are valid for 10 years. Thus, I think that has not happened yet.</p>
]]></description>
					                    <pubDate>Wed, 06 May 2026 16:49:09 +0300</pubDate>
                </item>
				                <item>
                    <title>Bjarne Boström on Create new UaNodeset using UaNodeSet class</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/create-new-uanodeset-using-uanodeset-class/#p7552</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/create-new-uanodeset-using-uanodeset-class/#p7552</guid>
					                        <description><![CDATA[<p>We have added at some point limited support for the Extensions. Since they are not in the UA's node-model they are only in the server-side implementation UaNodes:<br />
ServerNode.setNodeSetExtensions(UaNodeSetExtensions)<br />
ServerNode.getNodeSetExtensions()</p>
<p>All server-side UaNodes are (and must be) ServerNode-based, so they can be casted to it (or if creating instances, the XXXTypeNode.class can be used instead of XXXType.class, if known and using class-based createInstance methods).</p>
<p>For now the UaNodeSetExtensions is still quite ... crude. It is just a wrapper for the raw whole Extensions XML element, including the Extensions element definition. It be created with UaNodeSetExtensions.parse(String) (doesn't validate anything yet) and the UaNodeSetExtensions.getRawXml() gives the raw xml back. Note that it might not be 1:1 for exporting/loadingh the model e.g. some whitespaces might change and the xml namespaces might need some experimenting, we have not explored this that much. The following should work, let us know if there are issues:</p>
<p></p>
<div class='sfcode' id='sfcode2545'>
    String extensionsXml =<br />
        &#034;&#060;Extensions xmlns=\&#034;<a href="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd" rel="nofollow" target="_blank"><a href="http://opcfoundation.org/UA/20" rel="nofollow">http://opcfoundation.org/UA/20</a>.....odeSet.xsd</a>\&#034;&#062;&#034;<br />
            + &#034;  &#060;Extension&#062;&#034;<br />
            + &#034;    &#060;prosys:ProsysExtension xmlns:prosys=\&#034;<a href="http://www.prosysopc.com/OPCUA/Extensions.xsd" rel="nofollow" target="_blank"><a href="http://www.prosysopc.com/OPCUA" rel="nofollow">http://www.prosysopc.com/OPCUA</a>.....nsions.xsd</a>\&#034;&#062;&#034;<br />
            + &#034;      &#060;prosys:Name&#062;ExtensionName1&#060;/prosys:Name&#062;&#034;<br />
            + &#034;    &#060;/prosys:ProsysExtension&#062;&#034;<br />
            + &#034;  &#060;/Extension&#062;&#034;<br />
            + &#034;  &#060;Extension&#062;&#034;<br />
            + &#034;    &#060;prosys:ProsysExtension xmlns:prosys=\&#034;<a href="http://www.prosysopc.com/OPCUA/Extensions.xsd" rel="nofollow" target="_blank"><a href="http://www.prosysopc.com/OPCUA" rel="nofollow">http://www.prosysopc.com/OPCUA</a>.....nsions.xsd</a>\&#034;&#062;&#034;<br />
            + &#034;      &#060;prosys:Name&#062;ExtensionName2&#060;/prosys:Name&#062;&#034;<br />
            + &#034;    &#060;/prosys:ProsysExtension&#062;&#034;<br />
            + &#034;  &#060;/Extension&#062;&#034;<br />
            + &#034;&#060;/Extensions&#062;&#034;;<br />
    node.setNodeSetExtensions(UaNodeSetExtensions.parse(extensionsXml));
</div>
<p>(... some day we will have better code-block for the forum, anyway think there is a newline character at the end of each line's String data)</p>
<p>The xmlns needs to be defined for the Extensions element. And since it and Extension element are in the UANodeSet.xsd, I think using any own namespaces must be defined within each element that is inside the Extension like above. The resulted total XML for the model isn't as pretty as I would like it to be, as the xmlns:prosys part wont get "elevated" yet to the whole document root element XML namespaces definition.</p>
]]></description>
					                    <pubDate>Wed, 06 May 2026 13:21:44 +0300</pubDate>
                </item>
				                <item>
                    <title>riverplate on Server - SecureIdentityException</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/server-secureidentityexception/#p7550</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/server-secureidentityexception/#p7550</guid>
					                        <description><![CDATA[<p>Hi, I am creating an instance of a `UaServer` this way:</p>
<p>		var newServer = new UaServer();<br />
		ApplicationDescription appDescription = new ApplicationDescription();<br />
		appDescription.setApplicationName(new LocalizedText("SimpleServer", Locale.ENGLISH));<br />
		appDescription.setApplicationUri("urn:localhost:UA:SimpleServer");<br />
		appDescription.setProductUri("urn:prosysopc.com:UA:SimpleServer");<br />
		appDescription.setApplicationType(ApplicationType.Server);<br />
		ApplicationIdentity identity = ApplicationIdentity.loadOrCreateCertificate(<br />
				appDescription,<br />
				"MyCompany",	// Organization<br />
				null,			// Common Name for certificate<br />
				null, 			// Hostname override<br />
				true			// Create if missing<br />
				);<br />
		newServer.setApplicationIdentity(identity);<br />
		newServer.addUserTokenPolicy(UserTokenPolicies.ANONYMOUS);<br />
		newServer.init(); </p>
<p>Everything seemed to work fine, until I noticed that on a few PCs I get the error: </p>
<p>com.prosysopc.ua.SecurityIndetityException: Private key cannot be loaded from file SimpleServer_2048.pem<br />
		at com.prosysopc.ua.ApplicationIdentity.loadOrCreateKeyPair(SourceFile:930)<br />
Caused by: java.io.IOException: Short read of DER length<br />
    at java.base/sun.security.util.DerInputStream.getLength(DerInputStream.java:588)<br />
    at java.base/sun.security.util.DerValue.init(DerValue.java:390)<br />
    at java.base/sun.security.util.DerValue.(DerValue.java:331)<br />
    at java.base/sun.security.util.DerValue.(DerValue.java:344)<br />
    at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1993)<br />
    at java.base/java.security.KeyStore.load(KeyStore.java:1479)<br />
    at com.prosysopc.ua.stack.utils.CertificateUtils.loadFromKeyStore(SourceFile:660)<br />
    at com.prosysopc.ua.stack.transport.security.PrivKey.loadFromKeyStore(SourceFile:200)<br />
    at com.prosysopc.ua.stack.transport.security.PrivKey.loadFromKeyStore(SourceFile:183)<br />
    at com.prosysopc.ua.ApplicationIdentity.loadOrCreateKeyPair(SourceFile:925)</p>
<p>any idea on where the issue might be? The certificates are created by the SDK and never touched by any other process.</p>
<p>Thanks!</p>
]]></description>
					                    <pubDate>Tue, 05 May 2026 21:38:50 +0300</pubDate>
                </item>
				                <item>
                    <title>hbrackel on Create new UaNodeset using UaNodeSet class</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/create-new-uanodeset-using-uanodeset-class/#p7549</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/create-new-uanodeset-using-uanodeset-class/#p7549</guid>
					                        <description><![CDATA[<p>Thank you very much for the swift reply.</p>
<p>I think that either of the 3 options will work for producing a nodeset. The only open subject would be the addition of NodeSet Extensions elements. We would want to add non-OPC UA configuration information like PLC data tag mappings etc into the nodeset as well as a single-source-of-truth.</p>
]]></description>
					                    <pubDate>Tue, 05 May 2026 19:31:20 +0300</pubDate>
                </item>
				                <item>
                    <title>Bjarne Boström on Create new UaNodeset using UaNodeSet class</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/create-new-uanodeset-using-uanodeset-class/#p7547</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/create-new-uanodeset-using-uanodeset-class/#p7547</guid>
					                        <description><![CDATA[<p>Hi,</p>
<p>Seems you edited the question while I was writing a complicated answer. Thus an edited shorter version of that below.</p>
<p>You will need to represent data as 'UaNodes'. Due to history of the SDK, it is kinda hard to do "data only" representation of the server (or alternative UaNode implementations). You might try just UaServer.init without starting, or just bind to 127.0.0.1 only and use normal UaNodes. Then you can use NodeManagerUaNode.toNodeSet() + UaNodeSet.toXml(). It is not recommended to write the core namespace (index 0). Also the index 1 should typically be ignored, as often it contains diagnotics nodes only. In case you read stuff back to our SDK server, it should be noted that UaServer.init does create the namespaces in index 0 and 1 by itself, that should not be modified.</p>
<p>There is not a public way yet to export more than one namespace per UaNodeSet. However, we do have these "public internal" ones:<br />
- <a href="https://documentation.prosysopc.com/JSDK/javadoc/com/prosysopc/ua/InternalUaNodeSetNodeManagerUaNodeParser.html" rel="nofollow" target="_blank"><a href="https://documentation.prosysop" rel="nofollow">https://documentation.prosysop</a>.....arser.html</a><br />
- <a href="https://documentation.prosysopc.com/JSDK/javadoc/com/prosysopc/ua/InternalUaNodeSetAddressSpaceParser.html" rel="nofollow" target="_blank"><a href="https://documentation.prosysop" rel="nofollow">https://documentation.prosysop</a>.....arser.html</a></p>
<p>They have a bit more stuff that was not public-ready, but needed for Browser(nodeset export in pro) and SimulationServer. The classes are public, though they should be considered as internal, i.e. we could remove/modify these at will (though most likely we will need something similar anyway in some form ourselves). I can try to explain in more detail later if needed, but short versions: The InternalUaNodeSetNodeManagerUaNodeParser mostly is NodeManagerUaNode.toNodeSet() with few additional options. InternalUaNodeSetAddressSpaceParser (NodeManagerTable does implement UaAddressSpace) can write any Set of UaNodes (of that UaAddressSpace), not limited to ones of the same namespace. Though note that the constructor parameter "primaryNamespace" will become the index 1 for model purposes (since typically a model has just one "provided namespace" and it typically is index 1, rest of NamespaceUri list is typically dependencies). The rest will depend on iteration orders. Also, I heavily recommend exporting complete namespaces (one or more), or you might end up with an invalid model.</p>
<p>P.S.<br />
I can explain later, if needed, but there is sort of an issue regarding cyclic dependencies, which might occur for weirder models. The internal ones have a parameter to break these if it can be done from the outside, but we have not found a proper "UA way" for this. SDK does apply some heuristics in order to determine which namespaces are dependencies and which are not regarding references.</p>
]]></description>
					                    <pubDate>Mon, 04 May 2026 20:21:18 +0300</pubDate>
                </item>
				                <item>
                    <title>hbrackel on Create new UaNodeset using UaNodeSet class</title>
                    <link>https://forum.prosysopc.com/forum/opc-ua-java-sdk/create-new-uanodeset-using-uanodeset-class/#p7546</link>
                    <category>OPC UA SDK for Java</category>
                    <guid isPermaLink="true">https://forum.prosysopc.com/forum/opc-ua-java-sdk/create-new-uanodeset-using-uanodeset-class/#p7546</guid>
					                        <description><![CDATA[<p>Edited from the original post</p>
<p>I'd like to generate a nodesest.xml file from an in-memory addressSpace (ideally, without even running a server ). Does the SDK provide a utility for this purpose or am I required to serialize the nodes / nodeset manually to XML?</p>
<p>Many thanks for your support</p>
]]></description>
					                    <pubDate>Mon, 04 May 2026 17:40:44 +0300</pubDate>
                </item>
				    </channel>
	</rss>
