Changeset 5a4c2de


Ignore:
Timestamp:
Aug 23, 2009 4:12:09 PM (11 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
80f9f85
Parents:
7e54774
Message:
  • Message, I2PSession, SessionKeyManager?, Console: Prep for SessionKeyManager? work in the router - Fix up SKM renderStatusHTML(); add debug.jsp to see it; Redefine getClientSessionKeyManager(); More cleanups
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • core/java/src/net/i2p/client/MessagePayloadMessageHandler.java

    r7e54774 r5a4c2de  
    2222 * of a message by accepting it, decrypting the payload, adding it to the set of
    2323 * recieved messages, and telling the router that it has been recieved correctly.
     24 *
     25 * We don't really decrypt (no more end-to-end crypto)
    2426 *
    2527 * @author jrandom
     
    5254    /**
    5355     * Decrypt the payload
     56     *
     57     * We don't really decrypt (no more end-to-end crypto)
     58     * If we do, we need to use the correct key manager in the decrypt() call below
    5459     */
    5560    private Payload decryptPayload(MessagePayloadMessage msg, I2PSessionImpl session) throws DataFormatException {
    5661        Payload payload = msg.getPayload();
    57         if (!I2CPMessageProducer.END_TO_END_CRYPTO) {
     62        //if (!I2CPMessageProducer.END_TO_END_CRYPTO) {
    5863            payload.setUnencryptedData(payload.getEncryptedData());
    5964            return payload;
    60         }
     65        //}
    6166           
    62         byte[] data = _context.elGamalAESEngine().decrypt(payload.getEncryptedData(), session.getDecryptionKey());
    63         if (data == null) {
    64             if (_log.shouldLog(Log.WARN))
    65                 _log.warn("Error decrypting the payload");
    66             throw new DataFormatException("Unable to decrypt the payload");
    67         }
    68         payload.setUnencryptedData(data);
    69         return payload;
     67        //byte[] data = _context.elGamalAESEngine().decrypt(payload.getEncryptedData(), session.getDecryptionKey());
     68        //if (data == null) {
     69        //    if (_log.shouldLog(Log.WARN))
     70        //        _log.warn("Error decrypting the payload");
     71        //    throw new DataFormatException("Unable to decrypt the payload");
     72        //}
     73        //payload.setUnencryptedData(data);
     74        //return payload;
    7075    }
    7176}
  • core/java/src/net/i2p/crypto/SessionKeyManager.java

    r7e54774 r5a4c2de  
    1010 */
    1111
     12import java.io.IOException;
     13import java.io.Writer;
    1214import java.util.Set;
    1315
     
    131133    public void shutdown() { // nop
    132134    }
     135
     136    public void renderStatusHTML(Writer out) throws IOException {}
    133137}
  • core/java/src/net/i2p/crypto/TransientSessionKeyManager.java

    r7e54774 r5a4c2de  
    1010 */
    1111
     12import java.io.IOException;
     13import java.io.Writer;
    1214import java.util.ArrayList;
     15import java.util.Comparator;
    1316import java.util.Date;
    1417import java.util.HashMap;
     
    1821import java.util.Map;
    1922import java.util.Set;
     23import java.util.TreeSet;
    2024
    2125import net.i2p.I2PAppContext;
     
    504508    }
    505509
    506     public String renderStatusHTML() {
     510    @Override
     511    public void renderStatusHTML(Writer out) throws IOException {
    507512        StringBuilder buf = new StringBuilder(1024);
    508         buf.append("<h2>Inbound sessions</h2>");
    509         buf.append("<table>");
     513        buf.append("<h2>Inbound sessions</h2>" +
     514                   "<table>");
    510515        Set<TagSet> inbound = getInboundTagSets();
    511516        Map<SessionKey, Set<TagSet>> inboundSets = new HashMap(inbound.size());
     517        // FIXME what does this loop do? nothing?
    512518        for (Iterator<TagSet> iter = inbound.iterator(); iter.hasNext();) {
    513519            TagSet ts = iter.next();
     
    516522            sets.add(ts);
    517523        }
     524        int total = 0;
     525        long now = _context.clock().now();
    518526        for (Iterator<SessionKey> iter = inboundSets.keySet().iterator(); iter.hasNext();) {
    519527            SessionKey skey = iter.next();
    520             Set<TagSet> sets = inboundSets.get(skey);
    521             buf.append("<tr><td><b>Session key</b>: ").append(skey.toBase64()).append("</td>");
    522             buf.append("<td><b># Sets:</b> ").append(sets.size()).append("</td></tr>");
    523             buf.append("<tr><td colspan=\"2\"><ul>");
     528            Set<TagSet> sets = new TreeSet(new TagSetComparator());
     529            sets.addAll(inboundSets.get(skey));
     530            buf.append("<tr><td><b>Session key</b>: ").append(skey.toBase64()).append("</td>" +
     531                       "<td><b># Sets:</b> ").append(sets.size()).append("</td></tr>" +
     532                       "<tr><td colspan=\"2\"><ul>");
    524533            for (Iterator<TagSet> siter = sets.iterator(); siter.hasNext();) {
    525534                TagSet ts = siter.next();
    526                 buf.append("<li><b>Received on:</b> ").append(new Date(ts.getDate())).append(" with ")
    527                    .append(ts.getTags().size()).append(" tags remaining</li>");
    528             }
    529             buf.append("</ul></td></tr>");
    530         }
    531         buf.append("</table>");
    532 
    533         buf.append("<h2><b>Outbound sessions</b></h2>");
    534 
    535         buf.append("<table>");
     535                int size = ts.getTags().size();
     536                total += size;
     537                buf.append("<li><b>Received:</b> ").append(DataHelper.formatDuration(now - ts.getDate())).append(" ago with ");
     538                buf.append(size).append(" tags remaining</li>");
     539            }
     540            buf.append("</ul></td></tr>\n");
     541            out.write(buf.toString());
     542            buf.setLength(0);
     543        }
     544        buf.append("<tr><td colspan=\"2\">Total tags: ").append(total).append(" (");
     545        buf.append(DataHelper.formatSize(32*total)).append("B)</td></tr>\n" +
     546                   "</table>" +
     547                   "<h2><b>Outbound sessions</b></h2>" +
     548                   "<table>");
     549        total = 0;
    536550        Set<OutboundSession> outbound = getOutboundSessions();
    537551        for (Iterator<OutboundSession> iter = outbound.iterator(); iter.hasNext();) {
    538552            OutboundSession sess = iter.next();
    539             buf.append("<tr><td><b>Target key:</b> ").append(sess.getTarget().toString()).append("<br>");
    540             buf.append("<b>Established:</b> ").append(new Date(sess.getEstablishedDate())).append("<br>");
    541             buf.append("<b>Last Used:</b> ").append(new Date(sess.getLastUsedDate())).append("<br>");
    542             buf.append("<b># Sets:</b> ").append(sess.getTagSets().size()).append("</td></tr>");
    543             buf.append("<tr><td><b>Session key:</b> ").append(sess.getCurrentKey().toBase64()).append("</td></tr>");
    544             buf.append("<tr><td><ul>");
    545             for (Iterator<TagSet> siter = sess.getTagSets().iterator(); siter.hasNext();) {
     553            Set<TagSet> sets = new TreeSet(new TagSetComparator());
     554            sets.addAll(sess.getTagSets());
     555            buf.append("<tr><td><b>Target key:</b> ").append(sess.getTarget().toString()).append("<br>" +
     556                       "<b>Established:</b> ").append(DataHelper.formatDuration(now - sess.getEstablishedDate())).append(" ago<br>" +
     557                       "<b>Last Used:</b> ").append(DataHelper.formatDuration(now - sess.getLastUsedDate())).append(" ago<br>" +
     558                       "<b># Sets:</b> ").append(sess.getTagSets().size()).append("</td></tr>" +
     559                       "<tr><td><b>Session key:</b> ").append(sess.getCurrentKey().toBase64()).append("</td></tr>" +
     560                       "<tr><td><ul>");
     561            for (Iterator<TagSet> siter = sets.iterator(); siter.hasNext();) {
    546562                TagSet ts = siter.next();
    547                 buf.append("<li><b>Sent on:</b> ").append(new Date(ts.getDate())).append(" with ").append(
    548                                                                                                           ts.getTags()
    549                                                                                                             .size())
    550                    .append(" tags remaining</li>");
    551             }
    552             buf.append("</ul></td></tr>");
    553         }
    554         buf.append("</table>");
    555 
    556         return buf.toString();
     563                int size = ts.getTags().size();
     564                total += size;
     565                buf.append("<li><b>Sent:</b> ").append(DataHelper.formatDuration(now - ts.getDate())).append(" ago with ");
     566                buf.append(size).append(" tags remaining</li>");
     567            }
     568            buf.append("</ul></td></tr>\n");
     569            out.write(buf.toString());
     570            buf.setLength(0);
     571        }
     572        buf.append("<tr><td colspan=\"2\">Total tags: ").append(total).append(" (");
     573        buf.append(DataHelper.formatSize(32*total)).append("B)</td></tr>\n" +
     574                   "</table>");
     575
     576        out.write(buf.toString());
     577    }
     578
     579    /**
     580     *  Just for the HTML method above so we can see what's going on easier
     581     *  Earliest first
     582     */
     583    private class TagSetComparator implements Comparator {
     584         public int compare(Object l, Object r) {
     585             return (int) (((TagSet)l).getDate() - ((TagSet)r).getDate());
     586        }
    557587    }
    558588
     
    761791        public int hashCode() {
    762792            long rv = 0;
    763             if (_key != null) rv = rv * 7 + _key.hashCode();
     793            if (_key != null) rv = _key.hashCode();
    764794            rv = rv * 7 + _date;
    765795            // no need to hashCode the tags, key + date should be enough
  • router/java/src/net/i2p/router/ClientManagerFacade.java

    r7e54774 r5a4c2de  
    9393     */
    9494    public abstract SessionConfig getClientSessionConfig(Destination dest);
    95     public abstract SessionKeyManager getClientSessionKeyManager(Destination dest);
     95    public abstract SessionKeyManager getClientSessionKeyManager(Hash dest);
    9696    public void renderStatusHTML(Writer out) throws IOException { }
    9797}
  • router/java/src/net/i2p/router/DummyClientManagerFacade.java

    r7e54774 r5a4c2de  
    4242   
    4343    public SessionConfig getClientSessionConfig(Destination _dest) { return null; }
    44     public SessionKeyManager getClientSessionKeyManager(Destination _dest) { return null; }
     44    public SessionKeyManager getClientSessionKeyManager(Hash _dest) { return null; }
    4545   
    4646    public void requestLeaseSet(Hash dest, LeaseSet set) {}
  • router/java/src/net/i2p/router/client/ClientManager.java

    r7e54774 r5a4c2de  
    329329    /**
    330330     * Return the client's SessionKeyManager
    331      *
     331     * Use this instead of the RouterContext.sessionKeyManager()
     332     * to prevent correlation attacks across destinations
    332333     */
    333     public SessionKeyManager getClientSessionKeyManager(Destination dest) {
     334    public SessionKeyManager getClientSessionKeyManager(Hash dest) {
    334335        ClientConnectionRunner runner = getRunner(dest);
    335336        if (runner != null)
  • router/java/src/net/i2p/router/client/ClientManagerFacadeImpl.java

    r7e54774 r5a4c2de  
    195195     *
    196196     */
    197     public SessionKeyManager getClientSessionKeyManager(Destination dest) {
     197    public SessionKeyManager getClientSessionKeyManager(Hash dest) {
    198198        if (_manager != null)
    199199            return _manager.getClientSessionKeyManager(dest);
Note: See TracChangeset for help on using the changeset viewer.