Moved writers into their own package, replaced public static fields in

CryptoModule with provider methods.
This commit is contained in:
akwizgran
2011-07-23 18:50:40 +01:00
parent 13f18d9e40
commit 65be63dc0c
19 changed files with 205 additions and 78 deletions

View File

@@ -1,22 +1,59 @@
package net.sf.briar.crypto;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.Signature;
import net.sf.briar.api.crypto.KeyParser;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
public class CryptoModule extends AbstractModule {
public static final String DIGEST_ALGO = "SHA-256";
public static final String KEY_PAIR_ALGO = "RSA";
public static final String SIGNATURE_ALGO = "SHA256withRSA";
private static final String DIGEST_ALGO = "SHA-256";
private static final String KEY_PAIR_ALGO = "RSA";
private static final String SIGNATURE_ALGO = "SHA256withRSA";
@Override
protected void configure() {
try {
bind(KeyParser.class).toInstance(new KeyParserImpl(KEY_PAIR_ALGO));
} catch(NoSuchAlgorithmException e) {
// FIXME: Can modules throw?
throw new RuntimeException(e);
}
}
@Provides
MessageDigest getMessageDigest() {
try {
return MessageDigest.getInstance(DIGEST_ALGO);
} catch(NoSuchAlgorithmException e) {
// FIXME: Providers should not throw
throw new RuntimeException(e);
}
}
@Provides
Signature getSignature() {
try {
return Signature.getInstance(SIGNATURE_ALGO);
} catch(NoSuchAlgorithmException e) {
// FIXME: Providers should not throw
throw new RuntimeException(e);
}
}
@Provides
KeyPair generateKeyPair() {
try {
KeyPairGenerator gen = KeyPairGenerator.getInstance(KEY_PAIR_ALGO);
return gen.generateKeyPair();
} catch(NoSuchAlgorithmException e) {
// FIXME: Providers should not throw
throw new RuntimeException(e);
}
}

View File

@@ -16,19 +16,19 @@ import net.sf.briar.api.Rating;
import net.sf.briar.api.db.DbException;
import net.sf.briar.api.db.NoSuchContactException;
import net.sf.briar.api.protocol.Ack;
import net.sf.briar.api.protocol.AckWriter;
import net.sf.briar.api.protocol.AuthorId;
import net.sf.briar.api.protocol.Batch;
import net.sf.briar.api.protocol.BatchId;
import net.sf.briar.api.protocol.BatchWriter;
import net.sf.briar.api.protocol.Group;
import net.sf.briar.api.protocol.GroupId;
import net.sf.briar.api.protocol.Message;
import net.sf.briar.api.protocol.MessageId;
import net.sf.briar.api.protocol.SubscriptionWriter;
import net.sf.briar.api.protocol.Subscriptions;
import net.sf.briar.api.protocol.TransportWriter;
import net.sf.briar.api.protocol.Transports;
import net.sf.briar.api.protocol.writers.AckWriter;
import net.sf.briar.api.protocol.writers.BatchWriter;
import net.sf.briar.api.protocol.writers.SubscriptionWriter;
import net.sf.briar.api.protocol.writers.TransportWriter;
import com.google.inject.Inject;

View File

@@ -15,19 +15,19 @@ import net.sf.briar.api.Rating;
import net.sf.briar.api.db.DbException;
import net.sf.briar.api.db.NoSuchContactException;
import net.sf.briar.api.protocol.Ack;
import net.sf.briar.api.protocol.AckWriter;
import net.sf.briar.api.protocol.AuthorId;
import net.sf.briar.api.protocol.Batch;
import net.sf.briar.api.protocol.BatchId;
import net.sf.briar.api.protocol.BatchWriter;
import net.sf.briar.api.protocol.Group;
import net.sf.briar.api.protocol.GroupId;
import net.sf.briar.api.protocol.Message;
import net.sf.briar.api.protocol.MessageId;
import net.sf.briar.api.protocol.SubscriptionWriter;
import net.sf.briar.api.protocol.Subscriptions;
import net.sf.briar.api.protocol.TransportWriter;
import net.sf.briar.api.protocol.Transports;
import net.sf.briar.api.protocol.writers.AckWriter;
import net.sf.briar.api.protocol.writers.BatchWriter;
import net.sf.briar.api.protocol.writers.SubscriptionWriter;
import net.sf.briar.api.protocol.writers.TransportWriter;
import com.google.inject.Inject;

View File

@@ -1,12 +1,12 @@
package net.sf.briar.protocol;
package net.sf.briar.protocol.writers;
import java.io.IOException;
import java.io.OutputStream;
import net.sf.briar.api.protocol.Ack;
import net.sf.briar.api.protocol.AckWriter;
import net.sf.briar.api.protocol.BatchId;
import net.sf.briar.api.protocol.Tags;
import net.sf.briar.api.protocol.writers.AckWriter;
import net.sf.briar.api.serial.Writer;
import net.sf.briar.api.serial.WriterFactory;

View File

@@ -1,4 +1,4 @@
package net.sf.briar.protocol;
package net.sf.briar.protocol.writers;
import java.io.IOException;
import java.io.OutputStream;
@@ -7,8 +7,8 @@ import java.security.MessageDigest;
import net.sf.briar.api.protocol.Batch;
import net.sf.briar.api.protocol.BatchId;
import net.sf.briar.api.protocol.BatchWriter;
import net.sf.briar.api.protocol.Tags;
import net.sf.briar.api.protocol.writers.BatchWriter;
import net.sf.briar.api.serial.Writer;
import net.sf.briar.api.serial.WriterFactory;

View File

@@ -0,0 +1,44 @@
package net.sf.briar.protocol.writers;
import java.io.OutputStream;
import java.security.MessageDigest;
import net.sf.briar.api.protocol.writers.AckWriter;
import net.sf.briar.api.protocol.writers.BatchWriter;
import net.sf.briar.api.protocol.writers.PacketWriterFactory;
import net.sf.briar.api.protocol.writers.SubscriptionWriter;
import net.sf.briar.api.protocol.writers.TransportWriter;
import net.sf.briar.api.serial.WriterFactory;
import com.google.inject.Inject;
class PacketWriterFactoryImpl implements PacketWriterFactory {
private final MessageDigest messageDigest;
private final WriterFactory writerFactory;
@Inject
PacketWriterFactoryImpl(MessageDigest messageDigest,
WriterFactory writerFactory) {
this.messageDigest = messageDigest;
this.writerFactory = writerFactory;
}
public AckWriter createAckWriter(OutputStream out) {
return new AckWriterImpl(out, writerFactory);
}
public BatchWriter createBatchWriter(OutputStream out) {
return new BatchWriterImpl(out, writerFactory, messageDigest);
}
public SubscriptionWriter createSubscriptionWriter(OutputStream out) {
// TODO Auto-generated method stub
return null;
}
public TransportWriter createTransportWriter(OutputStream out) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,14 @@
package net.sf.briar.protocol.writers;
import net.sf.briar.api.protocol.writers.PacketWriterFactory;
import com.google.inject.AbstractModule;
public class WritersModule extends AbstractModule {
@Override
protected void configure() {
bind(PacketWriterFactory.class).to(PacketWriterFactoryImpl.class);
}
}