diff --git a/briar-core/src/org/briarproject/crypto/CryptoComponentImpl.java b/briar-core/src/org/briarproject/crypto/CryptoComponentImpl.java index eb98217947a30dc7a464033d3a94f5881557003a..b18cea9f82af876aea138b40106e802de3cb1c82 100644 --- a/briar-core/src/org/briarproject/crypto/CryptoComponentImpl.java +++ b/briar-core/src/org/briarproject/crypto/CryptoComponentImpl.java @@ -9,7 +9,6 @@ import org.briarproject.api.crypto.PrivateKey; import org.briarproject.api.crypto.PseudoRandom; import org.briarproject.api.crypto.PublicKey; import org.briarproject.api.crypto.SecretKey; -import org.briarproject.api.crypto.Signature; import org.briarproject.api.system.SeedProvider; import org.briarproject.api.transport.IncomingKeys; import org.briarproject.api.transport.OutgoingKeys; diff --git a/briar-api/src/org/briarproject/api/crypto/Signature.java b/briar-core/src/org/briarproject/crypto/Signature.java similarity index 77% rename from briar-api/src/org/briarproject/api/crypto/Signature.java rename to briar-core/src/org/briarproject/crypto/Signature.java index 85c3c93a156b44de7b351455c82d02034ac71cc5..78379f693be58edd6adbb28a03c179aa55a7735a 100644 --- a/briar-api/src/org/briarproject/api/crypto/Signature.java +++ b/briar-core/src/org/briarproject/crypto/Signature.java @@ -1,8 +1,11 @@ -package org.briarproject.api.crypto; +package org.briarproject.crypto; + +import org.briarproject.api.crypto.PrivateKey; +import org.briarproject.api.crypto.PublicKey; import java.security.GeneralSecurityException; -public interface Signature { +interface Signature { /** * @see {@link java.security.Signature#initSign(java.security.PrivateKey)} @@ -10,7 +13,7 @@ public interface Signature { void initSign(PrivateKey k) throws GeneralSecurityException; /** - * @see {@link java.security.Signature#initVafiry(java.security.PublicKey)} + * @see {@link java.security.Signature#initVerify(java.security.PublicKey)} */ void initVerify(PublicKey k) throws GeneralSecurityException; diff --git a/briar-core/src/org/briarproject/crypto/SignatureImpl.java b/briar-core/src/org/briarproject/crypto/SignatureImpl.java index ebed171edd632b969ec4c439ad95e854d8c78bf3..e7c7c6394abc4ae3bb3d08e6055b6c6c54f6d5b2 100644 --- a/briar-core/src/org/briarproject/crypto/SignatureImpl.java +++ b/briar-core/src/org/briarproject/crypto/SignatureImpl.java @@ -2,7 +2,6 @@ package org.briarproject.crypto; import org.briarproject.api.crypto.PrivateKey; import org.briarproject.api.crypto.PublicKey; -import org.briarproject.api.crypto.Signature; import org.spongycastle.crypto.Digest; import org.spongycastle.crypto.params.ECPrivateKeyParameters; import org.spongycastle.crypto.params.ECPublicKeyParameters; @@ -33,30 +32,36 @@ class SignatureImpl implements Signature { signer = new DSADigestSigner(new ECDSASigner(calculator), digest); } + @Override public void initSign(PrivateKey k) throws GeneralSecurityException { if (!(k instanceof Sec1PrivateKey)) throw new GeneralSecurityException(); ECPrivateKeyParameters priv = ((Sec1PrivateKey) k).getKey(); signer.init(true, new ParametersWithRandom(priv, secureRandom)); } + @Override public void initVerify(PublicKey k) throws GeneralSecurityException { if (!(k instanceof Sec1PublicKey)) throw new GeneralSecurityException(); ECPublicKeyParameters pub = ((Sec1PublicKey) k).getKey(); signer.init(false, pub); } + @Override public void update(byte b) { signer.update(b); } + @Override public void update(byte[] b) { update(b, 0, b.length); } + @Override public void update(byte[] b, int off, int len) { signer.update(b, off, len); } + @Override public byte[] sign() { long now = System.currentTimeMillis(); byte[] signature = signer.generateSignature(); @@ -66,6 +71,7 @@ class SignatureImpl implements Signature { return signature; } + @Override public boolean verify(byte[] signature) { long now = System.currentTimeMillis(); boolean valid = signer.verifySignature(signature); diff --git a/briar-core/src/org/briarproject/invitation/Connector.java b/briar-core/src/org/briarproject/invitation/Connector.java index 371a635219da4fa83cfab2ed292d9d4222cc3adc..6afcedf067407814041f6b36a774a3fb5a9f8619 100644 --- a/briar-core/src/org/briarproject/invitation/Connector.java +++ b/briar-core/src/org/briarproject/invitation/Connector.java @@ -1,31 +1,20 @@ package org.briarproject.invitation; import org.briarproject.api.FormatException; -import org.briarproject.api.TransportId; import org.briarproject.api.contact.ContactExchangeTask; -import org.briarproject.api.contact.ContactId; -import org.briarproject.api.contact.ContactManager; import org.briarproject.api.crypto.CryptoComponent; import org.briarproject.api.crypto.KeyPair; import org.briarproject.api.crypto.KeyParser; import org.briarproject.api.crypto.MessageDigest; import org.briarproject.api.crypto.PseudoRandom; import org.briarproject.api.crypto.SecretKey; -import org.briarproject.api.crypto.Signature; import org.briarproject.api.data.BdfReader; import org.briarproject.api.data.BdfReaderFactory; import org.briarproject.api.data.BdfWriter; import org.briarproject.api.data.BdfWriterFactory; -import org.briarproject.api.db.DbException; -import org.briarproject.api.identity.Author; -import org.briarproject.api.identity.AuthorFactory; import org.briarproject.api.identity.LocalAuthor; -import org.briarproject.api.plugins.ConnectionManager; import org.briarproject.api.plugins.duplex.DuplexPlugin; import org.briarproject.api.plugins.duplex.DuplexTransportConnection; -import org.briarproject.api.system.Clock; -import org.briarproject.api.transport.StreamReaderFactory; -import org.briarproject.api.transport.StreamWriterFactory; import java.io.IOException; import java.security.GeneralSecurityException; @@ -34,9 +23,7 @@ import java.util.logging.Logger; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; -import static org.briarproject.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH; import static org.briarproject.api.identity.AuthorConstants.MAX_PUBLIC_KEY_LENGTH; -import static org.briarproject.api.identity.AuthorConstants.MAX_SIGNATURE_LENGTH; import static org.briarproject.api.invitation.InvitationConstants.CONNECTION_TIMEOUT; // FIXME: This class has way too many dependencies