aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/com/drivergrp/core/crypto.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/com/drivergrp/core/crypto.scala')
-rw-r--r--src/main/scala/com/drivergrp/core/crypto.scala23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/main/scala/com/drivergrp/core/crypto.scala b/src/main/scala/com/drivergrp/core/crypto.scala
new file mode 100644
index 0000000..2910260
--- /dev/null
+++ b/src/main/scala/com/drivergrp/core/crypto.scala
@@ -0,0 +1,23 @@
+package com.drivergrp.core
+
+object crypto {
+
+ final case class Macaroon(value: String)
+
+ final case class Base64[T](value: String)
+
+ final case class AuthToken(value: Base64[Macaroon])
+
+ 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]
+ }
+}