Author: nextgens
Date: 2006-09-06 18:10:55 +0000 (Wed, 06 Sep 2006)
New Revision: 10412

Modified:
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
Some work for #730 : pick up dsaGroup and pubkey from ark if not already set.

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2006-09-06 16:45:33 UTC 
(rev 10411)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2006-09-06 18:10:55 UTC 
(rev 10412)
@@ -618,12 +618,35 @@
                        FreenetURI uri = new FreenetURI(arkPubKey);
                        ClientSSK ssk = new ClientSSK(uri);
                        ark = new USK(ssk, arkNo);
+                       
+                       // Maybe synchronize ?
+                       if(peerCryptoGroup == null){
+                               SimpleFieldSet sfs = fs.subset("dsaGroup");
+                               Logger.normal(this, "Picking up peerCrypto 
group from ark for "+this.privateDarknetComment);
+                               if(sfs == null)
+                                       this.peerCryptoGroup = null;
+                               else
+                                       this.peerCryptoGroup = 
DSAGroup.create(sfs);
+                       }
+                       
+                       if(peerPubKey == null){
+                               SimpleFieldSet sfs = fs.subset("dsaGroup");
+                               Logger.normal(this, "Picking up dsaGroup from 
ark for "+this.privateDarknetComment);
+                               
+                               sfs = fs.subset("dsaPubKey");
+                               if(sfs == null)
+                                       this.peerPubKey = null;
+                               else
+                                       this.peerPubKey = 
DSAPublicKey.create(sfs, peerCryptoGroup);
+                       }
                }
         } catch (MalformedURLException e) {
                Logger.error(this, "Couldn't parse ARK info for "+this+": "+e, 
e);
         } catch (NumberFormatException e) {
                Logger.error(this, "Couldn't parse ARK info for "+this+": "+e, 
e);
-        }
+        } catch (IllegalBase64Exception e) {
+               Logger.error(this, "Couldn't parse ARK info for "+this+": "+e, 
e);
+               }

                synchronized(this) {
                        if(ark != null) {


Reply via email to