From fdae5eaf8f91ca57b4373c0e8a36b7ebc0083bb6 Mon Sep 17 00:00:00 2001 From: Dima Date: Wed, 7 Feb 2018 15:50:47 +0300 Subject: [PATCH] init crypto js project (#32) * init crypto js project * replace test * fix PR comments * fix PR comments --- build.sbt | 12 ------------ js/src/main/scala/Main.scala | 5 +++++ .../main/scala/fluence/crypto/algorithm/Ecdsa.scala | 6 +++--- .../fluence/crypto/algorithm/JavaAlgorithm.scala | 0 .../scala/fluence/crypto/hash/JdkCryptoHasher.scala | 0 .../test/scala/fluence/crypto}/SignatureSpec.scala | 2 +- src/main/scala/fluence/crypto/FileKeyStorage.scala | 3 +-- .../fluence/crypto/algorithm/KeyGenerator.scala | 2 ++ .../fluence/crypto/cipher/CryptoSearching.scala | 2 ++ src/main/scala/fluence/crypto/cipher/NoOpCrypt.scala | 5 +++-- .../fluence/crypto/signature/SignatureChecker.scala | 2 ++ .../scala/fluence/crypto/CryptoSearchingSpec.scala | 2 +- 12 files changed, 20 insertions(+), 21 deletions(-) delete mode 100644 build.sbt create mode 100644 js/src/main/scala/Main.scala rename {src => jvm/src}/main/scala/fluence/crypto/algorithm/Ecdsa.scala (98%) rename {src => jvm/src}/main/scala/fluence/crypto/algorithm/JavaAlgorithm.scala (100%) rename {src => jvm/src}/main/scala/fluence/crypto/hash/JdkCryptoHasher.scala (100%) rename {src/test/scala/fluence.crypto => jvm/src/test/scala/fluence/crypto}/SignatureSpec.scala (99%) diff --git a/build.sbt b/build.sbt deleted file mode 100644 index 6d777c3..0000000 --- a/build.sbt +++ /dev/null @@ -1,12 +0,0 @@ -import SbtCommons._ - -commons - -libraryDependencies ++= Seq( - cats1, - scodecBits, - bouncyCastle, - scalatest, - circeCore, - circeParser -) \ No newline at end of file diff --git a/js/src/main/scala/Main.scala b/js/src/main/scala/Main.scala new file mode 100644 index 0000000..a35d2e7 --- /dev/null +++ b/js/src/main/scala/Main.scala @@ -0,0 +1,5 @@ +object Main { + def main(args: Array[String]): Unit = { + println("Hello world!") + } +} diff --git a/src/main/scala/fluence/crypto/algorithm/Ecdsa.scala b/jvm/src/main/scala/fluence/crypto/algorithm/Ecdsa.scala similarity index 98% rename from src/main/scala/fluence/crypto/algorithm/Ecdsa.scala rename to jvm/src/main/scala/fluence/crypto/algorithm/Ecdsa.scala index ee71476..7c8ff23 100644 --- a/src/main/scala/fluence/crypto/algorithm/Ecdsa.scala +++ b/jvm/src/main/scala/fluence/crypto/algorithm/Ecdsa.scala @@ -17,8 +17,8 @@ package fluence.crypto.algorithm -import java.security.spec.{ PKCS8EncodedKeySpec, X509EncodedKeySpec } import java.security._ +import java.security.spec.{ PKCS8EncodedKeySpec, X509EncodedKeySpec } import cats.MonadError import cats.syntax.flatMap._ @@ -88,7 +88,7 @@ class Ecdsa[F[_]](curveType: String, scheme: String)(implicit F: MonadError[F, T signProvider.initSign(keyFactory.generatePrivate(keySpec)) signProvider.update(message) signProvider.sign() - } ("Cannot sign message.") + }("Cannot sign message.") } } yield sign } @@ -103,7 +103,7 @@ class Ecdsa[F[_]](curveType: String, scheme: String)(implicit F: MonadError[F, T signProvider.initVerify(keyFactory.generatePublic(keySpec)) signProvider.update(message) signProvider.verify(signature) - } ("Cannot verify message.") + }("Cannot verify message.") } } yield verify } diff --git a/src/main/scala/fluence/crypto/algorithm/JavaAlgorithm.scala b/jvm/src/main/scala/fluence/crypto/algorithm/JavaAlgorithm.scala similarity index 100% rename from src/main/scala/fluence/crypto/algorithm/JavaAlgorithm.scala rename to jvm/src/main/scala/fluence/crypto/algorithm/JavaAlgorithm.scala diff --git a/src/main/scala/fluence/crypto/hash/JdkCryptoHasher.scala b/jvm/src/main/scala/fluence/crypto/hash/JdkCryptoHasher.scala similarity index 100% rename from src/main/scala/fluence/crypto/hash/JdkCryptoHasher.scala rename to jvm/src/main/scala/fluence/crypto/hash/JdkCryptoHasher.scala diff --git a/src/test/scala/fluence.crypto/SignatureSpec.scala b/jvm/src/test/scala/fluence/crypto/SignatureSpec.scala similarity index 99% rename from src/test/scala/fluence.crypto/SignatureSpec.scala rename to jvm/src/test/scala/fluence/crypto/SignatureSpec.scala index 79c8872..cc05f46 100644 --- a/src/test/scala/fluence.crypto/SignatureSpec.scala +++ b/jvm/src/test/scala/fluence/crypto/SignatureSpec.scala @@ -26,7 +26,7 @@ import fluence.crypto.keypair.KeyPair import org.scalatest.{ BeforeAndAfterAll, Matchers, WordSpec } import scodec.bits.ByteVector -import scala.util.{ Random, Try } +import scala.util.Random class SignatureSpec extends WordSpec with Matchers with BeforeAndAfterAll { diff --git a/src/main/scala/fluence/crypto/FileKeyStorage.scala b/src/main/scala/fluence/crypto/FileKeyStorage.scala index 503a974..44618a0 100644 --- a/src/main/scala/fluence/crypto/FileKeyStorage.scala +++ b/src/main/scala/fluence/crypto/FileKeyStorage.scala @@ -67,8 +67,7 @@ object KeyStore { implicit val encodeKeyStorage: Encoder[KeyStore] = new Encoder[KeyStore] { final def apply(ks: KeyStore): Json = Json.obj(("keystore", Json.obj( ("secret", Json.fromString(ks.keyPair.secretKey.value.toBase64)), - ("public", Json.fromString(ks.keyPair.publicKey.value.toBase64)) - ))) + ("public", Json.fromString(ks.keyPair.publicKey.value.toBase64))))) } implicit val decodeKeyStorage: Decoder[Option[KeyStore]] = new Decoder[Option[KeyStore]] { diff --git a/src/main/scala/fluence/crypto/algorithm/KeyGenerator.scala b/src/main/scala/fluence/crypto/algorithm/KeyGenerator.scala index 336fc4e..baec2da 100644 --- a/src/main/scala/fluence/crypto/algorithm/KeyGenerator.scala +++ b/src/main/scala/fluence/crypto/algorithm/KeyGenerator.scala @@ -21,6 +21,8 @@ import java.security.SecureRandom import fluence.crypto.keypair.KeyPair +import scala.language.higherKinds + trait KeyGenerator[F[_]] { def generateKeyPair(random: SecureRandom): F[KeyPair] def generateKeyPair(): F[KeyPair] diff --git a/src/main/scala/fluence/crypto/cipher/CryptoSearching.scala b/src/main/scala/fluence/crypto/cipher/CryptoSearching.scala index ed81dab..34bb1b0 100644 --- a/src/main/scala/fluence/crypto/cipher/CryptoSearching.scala +++ b/src/main/scala/fluence/crypto/cipher/CryptoSearching.scala @@ -19,7 +19,9 @@ package fluence.crypto.cipher import cats.Monad import cats.syntax.functor._ + import scala.collection.Searching.{ Found, InsertionPoint, SearchResult } +import scala.language.implicitConversions import scala.math.Ordering /** diff --git a/src/main/scala/fluence/crypto/cipher/NoOpCrypt.scala b/src/main/scala/fluence/crypto/cipher/NoOpCrypt.scala index 58100e8..26c2db5 100644 --- a/src/main/scala/fluence/crypto/cipher/NoOpCrypt.scala +++ b/src/main/scala/fluence/crypto/cipher/NoOpCrypt.scala @@ -22,6 +22,8 @@ import java.nio.ByteBuffer import cats.Applicative import cats.syntax.applicative._ +import scala.language.higherKinds + /** * No operation implementation. Just convert the element to bytes back and forth without any cryptography. */ @@ -41,8 +43,7 @@ object NoOpCrypt { def forLong[F[_] : Applicative]: NoOpCrypt[F, Long] = apply[F, Long]( serializer = ByteBuffer.allocate(java.lang.Long.BYTES).putLong(_).array().pure[F], - deserializer = bytes ⇒ ByteBuffer.wrap(bytes).getLong().pure[F] - ) + deserializer = bytes ⇒ ByteBuffer.wrap(bytes).getLong().pure[F]) def apply[F[_], T](serializer: T ⇒ F[Array[Byte]], deserializer: Array[Byte] ⇒ F[T]): NoOpCrypt[F, T] = new NoOpCrypt(serializer, deserializer) diff --git a/src/main/scala/fluence/crypto/signature/SignatureChecker.scala b/src/main/scala/fluence/crypto/signature/SignatureChecker.scala index a79b562..2b5e103 100644 --- a/src/main/scala/fluence/crypto/signature/SignatureChecker.scala +++ b/src/main/scala/fluence/crypto/signature/SignatureChecker.scala @@ -20,6 +20,8 @@ package fluence.crypto.signature import cats.MonadError import scodec.bits.ByteVector +import scala.language.higherKinds + trait SignatureChecker { def check[F[_]](signature: Signature, plain: ByteVector)(implicit F: MonadError[F, Throwable]): F[Boolean] } diff --git a/src/test/scala/fluence/crypto/CryptoSearchingSpec.scala b/src/test/scala/fluence/crypto/CryptoSearchingSpec.scala index 7719271..c6cbcca 100644 --- a/src/test/scala/fluence/crypto/CryptoSearchingSpec.scala +++ b/src/test/scala/fluence/crypto/CryptoSearchingSpec.scala @@ -17,8 +17,8 @@ package fluence.crypto -import fluence.crypto.cipher.NoOpCrypt import cats.instances.try_._ +import fluence.crypto.cipher.NoOpCrypt import org.scalatest.{ Matchers, WordSpec } import scala.collection.Searching.{ Found, InsertionPoint }