aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/crypto.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/core/crypto.scala')
-rw-r--r--src/main/scala/xyz/driver/core/crypto.scala27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/core/crypto.scala b/src/main/scala/xyz/driver/core/crypto.scala
new file mode 100644
index 0000000..d001e0f
--- /dev/null
+++ b/src/main/scala/xyz/driver/core/crypto.scala
@@ -0,0 +1,27 @@
+package xyz.driver.core
+
+import xyz.driver.core.auth.AuthToken
+
+object crypto {
+
+ final case class EncryptionKey(value: String)
+
+ final case class DecryptionKey(value: String)
+
+ trait Crypto {
+
+ def keyForToken(authToken: AuthToken): EncryptionKey
+
+ def encrypt(encryptionKey: EncryptionKey)(message: Array[Byte]): Array[Byte]
+
+ def decrypt(decryptionKey: EncryptionKey)(message: Array[Byte]): Array[Byte]
+ }
+
+ object NoCrypto extends Crypto {
+
+ override def keyForToken(authToken: AuthToken): EncryptionKey = EncryptionKey(authToken.value.value)
+
+ override def decrypt(decryptionKey: EncryptionKey)(message: Array[Byte]): Array[Byte] = message
+ override def encrypt(encryptionKey: EncryptionKey)(message: Array[Byte]): Array[Byte] = message
+ }
+}