<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:15:14 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[NETCONF-521] Netconf with Key auth does not work</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-521</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;The netconf Key auth suite is failing in oxygen:&lt;/p&gt;

&lt;p&gt;&#160;&lt;a href=&quot;https://jenkins.opendaylight.org/releng/view/netconf/job/netconf-csit-1node-userfeatures-all-oxygen/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opendaylight.org/releng/view/netconf/job/netconf-csit-1node-userfeatures-all-oxygen/&lt;/a&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;In karaf log I see:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
2018-03-02T00:38:15,881 | WARN &#160;| sshd-SshClient[5dede481]-nio2-thread-2 | AcceptAllServerKeyVerifier &#160;&#160;&#160;&#160;&#160;&#160;| 155 - org.apache.sshd.core - 1.6.0 | Server at /10.30.170.85:830 presented unverified RSA key: SHA256:4JBIKB6++B4Qr/W1OITOQluaBl08omQ9SuAHvLic9RI

2018-03-02T00:38:16,348 | WARN &#160;| sshd-SshClient[5dede481]-nio2-thread-4 | AsyncSshHandler &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;| 439 - org.opendaylight.netconf.netty-util - 1.4.0.SNAPSHOT | Unable to setup SSH connection on channel: [id: 0x94296797]

org.apache.sshd.common.SshException: No more authentication methods available

at org.apache.sshd.client.session.ClientUserAuthService.tryNext(ClientUserAuthService.java:314) ~[155:org.apache.sshd.core:1.6.0]

at org.apache.sshd.client.session.ClientUserAuthService.processUserAuth(ClientUserAuthService.java:251) ~[155:org.apache.sshd.core:1.6.0]

at org.apache.sshd.client.session.ClientUserAuthService.process(ClientUserAuthService.java:198) ~[155:org.apache.sshd.core:1.6.0]

at org.apache.sshd.common.session.helpers.AbstractSession.doHandleMessage(AbstractSession.java:566) ~[155:org.apache.sshd.core:1.6.0]

at org.apache.sshd.common.session.helpers.AbstractSession.handleMessage(AbstractSession.java:499) ~[155:org.apache.sshd.core:1.6.0]

at org.apache.sshd.common.session.helpers.AbstractSession.decode(AbstractSession.java:1413) ~[155:org.apache.sshd.core:1.6.0]

at org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:460) ~[155:org.apache.sshd.core:1.6.0]

at org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:66) ~[155:org.apache.sshd.core:1.6.0]

at org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:284) ~[155:org.apache.sshd.core:1.6.0]

at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:264) ~[155:org.apache.sshd.core:1.6.0]

at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:261) ~[155:org.apache.sshd.core:1.6.0]

at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$completed$0(Nio2CompletionHandler.java:38) ~[155:org.apache.sshd.core:1.6.0]

at java.security.AccessController.doPrivileged(Native Method) ~[?:?]

at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37) [155:org.apache.sshd.core:1.6.0]

at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126) [?:?]

at sun.nio.ch.Invoker$2.run(Invoker.java:218) [?:?]

at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112) [?:?]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]

at java.lang.&lt;span class=&quot;code-object&quot;&gt;Thread&lt;/span&gt;.run(&lt;span class=&quot;code-object&quot;&gt;Thread&lt;/span&gt;.java:748) [?:?]

&#160;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;This works in Nitrogen so unless I am missing something here, this is a BLOCKER for Oxygen.&lt;/p&gt;</description>
                <environment></environment>
        <key id="29329">NETCONF-521</key>
            <summary>Netconf with Key auth does not work</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.opendaylight.org/images/icons/priorities/blocker.svg">Highest</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="ecelgp">Luis Gomez</assignee>
                                    <reporter username="ecelgp">Luis Gomez</reporter>
                        <labels>
                            <label>patch_merged</label>
                    </labels>
                <created>Fri, 2 Mar 2018 21:26:56 +0000</created>
                <updated>Thu, 8 Mar 2018 16:56:09 +0000</updated>
                            <resolved>Thu, 8 Mar 2018 16:55:16 +0000</resolved>
                                    <version>Oxygen</version>
                                    <fixVersion>Oxygen</fixVersion>
                                    <component>netconf</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="61415" author="ecelgp" created="Mon, 5 Mar 2018 19:40:29 +0000"  >&lt;p&gt;Similar ERROR &quot;No more authentication methods available&quot; is also seen here:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jenkins.opendaylight.org/releng/view/netconf/job/netconf-csit-1node-callhome-only-oxygen/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opendaylight.org/releng/view/netconf/job/netconf-csit-1node-callhome-only-oxygen/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So this issue&#160;seems to&#160;impact other netconf suites.&lt;/p&gt;</comment>
                            <comment id="61418" author="ecelgp" created="Mon, 5 Mar 2018 21:35:07 +0000"  >&lt;p&gt;OK, it seems Key auth has been refactored in Oxygen:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/q/topic:keyauth-refactor&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/q/topic:keyauth-refactor&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Someone will have to explain how this works to modify the existing tests and verify for Oxygen.&lt;/p&gt;</comment>
                            <comment id="61459" author="rgoulding" created="Tue, 6 Mar 2018 14:30:15 +0000"  >&lt;p&gt;Is it still a blocker?&lt;/p&gt;</comment>
                            <comment id="61464" author="ecelgp" created="Tue, 6 Mar 2018 18:56:38 +0000"  >&lt;p&gt;Ryan, there is new API in netconf to store public keys and certificates:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/67711/3/netconf/sal-netconf-connector/src/main/yang/netconf-keystore.yang&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/67711/3/netconf/sal-netconf-connector/src/main/yang/netconf-keystore.yang&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do you know why this is in netconf and not in aaa?&lt;/p&gt;</comment>
                            <comment id="61512" author="ecelgp" created="Wed, 7 Mar 2018 18:03:42 +0000"  >&lt;p&gt;OK, so after testing the new API+implementation, I am blocked at writing the correct private-key data in the&#160;add-keystore-entry&#160;RPC:&lt;/p&gt;

&lt;p&gt;1) If I try to just write the raw private-key data:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
POST http:&lt;span class=&quot;code-comment&quot;&gt;//127.0.0.1:8181/restconf/operations/netconf-keystore:add-keystore-entry
&lt;/span&gt;&amp;lt;input xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;urn:opendaylight:netconf:keystore&quot;&lt;/span&gt;&amp;gt;
    &amp;lt;key-credential&amp;gt;
       &amp;lt;key-id&amp;gt;device-key&amp;lt;/key-id&amp;gt;
       &amp;lt;&lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt;-key&amp;gt;MIIEpAIBAAKCAQEA1XU/F3AF8idl6+4807uonK5ZQ/F9lWfIiEXJjPLOoMgl2zQgqM4ojkgFCrwDP8KVXu
...
MlQAzCDDXzDHkrgw==&amp;lt;/&lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt;-key&amp;gt;
        &amp;lt;passphrase&amp;gt;&amp;lt;/passphrase&amp;gt;
    &amp;lt;/key-credential&amp;gt;
&amp;lt;/input&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;br/&gt;
controller fails (NPE) to decode the private-key because it is expecting a FileStream format where we should be passing the full content of a private-key file:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA1XU/F3AF8idl6+4807uonK5ZQ/F9lWfIiEXJjPLOoMgl2zQg
...
13Gi2kUB8/nZGJy4CNkMpJY50xxdqN4OsE5SNdMlQAzCDDXzDHkrgw==
-----END RSA PRIVATE KEY-----
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;2) If I add the header and footer in the RPC input:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
POST http:&lt;span class=&quot;code-comment&quot;&gt;//127.0.0.1:8181/restconf/operations/netconf-keystore:add-keystore-entry
&lt;/span&gt;&amp;lt;input xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;urn:opendaylight:netconf:keystore&quot;&lt;/span&gt;&amp;gt;
    &amp;lt;key-credential&amp;gt;
       &amp;lt;key-id&amp;gt;device-key&amp;lt;/key-id&amp;gt;
       &amp;lt;&lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt;-key&amp;gt;-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA1XU/F3AF8idl6+4807uonK5ZQ/F9lWfIiEXJjPLOoMgl2zQgqM4ojkgFCrwDP8KVXu
...
MlQAzCDDXzDHkrgw==\n-----END RSA PRIVATE KEY-----&amp;lt;/&lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt;-key&amp;gt;
        &amp;lt;passphrase&amp;gt;&amp;lt;/passphrase&amp;gt;
    &amp;lt;/key-credential&amp;gt;
&amp;lt;/input&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;controller fails to decode the above because it cannot detect the &quot;new line&quot; (\n) character in the string above.&lt;/p&gt;

&lt;p&gt;So any suggestion on how to pass the private-key in the RPC input so that the &quot;PEMParser keyReader = new PEMParser(reader)&quot; in &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/64657/1/aaa-encrypt-service/src/main/java/org/opendaylight/aaa/encrypt/PKIUtil.java&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/64657/1/aaa-encrypt-service/src/main/java/org/opendaylight/aaa/encrypt/PKIUtil.java&lt;/a&gt; works fine?&lt;/p&gt;</comment>
                            <comment id="61513" author="rgoulding" created="Wed, 7 Mar 2018 18:16:20 +0000"  >&lt;p&gt;Strip out the newlines and it should work to my knowledge.&#160; i.e., keep the &quot;BEGIN&quot; and &quot;END&quot; stuff but no newlines.&lt;/p&gt;</comment>
                            <comment id="61514" author="ecelgp" created="Wed, 7 Mar 2018 18:46:33 +0000"  >&lt;p&gt;Tried that already and it does not find the the footer:&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
2018-03-07T08:02:42,690 | WARN  | opendaylight-cluster-data-notification-dispatcher-279 | DatastoreBackedPublicKeyAuth     | 301 - org.opendaylight.netconf.sal-netconf-connector - 1.7.0.SNAPSHOT | Unable to decode &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; key, id=device-key
java.io.IOException: -----END RSA PRIVATE KEY not found
	at org.bouncycastle.util.io.pem.PemReader.loadObject(Unknown Source) [10:bcprov:1.58.0]
	at org.bouncycastle.util.io.pem.PemReader.readPemObject(Unknown Source) [10:bcprov:1.58.0]
	at org.bouncycastle.openssl.PEMParser.readObject(Unknown Source) [11:bcpkix:1.58.0]
	at org.opendaylight.aaa.encrypt.PKIUtil.doDecodePrivateKey(PKIUtil.java:215) [187:org.opendaylight.aaa.encrypt-service:0.7.0.SNAPSHOT]
	at org.opendaylight.aaa.encrypt.PKIUtil.decodePrivateKey(PKIUtil.java:202) [187:org.opendaylight.aaa.encrypt-service:0.7.0.SNAPSHOT]
	at org.opendaylight.netconf.sal.connect.netconf.auth.DatastoreBackedPublicKeyAuth.tryToSetKeyPair(DatastoreBackedPublicKeyAuth.java:74) [301:org.opendaylight.netconf.sal-netconf-connector:1.7.0.SNAPSHOT]
	at org.opendaylight.netconf.sal.connect.netconf.auth.DatastoreBackedPublicKeyAuth.&amp;lt;init&amp;gt;(DatastoreBackedPublicKeyAuth.java:46) [301:org.opendaylight.netconf.sal-netconf-connector:1.7.0.SNAPSHOT]
	at org.opendaylight.netconf.topology.AbstractNetconfTopology.getHandlerFromCredentials(AbstractNetconfTopology.java:483) [117:netconf-topology-config:1.4.0.SNAPSHOT]
	at org.opendaylight.netconf.topology.AbstractNetconfTopology.getClientConfig(AbstractNetconfTopology.java:448) [117:netconf-topology-config:1.4.0.SNAPSHOT]
	at org.opendaylight.netconf.topology.AbstractNetconfTopology.setupConnection(AbstractNetconfTopology.java:242) [117:netconf-topology-config:1.4.0.SNAPSHOT]
	at org.opendaylight.netconf.topology.AbstractNetconfTopology.connectNode(AbstractNetconfTopology.java:212) [117:netconf-topology-config:1.4.0.SNAPSHOT]
	at org.opendaylight.netconf.topology.impl.NetconfTopologyImpl.onDataTreeChanged(NetconfTopologyImpl.java:126) [117:netconf-topology-config:1.4.0.SNAPSHOT]
	at org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:41) [211:org.opendaylight.controller.sal-binding-broker-impl:1.7.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:67) [224:org.opendaylight.controller.sal-distributed-datastore:1.7.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:41) [224:org.opendaylight.controller.sal-distributed-datastore:1.7.0.SNAPSHOT]
	at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:38) [217:org.opendaylight.controller.sal-clustering-commons:1.7.0.SNAPSHOT]
	at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:166) [83:com.typesafe.akka.actor:2.5.4]
	at akka.actor.Actor.aroundReceive(Actor.scala:514) [83:com.typesafe.akka.actor:2.5.4]
	at akka.actor.Actor.aroundReceive$(Actor.scala:512) [83:com.typesafe.akka.actor:2.5.4]
	at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:96) [83:com.typesafe.akka.actor:2.5.4]
	at akka.actor.ActorCell.receiveMessage(ActorCell.scala:527) [83:com.typesafe.akka.actor:2.5.4]
	at akka.actor.ActorCell.invoke(ActorCell.scala:496) [83:com.typesafe.akka.actor:2.5.4]
	at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257) [83:com.typesafe.akka.actor:2.5.4]
	at akka.dispatch.Mailbox.run(Mailbox.scala:224) [83:com.typesafe.akka.actor:2.5.4]
	at akka.dispatch.Mailbox.exec(Mailbox.scala:234) [83:com.typesafe.akka.actor:2.5.4]
	at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [83:com.typesafe.akka.actor:2.5.4]
	at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [83:com.typesafe.akka.actor:2.5.4]
	at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [83:com.typesafe.akka.actor:2.5.4]
	at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [83:com.typesafe.akka.actor:2.5.4]
2
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="61531" author="ecelgp" created="Thu, 8 Mar 2018 06:52:01 +0000"  >&lt;p&gt;OK, after googling how to convert the literal &apos;\n&apos; into an effective newline I came up with:&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/69249/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/69249/&lt;/a&gt;&lt;br/&gt;
I also tested the patch in sandbox and it works.&lt;/p&gt;</comment>
                            <comment id="61542" author="dfarrell07" created="Thu, 8 Mar 2018 11:53:56 +0000"  >&lt;p&gt;69249 has a +2 and is ready to be merged.&lt;/p&gt;</comment>
                            <comment id="61562" author="dfarrell07" created="Thu, 8 Mar 2018 16:44:20 +0000"  >&lt;p&gt;The patch has been merged. &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=ecelgp&quot; class=&quot;user-hover&quot; rel=&quot;ecelgp&quot;&gt;ecelgp&lt;/a&gt; can you verify it fixed the problem and close this issue?&lt;/p&gt;</comment>
                            <comment id="61563" author="ecelgp" created="Thu, 8 Mar 2018 16:54:39 +0000"  >&lt;p&gt;Sure it works, I already verified before it was merged. Closing this then.&lt;/p&gt;</comment>
                            <comment id="61564" author="ecelgp" created="Thu, 8 Mar 2018 16:55:16 +0000"  >&lt;p&gt;Fix provided, merged and verified.&lt;/p&gt;</comment>
                            <comment id="61565" author="ecelgp" created="Thu, 8 Mar 2018 16:56:09 +0000"  >&lt;p&gt;Only thing missing here as well as for &lt;a href=&quot;https://jira.opendaylight.org/browse/NETCONF-520&quot; title=&quot;RPC add netconf device does not work&quot; class=&quot;issue-link&quot; data-issue-key=&quot;NETCONF-520&quot;&gt;&lt;del&gt;NETCONF-520&lt;/del&gt;&lt;/a&gt; is update user guide but we can open a separate ticket for that.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03b3b:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>